首页 > 其他分享 >最新Nmap入门技术

最新Nmap入门技术

时间:2024-02-20 13:45:36浏览次数:26  
标签:入门 Nmap 扫描 端口 nmap 最新 主机 10.172

Nmap详解

Nmap(Network Mapper,网络映射器)是一款开放源代码的网络探测和安全审核工具。它被设计用来快速扫描大型网络,包括主机探测与发现、开放的端口情况、操作系统与应用服务指纹识别、WAF识别及常见的安全漏洞。它的图形化界面是Zenmap,分布式框架为DNmap。

 

Nmap的特点如下。

(1)主机探测:探测网络上的存活主机、开放特别端口的主机。

(2)端口扫描:探测目标主机所开放的端口。

(3)版本检测:探测目标主机的网络服务,判断其服务名称及版本号。

(4)系统检测:探测目标主机的操作系统及网络设备的硬件特性。

(5)支持探测脚本的编写:使用Nmap的脚本引擎(NSE)和Lua编程语言。

 

 


Nmap的安装

从Nmap官网下载Nmap,按照提示一步步安装即可,如图3-56所示。

 

 

 

图3-56  

 

 



Nmap入门

1.扫描参数

进入安装目录后,在命令行直接执行nmap命令,将显示Namp的用法及其功能,如图3-57所示。

 

 

 

图3-57  

 

在讲解具体的使用方法前,先介绍Nmap的相关参数的含义与用法。

首先,介绍设置扫描目标时用到的相关参数。

(1)-iL:从文件中导入目标主机或目标网段。

(2)-iR:随机选择目标主机。

(3)--exclude:后面跟的主机或网段将不在扫描范围内。

(4)--excludefile:导入文件中的主机或网段将不在扫描范围中。

与主机发现方法相关的参数如下。

(1)-sL:List Scan,仅列举指定目标的IP地址,不进行主机发现。

(2)-sn:Ping Scan,只进行主机发现,不进行端口扫描。

(3)-Pn:将所有指定的主机视作已开启,跳过主机发现的过程。

(4)-PS/PA/PU/PY[portlist]:使用TCP SYN/ACK或SCTP INIT/ECHO的方式进行主机发现。

(5)-PE/PP/PM:使用ICMP echo、timestamp、netmask请求包发现主机。

(6)-PO[protocollist]:使用IP协议包探测对方主机是否开启。

(7)-n/-R:-n表示不进行DNS解析;-R表示总是进行DNS解析。

(8)--dns-servers <serv1[,serv2],...>:指定DNS服务器。

(9)--system-dns:指定使用系统的DNS服务器。

(10)--traceroute:追踪每个路由节点。

 

与常见的端口扫描方法相关的参数如下。

(1)-sS/sT/sA/sW/sM:指定使用TCP SYN/Connect()/ACK/Window/Maimon scan的方式对目标主机进行扫描。

(2)-sU:指定使用UDP扫描的方式确定目标主机的UDP端口状况。  

(3)-sN/sF/sX:指定使用TCP Null/FIN/Xmas scan秘密扫描的方式协助探测对方的TCP端口状态。  

(4)--scanflags <flags>:定制TCP包的flags。

(5)-sI <zombie host[:probeport]>:指定使用Idle scan的方式扫描目标主机(前提是需要找到合适的僵尸主机)。  

(6)-sY/sZ:使用SCTP INIT/COOKIE-ECHO扫描SCTP协议端口的开放情况。

(7)-sO:使用IP protocol扫描确定目标机支持的协议类型。

(8)-b <FTP relay host>:使用FTP bounce scan的方式扫描。

 

跟端口参数与扫描顺序的设置相关的参数如下。

(1)-p <port ranges>:扫描指定的端口。

(2)-F:Fast mode,仅扫描Top100的端口。

(3)-r:不进行端口随机打乱的操作(如无该参数,Nmap会将要扫描的端口以随机顺序的方式进行扫描,让Nmap的扫描不易被对方防火墙检测到)。  

(4)--top-ports <number>:扫描开放概率最高的“number”个端口。Nmap的作者曾做过大规模的互联网扫描,以此统计网络上各种端口可能开放的概率,并排列出最有可能开放端口的列表,具体可以参见nmap-services文件。默认情况下,Nmap会扫描最有可能的1000个TCP端口。

(5)--port-ratio <ratio>:扫描指定频率以上的端口。与上述--top-ports类似,这里以概率作为参数,概率大于--port-ratio的端口才被扫描。显然,参数必须在0~1,想了解具体的概率范围,可以查看nmap-services文件。

 

与版本侦测相关的参数如下。

(1)-sV:指定让Nmap进行版本侦测。

(2)--version-intensity <level>:指定版本侦测的强度(0~9),默认为7。数值越高,探测出的服务器端越准确,但是运行时间会比较长。

(3)--version-light:指定使用轻量级侦测方式。

(4)--version-all:尝试使用所有的probes进行侦测。

(5)--version-trace:显示详细的版本侦测过程信息。

