Nmap的指令
Nmap 7.94(https://nmap.org)
用法:nmap[Scan Type(s)][Options]{target specification}
目标规格:
可以传递主机名、IP地址、网络等。
例如:scanme.nmap.org,microsoft.com/24,192.168.0.1;10.0.0.255.1-254
-iL<inputfilename>:从主机/网络列表输入
-iR<num hosts>:选择随机目标
--排除<host1[,host2][,host3],…>:排除主机/网络
--excludefile<exclude_file>:从文件中排除列表
主机发现:
-sL:列表扫描
列表扫描是主机发现的退化形式,它仅仅列出指定网络上的每台主机, 不发送任何报文到目标主机。
-sP:Ping扫描
该选项告诉Nmap仅仅 进行ping扫描 (主机发现),然后打印出对扫描做出响应的那些主机。 没有进一步的测试 (如端口扫描或者操作系统探测)。 这比列表扫描更积极,常常用于 和列表扫描相同的目的。它可以得到些许目标网络的信息而不被特别注意到。 对于攻击者来说,了解多少主机正在运行比列表扫描提供的一列IP和主机名往往更有价值。
系统管理员往往也很喜欢这个选项。 它可以很方便地得出 网络上有多少机器正在运行或者监视服务器是否正常运行。常常有人称它为 地毯式ping,它比ping广播地址更可靠,因为许多主机对广播请求不响应。
-sN:Null扫描
是通过发送非常规的TCP通信数据包对计算机进行探测。 很多情况下Null扫描与Xmas扫描恰好相反,因为Null扫描不会标记任何数据包,若目标主机的相应端口是关闭的,会响应一个RST数据包,若目标端口是开放的则不会响应任何信息。
-Pn:将所有主机视为联机--跳过主机发现
-PS/PA/PU/PY[portlist]:到给定端口的TCP SYN/ACK、UDP或SCTP发现
-PE/PP/PM:ICMP回显、时间戳和网络掩码请求发现探测
-P0(无ping)
该选项完全跳过Nmap发现阶段。 通常Nmap在进行高强度的扫描时用它确定正在运行的机器。 默认情况下,Nmap只对正在运行的主机进行高强度的探测如 端口扫描,版本探测,或者操作系统探测。用-P0
禁止 主机发现会使Nmap对每一个指定的目标IP地址 进行所要求的扫描。所以如果在命令行指定一个B类目标地址空间(/16), 所有 65,536 个IP地址都会被扫描。 -P0
的第二个字符是数字0而不是字母O。 和列表扫描一样,跳过正常的主机发现,但不是打印一个目标列表, 而是继续执行所要求的功能,就好像每个IP都是活动的。
-n/-R:从不进行DNS解析/始终解析[默认值:有时]
--dns服务器<serv1[,serv2],…>:指定自定义DNS服务器
--系统dns:使用操作系统的dns解析程序
--traceroute:跟踪每个主机的跃点路径
扫描技术:
-sS:SYN扫描,使用最频繁,安全,快
-sU:UDP扫描,慢,可得到有价值的服务器程序
-sI<僵尸主机〔:probeport〕>:空闲扫描
-sY/sZ:STP INIT/COOKIE-ECHO扫描
-sO:IP协议扫描
-b<FTP中继主机>:FTP反弹扫描
端口规格和扫描顺序:
-p<端口范围>:仅扫描指定的端口
例如:-p22-p1-65535-第53111137页,电话:21-25,801398080,传真:9
--排除端口<端口范围>:从扫描中排除指定的端口
-F: 快速模式-扫描比默认扫描更少的端口
-r: 按顺序扫描端口-不要随机化
--顶部端口<number>:扫描<number>最常见的端口
--端口比<ratio>:扫描端口比<ratio>更常见
服务/版本检测:
-sV:探测打开的端口以确定服务/版本信息
--版本强度<level>:从0(光)设置为9(尝试所有探针)
--版本光:限制为最可能的探针(强度2)
--版本all:尝试每一个探针(强度9)
--版本跟踪:显示详细的版本扫描活动(用于调试)
脚本扫描:
-sC<scirptfile>:使用脚本进行扫描,耗时长
--script=<Lua-scripts>:<Lua-scripts>是一个逗号分隔的
目录、脚本文件或脚本类别
--脚本参数=<n1=v1,[n2=v2,…]>:为脚本提供参数
--脚本参数file=filename:在文件中提供NSE脚本参数
--脚本跟踪:显示发送和接收的所有数据
--script updatedb:更新脚本数据库。
--script help=<Lua scripts>:显示有关脚本的帮助。
<Lua脚本>是一个逗号分隔的脚本文件列表,或者
脚本类别。
OS检测:
-O: 启用操作系统检测
--osscan limit:将OS检测限制在有希望的目标
--osscan猜测:更积极地猜测操作系统
时间和性能:
耗时<time>的选项以秒为单位,或附加“ms”(毫秒),
“s”(秒)、“m”(分钟)或“h”(小时)的值(例如30m)。
-T<0-5>:设置计时模板(越高越快)
--最小主机组/最大主机组<size>:并行主机扫描组大小
--最小并行度/最大并行度<numprobes>:探针并行化
--min rtt timeout/max rtt timeout/initial rtt timeoff<time>:指定
探测往返时间。
--max retries<trys>:限制端口扫描探测重新传输的次数。
--主机超时<time>:在这么长时间后放弃目标
--扫描延迟/--最大扫描延迟<time>:调整探头之间的延迟
--最小速率<number>:每秒发送数据包的速度不低于<number>
--最大速率<number>:每秒发送数据包的速度不超过<number>
防火墙/IDS规避和欺骗:
-f:使用小数据包发送,避免被识别出
-D<decoy1,decoy2[,ME],…>:用诱饵掩盖扫描
-S<IP_Address>:假脱机源地址
-e<iface>:使用指定的接口
-g/--源端口<portnum>:使用给定的端口号
--代理<url1,[url2],…>:通过HTTP/SOCKS4代理中继连接
--data<hex-string>:将自定义负载附加到发送的数据包
--data string<string>:将自定义ASCII字符串附加到发送的数据包
--data length<num>:将随机数据附加到发送的数据包
--ip选项<options>:使用指定的ip选项发送数据包
--ttl<val>:设置IP生存时间字段
--欺骗mac<mac地址/前缀/供应商名称>:欺骗你的mac地址
--badsum:发送带有伪造TCP/UDP/SCTP校验和的数据包
输出:
-oN/-oX/-oS/-oG<file>:正常输出扫描,XML,s|<rIpt kIddi3,
和Grepable格式。
-oA<basename>:同时以三种主要格式输出
-v: 增加详细程度(使用-vv或更高效果)
-d: 提高调试级别(使用-dd或更多以获得更大效果)
--原因:显示端口处于特定状态的原因
--open:仅显示打开的(或可能打开的)端口
--数据包跟踪:显示发送和接收的所有数据包
--iflist:打印主机接口和路由(用于调试)
--append output:附加到指定的输出文件,而不是清除指定的输出
--resume<filename>:恢复中止的扫描
--非交互:禁用通过键盘进行的运行时交互
--stylesheet<path/URL>:将XML输出转换为HTML的XSL样式表
--webxml:Nmap中的引用样式表。组织以获得更可移植的XML
--无样式表:防止XSL样式表与XML输出关联
杂项:
-6:启用IPv6扫描
-A: 启用操作系统检测、版本检测、脚本扫描和traceroute
--datadir<dirname>:指定自定义Nmap数据文件位置
--send-eth/--send-ip:使用原始以太网帧或ip数据包发送
--privileged:假设用户具有完全特权
--unprivileged:假设用户缺少原始套接字权限
-V: 打印版本号
-h: 打印此帮助摘要页。
示例:
nmap-v-A scanme.nmap.org
nmap-v-sn 192.168.0.0/16 10.0.0.0/8
nmap-v-iR 10000-Pn-p 80
请参阅手册页(https://nmap.org/book/man.html)有关更多选项和示例