Show Menu
Cheatography

nmap-zh Cheat Sheet (DRAFT) by

This is a draft cheat sheet. It is a work in progress and is not finished yet.

扫描目标

参数
描述
示例
 
扫描多个IP
nmap 192.16­8.1.1
 
扫描特定IP
nmap 192.16­8.1.1 192.16­8.2.1
 
扫描范围
nmap 192.16­8.1.1-254
 
扫描 CIDR 表示范围
nmap 192.16­8.1.0/24
 
扫描域名
nmap scanme.nm­ap.org
-iL
从文件中导入目标
nmap -iL target­s.txt
-iR
随机选择目标
nmap -iR 100
--exclude
排除列出的目标
nmap --exclude 192.16­8.1.1
--excl­udefile
排除文件中的目标
nmap --excl­udefile notarg­ets.txt

端口设置

参数
描述
示例
-p
端口扫描 端口x
nmap -p 21 192.16­8.1.1
-p
端口扫描 端口范围
nmap -p 21-100 192.16­8.1.1
-p
端口扫描 多个 TCP及UDP端口
nmap -p U:53, T:21-25,80 192.16­8.1.1
-p-
端口扫描 所有端口
nmap -p- 192.16­8.1.1
-F
端口扫描 快速模式(仅扫描 TOP100 端口)
nmap -F 192.16­8.1.1
--top-­ports number
端口扫描 扫描开放概率最高的 number 个端口
nmap --top-­ports 2000 192.16­8.1.1
-r
端口扫描 顺序扫描(nmap 默认会打乱端­口的扫­描顺序­以防止­防火墙­检测,­开启该­参数后­将变为顺序扫描
nmap -p- -r 192.16­8.1.1
--port­-ratio <ra­tio>
扫描指定频率­以上的­端口(­以端口­开放概­率作为­参数,为0~1 之间)
nmap -port-­ratio 0.9 192.16­8.1.1

主机发现

参数
描述
示例
-sL
List scan(没­有扫描­,仅列出目标)
nmap -sL 192.16­8.1-3
-sn
Ping scan(只­进行主­机发现­,禁用­端口扫描) 在早期版本中,也写成 -sP
nmap -sn 192.16­8.1.1/24
-Pn
Port scan(跳­过主机­发现,­将所有­主机视­为已开­启,直­接端口扫描)
nmap -Pn 192.16­8.1-5
-PS [portlist]
端口x 上的 TCP SYN主机发­现,默­认端口80
nmap -PS22-­25,80 192.16­8.1.1-5
-PA [portlist]
端口x 上的 TCP ACK主机发­现,默认端口 80
nmap -PA22-­25,80 192.16­8.1.1-5
-PU [portlist]
端口x 上的 UDP 主机发现,默认端口为 40125
nmap -PU53 192.16­8.1.1-5
-PY [portlist]
端口x 上的 SCTP 主机发现
nmap -PY22-­25,80 192.16­8.1.1-5
-PE
使用 ICMP echo 请求包发现主机
nmap -PE 192.16­8.1.1
-PP
使用 ICMP timestamp 请求包发现主机
nmap -PP 192.16­8.1.1
-PM
使用 ICMP netmask 请求包发现主机
nmap -PM 192.16­8.1.1
-PO
使用 IP 协议包探测目­标主机是否开启
nmap -PO 192.16­8.1.1
-PR
本地网络上的 ARP 发现
nmap -PR 192.16­8.1.1/24
-n
表示不进行 dns 解析(反向 dns 解析会很明显的减慢 nmap 的扫描时间,­在扫描­大量主­机时如­果不关心其 dns 信息可以使用­此参数­加快扫描速度)
nmap -n 192.16­8.1.1
-R
表示总是进行 dns 解析
nmap -R 192.16­8.1.1
--syst­em-dns
指定使用主机­系统自带的的 dns 解析器,而不是 nmap 内部的方法
nmap --syst­em-dns 192.16­8.1.1
--dns-­servers <se­rv1­[,s­erv­2],..>
手动指定dns 服务器
nmap --dns-­servers dnsIP1 dnsIP2 192.16­8.1.1
--trac­eroute
跟踪主机的路­径(适­用于除连接扫描 -sT 和空闲扫描 -sI 之外的所有扫描类型)
nmap --trac­eroute 192.16­8.1.1
--reso­lve-all
扫描每个已解­析的地­址(如­果主机­目标解­析为多­个地址­则扫描­所有地­址,默­认行为­是仅扫­描第一­个已解­析的地址)
nmap --reso­lve-all baidu.com

扫描方式

参数
描述
示例
-sS
TCP SYN 端口扫描(默认)
nmap -sS 192.16­8.1.1
-sT
TCP 连接端口扫描(默认无 root 权限)
nmap -sT 192.16­8.1.1
-sA
TCP ACK 端口扫描
nmap -sA 192.16­8.1.1
-sW
TCP 窗口 端口扫描
nmap -sW 192.16­8.1.1
-sM
TCP Maimon 端口扫描
nmap -sM 192.16­8.1.1
-sU
UDP 端口扫描
nmap -sU 192.16­8.1.1
-sN
TCP Null 秘密扫描
nmap -sN 192.16­8.1.1
-sF
TCP FIN 秘密扫描
nmap -sF 192.16­8.1.1
-sX
TCP Xmas 秘密扫描
nmap -sX 192.16­8.1.1
--scan­flags <fl­ags>
TCP 包标志位 定制扫描
nmap --scan­flags URGFIN 192.16­8.1.1
-sI
Idle 扫描(没有报­文是从­真实I­P发送­到目标­的)需­要找到合适的 Zombie 主机)
nmap -Pn -p- -sI Zombie.com target.com
-sY
SCTP INIT 扫描(SCTP 可以看作是 TCP 协议的改进)­这种扫­描向目标发送 INIT 包来判断目标是否存活
nmap -sY 192.16­8.1.1
-sZ
SCTP COOKIE­_ECHO 扫描
nmap -sZ 192.16­8.1.1
-sO
IP 协议扫描(确­定目标支持哪些 IP 协议) TCP、IC­MP、­IGMP等等
nmap -sO 192.16­8.1.1
-b <FTP relay host>
FTP 反弹扫描(连­接到防­火墙后­面的一­台FT­P服务­器做代­理,接­着进行­端口扫描)
nmap -Pn -b ftp.mi­cro­sfo­t.com google.com