在了解了以上参数及其含义后,再来看用法会更好理解。扫描命令格式:Nmap+扫描参数+目标地址或网段。假设一次完整的Nmap扫描命令如下:

nmap -T4 -A -v ip

其中,-T4表示指定扫描过程中使用的时序(Timing),共有6个级别(0~5),级别越高,扫描速度越快,但也越容易被防火墙或IDS检测屏蔽,在网络通信状况良好的情况下,推荐使用-T4。-A表示使用进攻性(Aggressive)的方式扫描。-v表示显示冗余(Verbosity)信息,在扫描过程中显示扫描的细节,有助于让用户了解当前的扫描状态。

 

2.常用方法

虽然Nmap的参数较多,但通常不会全部用到,以下是在渗透测试过程中比较常见的命令。

(1)扫描单个目标地址。

在“nmap”后面直接添加目标地址即可扫描,如图3-58所示。

nmap 10.172.10.254

 

 

 

图3-58  

 

(2)扫描多个目标地址。

如果目标地址不在同一网段,或在同一网段但不连续且数量不多,则可以使用该方法进行扫描,如图3-59所示。

nmap 10.172.10.254 10.172.10.2

 

 

 

图3-59  

 

(3)扫描一个范围内的目标地址。

可以指定扫描一个连续的网段,中间使用“-”连接。例如,下列命令表示扫描范围为10.172.10.1 ~ 10.172.10.10,如图3-60所示。

nmap 10.172.10.1-10

 

 

图3-60  

 

(4)扫描目标地址所在的某个网段。

以C段为例,如果目标是一个网段,则可以通过添加子网掩码的方式扫描,下列命令表示扫描范围为10.172.10.1 ~ 10.172.10.255,如图3-61所示。

nmap 10.172.10.1/24

 

 

图3-61  

 

(5)扫描主机列表targets.txt中的所有目标地址。

扫描1.txt中的地址或者网段,如果1.txt文件与nmap.exe在同一个目录下,则直接引用文件名即可(或者输入绝对路径),如图3-62所示。

nmap -iL 1.txt

 

 

图3-62  

 

(6)扫描除某一个目标地址之外的所有目标地址。

下列命令表示扫描除10.172.10.100之外的其他10.172.10.x地址。从扫描结果来看,确实没有对10.172.10.100进行扫描,如图3-63所示。

nmap 10.172.10.1/24  -exclude 10.172.10.100

 

 

图3-63  

 

(7)扫描除某一文件中的目标地址之外的目标地址。

下列命令表示扫描除1.txt文件中涉及的地址或网段之外的目标地址。还是以扫描10.172.10.x网段为例,在1.txt中添加10.172.10.100和10.172.10.105,从扫描结果来看,已经证实该方法有效,如图3-64所示。

nmap 10.172.10.1/24 -excludefile 1.txt

 

 

图3-64

 

(8)扫描某一目标地址的指定端口。

如果不需要对目标主机进行全端口扫描,只想探测它是否开放了某一端口,那么使用参数“-p”指定端口号,将大大提升扫描速度,结果如图3-65所示。

nmap 10.172.10.254 –p 21,22,23,80

 

 

图3-65  

 

(9)对目标地址进行路由跟踪。

下列命令表示对目标地址进行路由跟踪,结果如图3-66所示。

nmap --traceroute 10.172.10.254

 

 

图3-66  

 

(10)扫描目标地址所在C段的在线状况。

下列命令表示扫描目标地址所在C段的在线状况,结果如图3-67所示。

nmap -sP 10.172.10.1/24

 

 

图3-67  

 

(11)对目标地址的操作系统进行指纹识别。

下列命令表示通过指纹识别技术识别目标地址的操作系统的版本,结果如图3-68所示。

nmap –O 192.168.0.105

 

 

图3-68  

 

(12)检测目标地址开放的端口对应的服务版本信息。

下列命令表示检测目标地址开放的端口对应的服务版本信息,结果如图3-69所示。

nmap -sV 10.172.10.254

 

 

图3-69  

 

(13)探测防火墙状态。

在实战中,可以利用FIN扫描的方式探测防火墙的状态。FIN扫描用于识别端口是否关闭,收到RST回复说明该端口关闭,否则就是open或filtered状态,如图3-70所示。

nmap -sF –T4 10.172.10.38

 

  

图3-70

 

3.状态识别

Nmap输出的是扫描列表,包括端口号、端口状态、服务名称、服务版本及协议。通常有如表3-1所示的六种状态。

 

表3-1  

状    态

含    义

open

开放的,表示应用程序正在监听该端口的连接,外部可以访问

filtered

被过滤的,表示端口被防火墙或其他网络设备阻止,外部不能访问

closed

关闭的,表示目标主机未开启该端口

unfiltered

未被过滤的,表示Nmap无法确定端口所处状态,需进一步探测

open/filtered

开放的或被过滤的,Nmap不能识别

closed/filtered

关闭的或被过滤的,Nmap不能识别

了解以上状态,将有利于我们在渗透测试过程中确定下一步应该采取什么方法或攻击手段。

 

