1.Nmap规格说明
控制参数 | 应用举例 | 含义描述 |
nmap 192.168.1.1 | 扫描 单个IP | |
nmap 192.168.1.1 192.168.2.1 | 扫描多个IP | |
nmap 192.168.1.1-254 | 扫描一个IP段 | |
nmap scanme.nmap.org | 扫描一个域名 | |
nmap 192.168.1.0/24 | 使用CIDR表示法进行扫描 | |
-iL | nmap -iL targets.txt | 从一个文件中加载目标扫描 |
-iR | nmap -iR 100 | 随机扫描100个主机 |
-exclude | nmap -exclude 192.168.1.1 | 排除列出的主机 |
2.Nmap扫描技术
控制参数 | 应用举例 | 含义描述 |
-sS | nmap 192.168.1.1 -sS | TCP SYN端口扫描(默认) |
-sT | nmap 192.168.1.1 -sT | TCP 连接端口扫描(默认情况下无需root权限) |
-sU | nmap 192.168.1.1 -sU | UDP 端口扫描 |
-sA | nmap 192.168.1.1 -sA | TCP ACK 端口扫描 |
-sW | nmap 192.168.1.1 -sW | TCP Window 端口扫描 |
-sM | nmap 192.168.1.1 -sM | TCP Maimon 端口扫描 |
3.主机发现
控制参数 | 应用举例 | 含义描述 |
-sL | nmap 192.168.1.1-3 -sL | 不扫描,只枚举目标 |
-sn | nmap 192.168.1.1/24 -sn | 禁用端口扫描,只负责主机发现 |
-Pn | nmap 192.168.1.1-5 -Pn | 禁用主机发现, 只负责端口扫描 |
-PS | nmap 192.168.1.1-5 -PS22-25,80 | 在端口x上进行TCP SYN探测。默认情况下,使用端口80 |
-PA | nmap 192.168.1.1-5 -PA22-25,80 | 在端口x上进行TCP ACK探测。默认情况下,使用端口80 |
-PU | nmap 192.168.1.1-5 -PU53 | 在端口x上进行UDP探测。默认情况下,使用端口40125 |
-PR | nmap 192.168.1.1-1/24 -PR | 本地网络上进行ARP探测 |
-n | nmap 192.168.1.1 -n | 不进行DNS解析 |
4.端口专项扫描
控制参数 | 应用举例 | 含义描述 |
-p | nmap 192.168.1.1 -p 21 | 对端口x进行端口扫描 |
-p | nmap 192.168.1.1 -p 21-100 | 选定端口范围扫描 |
-p | nmap 192.168.1.1 -p U:53,T:21-25,80 | 扫描多个TCP和UDP端口 |
-p | nmap 192.168.1.1 -p- | 进行全端口扫描 |
-p | nmap 192.168.1.1 -p http,https | 根据服务名称进行端口扫描 |
-F | nmap 192.168.1.1 -F | 快速端口扫描(100个端口) |
-top-ports | nmap 192.168.1.1 -top-ports 2000 | 扫描前x个热门端口 |
-p-65535 | nmap 192.168.1.1 -p-65535 | 在范围中省略初始端口将使扫描从端口1开始 |
-p0- | nmap 192.168.1.1 -p0- | 在范围中省略结束端口将使扫描一直进行到端口65535 |
5.服务和版本专项扫描
控制参数 | 应用举例 | 含义描述 |
-sV | nmap 192.168.1.1 -sV | 尝试确定运行在指定端口上的服务的版本 |
-sV -version-intensity | nmap 192.168.1.1 -sV -version-intensity 8 | 强度级别从0到9。较高的数字增加正确性的可能性 |
-sV -version-light | nmap 192.168.1.1 -sV -version-light | 启用轻量模式。降低正确性的可能性,但提高速度 |
-sV -version-all | nmap 192.168.1.1 -sV -version-all | 启用强度级别9。更高的正确性可能性,但速度较慢 |
-A | nmap 192.168.1.1 -A | 启用操作系统检测、版本检测、脚本扫描和跟踪路由 |
6.操作系统探测
控制参数 | 应用举例 | 含义描述 |
-O | nmap 192.168.1.1 -O | 远程操作系统检测 |
-O -osscan-limit | nmap 192.168.1.1 -O -osscan-limit | 如果未找到至少一个开放和一个关闭的TCP端口,则不会对主机进行操作系统检测 |
-O -osscan-guess | nmap 192.168.1.1 -O -osscan-guess | 使Nmap更加积极地进行猜测 |
-O -max-os-tries | nmap 192.168.1.1 -O -max-os-tries 1 | 设置对目标进行操作系统检测的最大尝试次数为x |
-A | nmap 192.168.1.1 -A | 启用操作系统检测、版本检测、脚本扫描和跟踪路由 |
7.时序和性能
控制参数 | 应用举例 | 含义描述 |
-T0 | nmap 192.168.1.1 -T0 | 慎密模式(0),用于入侵检测系统规避 |
-T1 | nmap 192.168.1.1 -T1 | 隐秘模式(1),用于入侵检测系统规避 |
-T2 | nmap 192.168.1.1 -T2 | 有礼模式(2)减缓扫描速度,以减少带宽使用并降低目标机器资源的消耗 |
-T3 | nmap 192.168.1.1 -T3 | 正常模式(3),即默认速度 |
-T4 | nmap 192.168.1.1 -T4 | 激进模式(4)加快扫描速度;假设您在一个相当快速和可靠的网络上 |
-T5 | nmap 192.168.1.1 -T5 | 疯狂模式(5)加快扫描速度;假设您在一个非常快速的网络上 |
8.时序和性能开关
控制参数 | 应用举例 | 含义描述 |
-host-timeout<time> | 1s; 4m; 2h | 在经过这么长时间后放弃对目标的扫描 |
-min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout<time> | 1s; 4m; 2h | 指定探测的往返时间 |
-min-hostgroup/max-hostgroup <size<size> | 50; 1024 | 并行主机扫描组大小 |
-min-parallelism/max-parallelism<numprobes> | 10; 1 | 探测并行化 |
-max-retries<tries> | 3 | 指定端口扫描探测的最大重传次数 |
-min-rate<number> | 100 | 每秒发送的数据包速度不低于<number> |
-max-rate<number> | 100 | 每秒发送的数据包速度不超过<number> |
9.NSE脚本
控制参数 | 应用举例 | 含义描述 |
-sC | nmap 192.168.1.1 -sC | 使用默认的Nmap脚本引擎(NSE)脚本进行扫描。被认为对发现和安全性有用 |
-script default | nmap 192.168.1.1 -script default | 使用默认的Nmap脚本引擎(NSE)脚本进行扫描。被认为对发现和安全性有用 |
-script | nmap 192.168.1.1 -script=banner | 使用单个脚本进行扫描。例如,扫描的脚本是banner |
-script | nmap 192.168.1.1 -script=http* | 使用通配符进行扫描。例如,扫描的是http。 |
-script | nmap 192.168.1.1 -script=http,banner | 使用两个脚本进行扫描。例如,扫描的脚本包括http和banner |
-script | nmap 192.168.1.1 -script "not intrusive" | 扫描默认设置,但删除具有侵入性的脚本 |
-script-args | nmap -script snmp-sysdescr -script-args snmpcommunity=admin 192.168.1.1 | 带有参数的NSE脚本 |
10.使用NSE脚本举例
控制参数 | 含义描述 |
nmap -Pn -script=http-sitemap-generator scanme.nmap.org | HTTP站点地图生成器 |
nmap -n -Pn -p 80 -open -sV -vvv -script banner,http-title -iR 1000 | 快速搜索随机的Web服务器 |
nmap -Pn -script=dns-brute domain.com | 暴力破解DNS主机名,猜测子域名 |
nmap -n -Pn -vv -O -sV -script smb-enum,smb-ls,smb-mbenum,smb-os-discovery,smb-s,smb-vuln,smbv2-vv 192.168.1.1 | 安全的SMB脚本运行 |
nmap -script whois* domain.com | Whois 查询 |
nmap -p80 -script http-unsafe-output-escaping scanme.nmap.org | 检测跨站脚本(XSS)漏洞 |
nmap -p80 -script http-sql-injection scanme.nmap.org | 检查SQL注入漏洞 |
11.防火墙/入侵检测系统(IDS)规避和欺骗
控制参数 | 应用举例 | 含义描述 |
-f | nmap 192.168.1.1 -f | 请求的扫描(包括ping扫描)使用微小的分段IP数据包。对于数据包过滤更加困难 |
-mtu | nmap 192.168.1.1 -mtu 32 | 设置自己的偏移大小 |
-D | nmap -D 192.168.1.101,192.168.1.102,192.168.1.103,192.168.1.23 192.168.1.1 | 从伪造的IP地址发送扫描 |
-D | nmap -D decoy-ip1,decoy-ip2,your-own-ip,decoy-ip3,decoy-ip4 remote-host-ip | 上述例子解释 |
-S | nmap -Swww.microsoft.comwww.facebook.com | 扫描Facebook从Microsoft(可能需要使用-e eth0 -Pn) |
-g | nmap -g 53 192.168.1.1 | 使用给定的源端口号 |
-proxies | nmap -proxieshttp://192.168.1.1:8080,http://192.168.1.2:8080192.168.1.1 | 通过HTTP/SOCKS4代理中继连接 |
-data-length | nmap -data-length 200 192.168.1.1 | 将随机数据附加到发送的数据包 |
示例入侵检测系统(IDS)规避命令:
nmap -f -t 0 -n -Pn --data-length 200 -D192.168.1.101,192.168.1.102,192.168.1.103,192.168.1.23 192.168.1.1
12.输出到文件
控制参数 | 应用举例 | 含义描述 |
-oN | nmap 192.168.1.1 -oN normal.file | 将正常输出保存到文件normal.file中 |
-oX | nmap 192.168.1.1 -oX xml.file | 将XML格式的输出保存到文件xml.file中 |
-oG | nmap 192.168.1.1 -oG grep.file | 将可用于grep命令的输出保存到文件grep.file中 |
-oA | nmap 192.168.1.1 -oA results | 将扫描结果同时保存为三种主要格式的命令 |
-oG - | nmap 192.168.1.1 -oG - | 可用于屏幕显示的grep格式的输出。也可以使用-oN -、-oX -。 |
-append-output | nmap 192.168.1.1 -oN file.file -append-output | 将扫描追加到先前的扫描文件中 |
-v | nmap 192.168.1.1 -v | 增加详细程度的级别(使用-vv或更多以获得更大的效果) |
-d | nmap 192.168.1.1 -d | 增加调试级别(使用-dd或更多以获得更大的效果) |
-reason | nmap 192.168.1.1 -reason | 显示端口处于特定状态的原因,与-vv输出相同 |
-open | nmap 192.168.1.1 -open | 只显示打开(或可能打开)的端口 |
-packet-trace | nmap 192.168.1.1 -T4 -packet-trace | 显示所有发送和接收的数据包 |
-iflist | nmap -iflist | 显示主机的网络接口和路由信息 |
-resume | nmap -resume results.file | 恢复扫描 |
13.有用的Namp输出示例
控制命令 | 含义描述 |
nmap -p80 -sV -oG - -open 192.168.1.1/24 | grep open | 扫描Web服务器并使用grep显示运行Web服务器的IP地址 |
nmap -iR 10 -n -oX out.xml | grep "Nmap" | cut -d " " -f5 > live-hosts.txt | 生成活动主机的IP地址列表 |
nmap -iR 10 -n -oX out2.xml | grep "Nmap" | cut -d " " -f5 >> live-hosts.txt | 将IP追加到活动主机列表 |
ndiff scanl.xml scan2.xml | 要比较两个Nmap扫描结果,可以使用ndiff工具 |
xsltproc nmap.xml -o nmap.html | 将Nmap的XML文件转换为HTML文件 |
grep " open " results.nmap | sed -r ‘s/ +/ /g’ | sort | uniq -c | sort -rn | less | 出现频率的逆排序端口列表 |