Nmap是一款比较常用的开源工具,可以从https://nmap.org/下载,它可以用来探测目标机器开放了哪些端口,使用的操作系统类型和启用了哪些服务,同时,可以针对具体的服务发起一些枚举攻击以及漏洞扫描,并且根据漏扫发现的漏洞使用某个CVE发起攻击。本文主要对一些常用的nmap命令进行说明,并且针对一些功能举行实例说明。
Nmap主要的功能和相对应的实例罗列如下:
一、探测主机
TCP SYN ping
Nmap -sS -Pn 192.168.0.1 Nmap -sS -p- 192.168.0.1
TCP ACKping
Nmap -sn -PA -Pn 192.168.0.1
UDP ping scan
Nmap -sn -PU 192.168.0.1
ARP Ping [很快和很准,但是,经常有防火墙拦截]
Nmap -PR 192.168.0.1
ICMP ECHO ping
Nmap -PE 192.168.0.1
ICMP timestamp Ping
Nmap -PP 192.168.0.1
IP Protocol Ping
Nmap -PO1 192.168.0.1 使用IP协议 Nmap -PO2 192.168.0.1 使用IGMP协议,经常被防火墙拦截。
Traceroute
Nmap -sn 192.168.0.1 --traceroute ![](https://img-blog.csdnimg.cn/d28d79295f10479aba276378b7f0c6fc.png)
Reverse DNS resolution
Nmap -R 192.168.0.1
Defaut scan 只扫描最常用的1000个端口
Nmap 192.168.0.1
扫描端口与协议
Nmap -p 22 192.168.0.1 扫描某个端口 Nmap -p 22,80,443 192.168.0.1 扫描端口列表 Nmap -p 20-1000 192.168.0.1 扫描某个范围的端口 Nmap -p ssh 192.168.0.1 扫描ssh协议的端口 ![](https://img-blog.csdnimg.cn/1fd3f1d70b0847c19e53ade14006a7bd.png)
Full链接扫描,由于需要建立链接来扫描,扫描速度很慢
Nmap -sT -p- 22 192.168.0.1
快速扫描
Nmap -F 192.168.0.102 nmap -F -sV 192.168.0.102 快速扫描服务的版本
结果输出 -o -oN -X -oS -oG <file>
Nmap -F 192.168.0.102 -oX output.xml
显示扫描的过程信息
nmap -v 192.168.0.102 nmap -vvv -sS -A -F 192.168.0.102 v的数量越多,显示的信息越详细
FIN (-sF)、NULL Scan(-sN)、Xmas scan (-sX)
nmap -sN 192.168.0.104 请求消息,没有设置TCP flag。 nmap -sF 192.168.0.104 TCP flag被设置为FIN ![](https://img-blog.csdnimg.cn/50534a0d14894063bc2469acab80e49f.png) nmap -sX 192.168.0.104 TCP Flag 被设置为FIN PSH URG ![](https://img-blog.csdnimg.cn/886326784da045669f5aa7d006cf2745.png)
** 二、探测操作系统和服务**
探测OS
Nmap -sS -O 192.168.0.107 ![](https://img-blog.csdnimg.cn/4c3ce619d0bc42b68ca141da2d8efe47.png)
探测服务【检测会比较慢】
Nmap -sS -sV -p- 192.168.0.107 -sV 表示显示服务的版本 ![](https://img-blog.csdnimg.cn/ad935070d8ab434fac62f55bb882c29e.png)
可以扫描机器是否运行在虚拟机软件上
nmap -sn 192.168.0.1/24 --exclude 192.168.0.10
Aggressive scan 会尝试去发起攻击,探测可能存在的漏洞
nmap -sS -A 192.168.0.102 ![](https://img-blog.csdnimg.cn/e40f4812a2734556be1756c5be71b9e5.png)
综合,搜索发现比较全的信息
nmap -sS -sV -O -p- 192.168.0.107
三、UDP 扫描
使用UDP协议
nmap -sU -p1-1000 192.168.0.107
四、Nmap reason
主要用于检测nmap是如何检测和做决策的
Nmap -sn 192.168.0.107 --reason ![](https://img-blog.csdnimg.cn/100c8889983345beae06c51c9f8bb2a5.png)
** 五、探测防火墙**
使用ACK Probing探测防火墙
nmap -sA 192.168.0.106 ![](https://img-blog.csdnimg.cn/9e6926176c24453db8935f39cf486a8a.png)
Packet Fragmentation
Nmap -sS -f 192.168.0.106 ![](https://img-blog.csdnimg.cn/47789453b46041139d9becf0b7297747.png) 使用-f之后,可以发现探测的端口比-sA 要多探测出来两个端口。
Specifying MTU
nmap --mtu 16 192.168.0.106 ![](https://img-blog.csdnimg.cn/63f194073005416499b0e6911633091c.png)
IP地址欺骗
使用一个地址列表扫描: nmap -sS -F -D 192.168.0.1,192.168.0.2 192.168.0.106 ![](https://img-blog.csdnimg.cn/5399929544e54048abffffc4d149662f.png) 使用随机的地址扫描: nmap -D RND:5 192.168.0.100 ![](https://img-blog.csdnimg.cn/7021d67a4f4d4d67a4d2b326f892d5be.png)
MAC 地址欺骗
nmap -sS --spoof-mac 0 192.168.0.100 ![](https://img-blog.csdnimg.cn/1953d8418aae4c2d914afd9e53c90cf1.png) nmap -sS --spoof-mac Apple 192.168.0.100 模拟某个厂商的MAC ![](https://img-blog.csdnimg.cn/b10b02dc95594dafb6010df3ad91ca57.png)
** 六、扫描时间和性能**
时间模板【减少扫描可能花的时间】
-T<0-5> 数字越大,扫描速度越快,越容易被网络设备探测到。 -T0 Paranoid -T1 Sneaky -T2 Polite -T3 Normal 【默认值】 -T4 Aggressive -T5 The fastest nmap 192.168.0.100 命令默认使用T3. nmap -sV -T1 192.168.0.100 可以通过设置不同的时间模板,比较一下速度。
并行扫描【设置并行扫描,加快速度,增加流量】
nmap -sS -F 192.168.0.100 -T4 --min-parallelism 10 设置最小并行数量 nmap -sS -F 192.168.0.100 -T4 --max-parallelism 10 设置最大并行数量
设置主机超时时间 --host-timeout <time> 超时就放弃当前扫描的目标
nmap -Pn 192.168.0.0-100 --host-timeout 20s 注意:时间太短,可能会错过一些目标,一般建议20s~30s。
延时扫描 (有时可以使用延时扫描绕过IDS检测)
nmap -sS -p1-100 192.168.0.0-100 -T1 --scan-delay 10s [由于延时,这种扫描比较花时间]
**七、NSE:NmaP Script Engine **[https://nmap.org/book/nse.html#nse-intro]
查看nmap所有的支持的script
ls -al /usr/share/nmap/scripts - ![](https://img-blog.csdnimg.cn/1ea19b9902454647922f89c9c2959112.png) sudo nmap --script-updatedb 更新最新的脚本库 ![](https://img-blog.csdnimg.cn/4d748af7a074465793cffbaac51e5173.png)
使用script枚举ftp服务
ls -al /usr/share/nmap/scripts | grep ftp 可以找到所有ftp相关的script ![](https://img-blog.csdnimg.cn/34788fa9ec19401b82acc53ce4643086.png) 通过名字就知道ftp-anon.nse是探测ftp是否支持匿名登录的脚本 nmap -p 21 --script ftp-anon 192.168.0.105 ![](https://img-blog.csdnimg.cn/b09c08263db147b6aaac04c4248f17b1.png)
同时运行多个script【逗号隔开不同的脚本名字或者通配符】
nmap -p 21 --script ftp-anon, ftp-vsftpd-backdoor 192.168.0.105 nmap -p 21 --script "ftp-*" 192.168.0.105 ![](https://img-blog.csdnimg.cn/5047b12b0ed14010a19f96638f070d26.png)
使用默认的script类 【https://nmap.org/nsedoc/categories/default.html】
nmap -sC 192.168.0.105 【一般不指定类别,都是用默认的类别】
使用指定的Script类
nmap --script auth 192.168.0.105 nmap --script auth,default 192.168.0.105 【使用多种类别的script】 nmap --script 192.168.0.105 【使用所有的类别的脚本】
八、服务枚举
抓取banner
sudo nmap -p22,80 --script banner 192.168.0.105 ![](https://img-blog.csdnimg.cn/8a8ef73cc61f48ebb2491077123a13bc.png) sudo nmap -F -T4 --script banner 192.168.0.105 快速扫描所有的服务的banner
whois & Traceroute Geo-location枚举
ls -al /usr/share/nmap/scripts | grep whois 可以查案支持哪些whois nmap -sn --script whois-domain nmap.scanme.org nmap -sn --script “whois-*” nmap.scanme.org 使用所有的whois脚本 nmap -sn --script traceroute nmap.scanme.org sudo nmap -sn --script traceroute-geolocation nmap.scanme.org
ftp枚举
ls -al /usr/share/nmap/scripts | grep ftp 查询所有ftp的脚本 ![](https://img-blog.csdnimg.cn/1b83bda6169d455aad133ea4a0821f2f.png) nmap -sV -p 21 192.168.0.105 先探测FTP的服务和版本 ![](https://img-blog.csdnimg.cn/d2aa8306db8d48199218a121f2771f8c.png) 接下来根据几个script可以发起枚举攻击分析: sudo nmap -sS -p 21 --script ftp-anon,tftp-enum,ftp-vsftpd-backdoor 192.168.0.105 ![](https://img-blog.csdnimg.cn/3f56bd07fa61461f8c116e83cbf621e5.png)
SMTP 枚举
ls -al /usr/share/nmap/scripts | grep smtp查询所有smtp的脚本 sudo nmap -p25 --script smtp-commands 192.168.0.103 [查询支持的命令] ![](https://img-blog.csdnimg.cn/05666bcf2c1944a2b696128aac4086f7.png) sudo nmap -p25 --script smtp-commands --script-args smtp-enum-users.methods={VRFY} 192.168.0.103 枚举潜在的用户 sudo nmap -p25 --script smtp-vuln-cve2011-1720 192.168.0.103 尝试利用某个CVE
DNS枚举
ls -al /usr/share/nmap/scripts | grep dns查询所有dns的脚本 sudo nmap -Pn --script dns-brute --script-args dns-brute.thread=5,dns-brute.hostlist=hosts.txt zonetransfer.me
暴力破解的列表可以参考:
【https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS】
sudo nmap -Pn --script dns-zone-transfer --script-args dns-zone-transfer.server=nsztml.digi.ninja,dns-zone-transfer.domain=zonetransfer.me,dns-zone-transfer.port=53
HTTP枚举
ls -al /usr/share/nmap/scripts | grep http查询所有http的脚本 sudo nmap -Pn -sV -p 80 --script http-methods --script-args http-methods.test=all nmap.scanme.org [枚举支持的Method,效果和发送HTTP的OPTIONS方法差不多,如果防火墙禁用OPTIONS,就不能用OPTIONS了。] ![](https://img-blog.csdnimg.cn/e91d80cd410445328f3885ea733f7eef.png) sudo nmap -F -sV -T5 192.168.0.103 【先看一下是否有http服务】 ![](https://img-blog.csdnimg.cn/d7963ff697b24965b762cc8fd714eac7.png) sudo nmap -sV -p 80 --script http-enum 192.168.0.103 [枚举服务端的路径] ![](https://img-blog.csdnimg.cn/9906b2a34ef047248c0fbcb32fdbbaae.png) nmap -Pn -p 80,443 --script http-waf-detect,http-waf-fingerprint 192.168.0.103 [探测waf]
SMB枚举
ls -al /usr/share/nmap/scripts | grep smb查询所有smb的脚本 nmap -p 445 --script smb-os-discovery 192.168.0.103 [检测OS类型] nmap -p 445 --script smb-enum-shares 192.168.0.103 [检测所有的smb共享路径]
MySQL枚举
ls -al /usr/share/nmap/scripts | grep mysql查询所有mysql的脚本 nmap -p 3306 --script mysql-info 192.168.0.103 [获得mysql的信息] ![](https://img-blog.csdnimg.cn/502e204f4c30402f92c40674fc75c588.png) nmap -p 3306 --script mysql-enum 192.168.0.103 [获得mysql的账号信息] nmap -p 3306 --script mysql-empty-password 192.168.0.103 [检测mysql的账号是否有空密码] ![](https://img-blog.csdnimg.cn/ee90ca485b864e56a89d08a587c888b0.png) nmap -p 3306 --script mysql-brute --script-args mysql-brute.threads=20 192.168.0.103 [暴力破解mysql的账号和密码,如果不指定]
漏洞扫描
ls -al /usr/share/nmap/scripts | grep vulners查询所有漏洞的脚本
也可以访问https://github.com/vulnersCom/nmap-vulners获取nmap支持的漏洞列表的脚本。
sudo nmap -sV -p21-8080 --script vulners 192.168.0.103 [根据端口枚举相关的漏洞]
获得CVE之后,可以通过https://vulners.com/cve/CVE-2012-1667 ,获得CVE的详细信息。
**九、WEBmap **
是一个基于Web的工具,可以发起nmap扫描,也可以将nmap的扫描结果以图形化显示以及生成报告,具体可以参考一下网站https://hub.docker.com/r/reborntc/webmap
![](https://img-blog.csdnimg.cn/e4d8fb616cde49d693ae564bdfd24b7b.png)
版权归原作者 jimmyleeee 所有, 如有侵权,请联系我们删除。