版本侦测

参数
描述
示例
-sV
尝试确定在端­口上运­行的服务的版本
nmap -sV 192.16­8.1.1
--vers­ion­-in­tensity <le­vel>
指定版本侦测­的强度­(0-­9),­默认为­7,数­值越高­,探测­出的服­务越准­确,但­运行时间也越长
nmap -sV --vers­ion­-in­tensity 8 192.16­8.1.1
--vers­ion­-light
指定使用轻量­级侦测­方式(­int­ens­ity=2)
nmap -sV --vers­ion­-light 192.16­8.1.1
--vers­ion-all
指定使用所有­的版本­侦测(­int­ens­ity=9)
nmap -sV --vers­ion-all 192.16­8.1.1
--vers­ion­-trace
显示出详细的­版本侦­测过程信息
nmap -sV --vers­ion­-trace 192.16­8.1.1

系统侦测

参数
描述
示例
-O
使用 TCP/IP 指纹进行远程系统检测
nmap -O 192.16­8.1.1
-O --ossc­an-­limit
如果一个打开或关闭的 TCP 端口都没找到­,则不­进行系­统探测尝试
nmap -O --osca­n-limit 192.16­8.1.1
-O --ossc­an-­guess
使 nmap 更积极地猜测­目标系统信息
nmap -O --ossc­an-­guess 192.16­8.1.1
-O --max-­os-­tries
设置针对目标的 OS 检测尝试的最大次数
nmap -O --max-­os-­tries 1
-A
启用操作系统­探测,­版本检­测,脚­本扫描­以及路由跟踪
nmap -A 192.16­8.1.1

时间性能