Ms08067安全实验室专注于网络安全知识的普及和培训,是专业的“图书出版+培训”的网络安全在线教育平台,专注于网络安全领域中高端人才培养。

平台已开设Web安全零基础就业,Web高级安全攻防进阶,红队实战攻防特训,Java代码安全审计,恶意代码分析与免杀实战,CTF基础实战特训营,网络安全应急响应,安全工具开发,AI与网络安全等系统培训课程。实验室出版安全图书《Web安全攻防:渗透测试实战指南》、《内网安全攻防:渗透测试实战指南》、《Python安全攻防:渗透测试实战指南》、《Java代码审计:入门篇》等。

扫描客服微信 获取更多课件+学习资料

标签:入门,Nmap,扫描,端口,nmap,最新,主机,10.172
From: https://www.cnblogs.com/ms08067/p/18022905

相关文章

  • MongoDB 入门教程
    基本概念数据库(Database)是集合的容器,相当于关系型DB中的数据库集合(Collection)数据库中的一组文档,相当于SQL中的表文档(Document)集合中的一条记录,相当于SQL的表中的一行。不同的文档之间不必有相同的结构,这一点是和SQL不同的。字段(Field)文档中的键值对,相当于SQL中的列。比......
  • 【三分钟开服仅32/月】幻兽帕鲁服务器最新一键部署以及修改游戏参数保姆教程
    前言《幻兽帕鲁》是Pocketpair开发的一款开放世界生存制作游戏,游戏于2023年11月2日至11月5日进行了封闭网络测试,于2024年1月18日发行抢先体验版本。游戏中,玩家可以在广阔的世界中收集神奇的生物“帕鲁”,派他们进行战斗、建造、做农活,工业生产等游戏支持单人游玩&创建本地房间(最......
  • 组合数学从入门到进门
    1.零些记号略。咕咕咕2.排列与组合\(\color{plum}\texttt{Watchyouleaving}\)\(\color{violet}\texttt{AndItrytotellmyselfthatI'mjuststreaming}\)\(\color{magenta}\texttt{I'mjuststreaming}\)2.1四则计数原理设集合\(S\)的一个划分(\(\text......
  • Docker-Compose简单入门使用
    Dockercompose使用DockerCompose官方文档:https://docs.docker.com/compose/一、DockerCompose安装如果安装使用DockerDesktop默认就安装了DockerCompose,dockerCompose安装参考:https://www.cnblogs.com/morang/p/devops-docker24-composev2-install.htmlhttps://blog......
  • Vue3入门
    认识Vue3目录认识Vue3Vue2选项式APIvsVue3组合式APIVue3的优势使用create-vue搭建Vue3项目认识create-vue使用create-vue创建项目熟悉项目和关键文件组合式API—setup选项setup选项的写法和执行时机setup中写代码的特点<scriptsetup>语法糖组合式API—......
  • 【Flink入门修炼】1-4 Flink 核心概念与架构
    前面几篇文章带大家了解了Flink是什么、能做什么,本篇将带大家了解Flink究竟是如何完成这些的,Flink本身架构是什么样的,让大家先对Flink有整体认知,便于后期理解。一、Flink组件栈Flink是一个分层架构的系统,每一层所包含的组件都提供了特定的抽象,用来服务于上层组件。Flink......
  • 最新Burp Suite插件详解
    Burp Suite中的插件BurpSuite中存在多个插件,通过这些插件可以更方便地进行安全测试。插件可以在“BAppStore”(“Extender”→“BAppStore”)中安装,如图3-46所示。   图3-46   下面列举一些常见的BurpSuite插件。 1.Active Scan++ActiveScan++在BurpSuite......
  • "最新"部署幻兽帕鲁游戏服务器及开局经验分享
    Banner2024,《幻兽帕鲁》《雾锁王国》等游戏爆火!那么如何快速拥有一个可以跟小伙伴们愉快玩耍的服务器呢?社区里不少小伙伴已经给出了自己的最佳实践,你甚至不需要懂技术,只需要按照页面提示选择相关配置,1分钟即可完成热门游戏的服务器搭建。教程详戳:幻兽帕鲁&雾锁王国服务器搭建教程......
  • Flink入门之Flink程序开发步骤(java语言)
    Flink入门之Flink程序开发步骤(java语言)文章目录(0)开发程序所需依赖(1)获取执行环境(2)加载/创建数据源(3)数据转换处理(4)处理后数据放置/输出(5)执行计算程序(6)完整示例注:本篇章的flink学习均是基于java开发语言我们如果要使用flink进行计算开发,一个完整的开发步骤是怎样的呢?前......
  • 前端知识回顾概览--vue.js 从入门到精通
    vue目前最火的前端框架之一对vue原理有深入了解可以基于vue开发应用对vue3.0有实战经验1. vue.js基础vue.js简介vue.js模版及指令vue.js事件/数据绑定vue.js组件化标签中的新属性vue.js组件生命周期2. vue.js高级用法mixin复用vue.js动画特效&......