freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

最新Nmap入门技术
MS08067安全实验室 2024-02-20 13:34:58 139060

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所示的六种状态。

状    态

含    义

open

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

filtered

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

closed

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

unfiltered

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

open/filtered

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

closed/filtered

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

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

# 渗透测试 # 网络安全 # web安全 # 系统安全
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 MS08067安全实验室 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
MS08067安全实验室 LV.6
Ms08067安全实验室
  • 77 文章数
  • 79 关注者
跨域攻击分析和防御(中)
2024-04-15
跨域攻击分析和防御(上)
2024-04-03
kerberos-MS14-068(kerberos域用户提权)
2024-04-02
文章目录