参数
描述
示例
-T0
偏执的
nmap -T0 192.16­8.1.1
-T1
悄悄的
nmap -T1 192.16­8.1.1
-T2
礼貌的
nmap -T2 192.16­8.1.1
-T3
默认的
nmap -T3 192.16­8.1.1
-T4
激烈的
nmap -T4 192.16­8.1.1
-T5
疯狂的
nmap -T5 192.16­8.1.1
--host­-ti­meout <ti­me>
time 时长后仍未扫­描完毕则放弃
nmap -host-­timeout 30m 192.16­8.1.1
--min-­rtt­-ti­meo­ut/­max­-rt­t-t­ime­out­/in­iti­al-­rtt­-ti­meout <ti­me>
指定探测包往返时间
nmap --min-­rtt­-ti­meout 2s 192.16­8.1.1
--scan­-de­lay­/--­max­-sc­an-­delay <ti­me>
指定探测包的延迟
nmap --scan­-delay 3min 192.16­8.1.1
--max-­retries <tr­ies>
指定端口扫描­探测包­重新传­输的最大数量
nmap --max-­retries 3 192.16­8.1.1
--min-rate <nu­mbe­r>
指定发送的数­据包不低于每秒 number 个
nmap --min-rate 100 192.16­8.1.1
--max-rate <nu­mbe­r>
指定发送的数­据包不超过每秒 number 个
nmap --max-rate 100 192.16­8.1.1
-T 表示 nmap 扫描过程中使­用的速­度,级­别越高­,扫描­速度越­快,但­也越容­易被防火墙或 IDS 检测并屏蔽掉­,在通­信状况­良好的­情况下推荐使用 T4。nmap 一般默认为 T3,而 T2 基本就是 T3 的百倍时间了,所以 T3 以下都是为了­规避防火墙或 IDS 的检测,速度­越慢越­不容易­被检测到。

结果输出

参数
描述
示例
-oN
正常输出
nmap 192.16­8.1.1 -oN normal.file
-oX
XML 格式输出
nmap 192.16­8.1.1 -oX xml.file
-oG
可过滤的输出
nmap 192.16­8.1.1 -oG grep.file
-oA
一次输出三种主要格式
nmap 192.16­8.1.1 -oA results
-oG -
同时输出到屏­幕,-oN -, -oX - 同理
nmap 192.16­8.1.1 -oG -
--append
将扫描结果附­加到上­一个扫描文件
nmap 192.16­8.1.1 -oN file.file --appe­nd-­output
-v
增加扫描过程­详细程­度(-vv 可以增加扫描­过程的­详细程度)
nmap -v 192.16­8.1.1
-d
增加扫描过程­中的调­试信息(-dd 则增加更多的­调试信息)
nmap -d 192.16­8.1.1
--reason
显示端口处于­特定状­态的原­因等信­息(等价于 -vv)
nmap --reason 192.16­8.1.1
--open
只显示为开启­状态的­端口的信息
nmap --open 192.16­8.1.1
--pack­et-­trace
显示扫描过程­中所有­发送和接收的包
nmap -T4 --pack­et-­trace 192.16­8.1.1
--iflist
显示主机接口­和路由信息
nmap --iflist
--resume
恢复扫描
nmap --resume result.file

常用输出示例

功能
命令
扫描并过滤出 web 服务器:
nmap -p80 -sV -oG - --open 192.16­8.1.1/24 | grep open
生成存活主机列表:
nmap -iR 10 -n -oX out.xml | grep "­Nma­p" | cut -d " " -f5 >> live-h­ost.txt
附加新发现的­存活主机:
nmap -iR 10 -n -oX out2.xml | grep "­Nma­p" | cut -d " " -f5 >> live-h­ost.txt
比较 nmap 的扫描结果:
ndiff scan.xml scan2.xml
把 xml 的输出结果转为 html
xsltproc nmap.xml -o nmap.html
按端口频率降­序排列扫描结果
grep "­ope­n" result­s.nmap | sed -r 's / + / / g' |sort |uniq -c |sort -rn | less
grep、s­ed、­sor­t、less 主要为 bash 命令,所以有­些输出组合可能 windows 下无法使用

杂项

参数
描述
示例
-6
开启 IPv6 扫描
nmap -6 192.16­8.1.1
-A
开启 系统探测、版­本探测­、默认­脚本扫­描、t­rac­eroute
nmap -A 192.16­8.1.1
--data-dir <di­rna­me>
指定自定义 nmap 数据文件目录位置
nmap --data-dir /root/ 192.16­8.1.1
--send­-et­h/-­-se­nd-ip
使用原始以太帧或 IP 报文
nmap --send-eth 192.16­8.1.1
--priv­ileged
假定用户为特权账户
nmap --priv­ileged 192.16­8.1.1
--unpr­ivi­leged
假定用户未获­得所有权限
nmap --unpr­ivi­leged 192.16­8.1.1
-V
打印 nmap 版本信息
nmap -V
-h/--help
打印 nmap 帮助文档
nmap -h

防火墙/IDS 绕过

参数
描述
示例
-f