Nmap使用手册

温馨提示:本文最后更新于2023-12-26 11:47:51,某些文章具有时效性,若有错误或已失效,请在下方留言或联系站长

工具介绍

Nmap是一款开源免费的网络发现(Network Discovery)和安全审计(Security Auditing)工具。软件名字Nmap是Network Mapper的简称。Nmap最初是由Fyodor在1997年开始创建的。随后在开源社区众多的志愿者参与下,该工具逐渐成为最为流行安全必备工具之一。

工具使用

1、目标说明 扫描整个网段 192.168.1.0/24 扫描域名所在网段 www.baidu.com/24 扫描特定限制地址段 0-255.0-255.77.88 以上方式可以混合使用,之间用空格分隔 -iL <inputfilename> 从列表输入目标: nmap -sP -iL i:\ip.txt #当需要扫描的地址过多,可以直接通过文件名导入。 -iR <hostnum> 随机选择目标: nmap -sP -iR 10 #后接参数表示随机的个数,0为不限制个数,不合规的IP会自动忽略。 --exclude <host1,host2,host3,...> 排除不需要扫描的主机或段: nmap -sP 192.168.1.0/24 --exclude 192.168.1.1-100,192.168.1.200-254 --exclude <excludefile> #排除的IP地址或段通过文件导入。 2、参数说明 nmap –iflist : 查看本地主机的接口信息和路由信息 -A :选项用于使用进攻性方式扫描 -T4: 指定扫描过程使用的时序,总有6个级别(0-5),级别越高,扫描速度越快,但也容易被防火墙或IDS检测并屏蔽掉,在网络通讯状况较好的情况下推荐使用T4 -oX test.xml: 将扫描结果生成 test.xml 文件,如果中断,则结果打不开 -oA test.xml: 将扫描结果生成 test.xml 文件,中断后,结果也可保存 -oG test.txt: 将扫描结果生成 test.txt 文件 -sn : 只进行主机发现,不进行端口扫描 -O : 指定Nmap进行系统版本扫描 -sV: 指定让Nmap进行服务版本扫描 -p <port ranges>: 扫描指定的端口 -sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式来对目标主机进行扫描 -sU: 指定使用UDP扫描方式确定目标主机的UDP端口状况 -script <script name> : 指定扫描脚本 -Pn : 不进行ping扫描 -sP : 用ping扫描判断主机是否存活,只有主机存活,nmap才会继续扫描,一般最好不加,因为有的主机会禁止ping -PI : 设置这个选项,让nmap使用真正的ping(ICMP echo请求)来扫描目标主机是否正在运行。 -iL 1.txt : 批量扫描1.txt中的目标地址 -sL: List Scan 列表扫描,仅将指定的目标的IP列举出来,不进行主机发现 -sY/sZ: 使用SCTP INIT/COOKIE-ECHO来扫描SCTP协议端口的开放的情况 -sO: 使用IP protocol 扫描确定目标机支持的协议类型 -PO : 使用IP协议包探测对方主机是否开启 -PE/PP/PM : 使用ICMP echo、 ICMP timestamp、ICMP netmask 请求包发现主机 -PS/PA/PU/PY : 使用TCP SYN/TCP ACK或SCTP INIT/ECHO方式进行发现 -sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密扫描方式来协助探测对方的TCP端口状态 -e eth0:指定使用eth0网卡进行探测 -f : --mtu <val>: 指定使用分片、指定数据包的 MTU. -b <FTP relay host>: 使用FTP bounce scan扫描方式 -g: 指定发送的端口号 -r: 不进行端口随机打乱的操作(如无该参数,nmap会将要扫描的端口以随机顺序方式扫描,以让nmap的扫描不易被对方防火墙检测到) -v 表示显示冗余信息,在扫描过程中显示扫描的细节,从而让用户了解当前的扫描状态 -n : 表示不进行DNS解析; -D <decoy1,decoy2[,ME],...>: 用一组 IP 地址掩盖真实地址,其中 ME 填入自己的 IP 地址 -R :表示总是进行DNS解析。 -F : 快速模式,仅扫描TOP 100的端口 -S <IP_Address>: 伪装成其他 IP 地址 --ttl <val>: 设置 time-to-live 时间 --badsum: 使用错误的 checksum 来发送数据包(正常情况下,该类数据包被抛弃,如果收到回复,说明回复来自防火墙或 IDS/IPS) --dns-servers : 指定DNS服务器 --system-dns : 指定使用系统的DNS服务器 --traceroute : 追踪每个路由节点 --scanflags <flags>: 定制TCP包的flags --top-ports <number> :扫描开放概率最高的number个端口 --port-ratio <ratio>: 扫描指定频率以上的端口。与上述--top-ports类似,这里以概率作为参数 --version-trace: 显示出详细的版本侦测过程信息 --osscan-limit: 限制Nmap只对确定的主机的进行OS探测(至少需确知该主机分别有一个open和closed的端口) --osscan-guess: 大胆猜测对方的主机的系统类型。由此准确性会下降不少,但会尽可能多为用户提供潜在的操作系统 --data-length <num>: 填充随机数据让数据包长度达到 Num --ip-options <options>: 使用指定的 IP 选项来发送数据包 --spoof-mac <mac address/prefix/vendor name> : 伪装 MAC 地址 --version-intensity <level>: 指定版本侦测强度(0-9),默认为7。数值越高,探测出的服务越准确,但是运行时间会比较长。 --version-light: 指定使用轻量侦测方式 (intensity 2) --version-all: 尝试使用所有的probes进行侦测 (intensity 9) --version-trace: 显示出详细的版本侦测过程信息 nmap 192.168.1.0/24 -exclude 192.168.1.10 #扫描除192.168.1.0外的该网段的其他地址 nmap 192.168.1.0/24 -excludefile f:/1.txt #扫描除给定文件中的地址以外的其他地址 nmap -sF -T4 192.168.1.0 #探测防火墙状态 3、端口扫描基础 默认扫描主句超过1660个TCP端口 6种端口状态: open:端口是开放的。 closed:端口是关闭的。 filtered:端口被防火墙IDS/IPS屏蔽,无法确定其状态。 unfiltered:端口没有被屏蔽,但是否开放需要进一步确定。 open|filtered:端口是开放的或被屏蔽,Nmap不能识别。 closed|filtered :端口是关闭的或被屏蔽,Nmap不能识别 4、主机发现 -sL: List Scan 列表扫描,仅将指定的目标的IP列举出来,不进行主机发现。 -sP: ping扫描,也叫地毯式ping,发送一个ICMP请求和一个TCP请求到80端口,检测活动主机。同时如果扫描同一局域网的话还会发ARP包进行探测。 -sn: Ping Scan 只进行主机发现,不进行端口扫描。 -Pn: 将所有指定的主机视作开启的,跳过主机发现的过程。 -PS/PA/PU/PY[portlist]: 使用TCP SYN/TCP ACK或SCTP INIT/ECHO方式进行发现。 -PE/PP/PM: 使用ICMP echo、 ICMP timestamp、ICMP netmask 请求包发现主机。 -PO[protocol list]: 使用IP协议包探测对方主机是否开启。 -PR: ARP ping,因为不需要arp 解析,所以会更快更可靠,即使指定了iP的请求方式,也会默认发送ARP探测,局域网内推荐。 -n/-R: -n表示不进行DNS解析;-R表示总是进行DNS解析。 --dns-servers <serv1[,serv2],...>: 指定DNS服务器。 --system-dns: 指定使用系统的DNS服务器 --traceroute: 追踪每个路由节点 5、端口扫描技术 Nmap的端口扫描参数都是"s"开头,第二个字母为技术所选字母大写。 -sS (TCY SYN 扫描) 半开放扫描, SYN/ACK表示端口在监听(开放),而RST (复位)表示没有监听者。如果数次重发后仍没响应, 该端口就被标记为被过滤。如果收到ICMP不可到达错误(类型3,代码1, 2, 3, 9, 10,或者13),该端口也被标记为被过滤。 -sT (TCP connect 扫描) TCP connect方式使用系统网络API connect向目标主机的端口发起连接,如果无法连接,说明该端口关闭。该方式扫描速度比较慢,而且由于建立完整的TCP连接会在目标主机上留下记录信息,不够隐蔽。所以,TCP connect是TCP SYN无法使用才考虑使用的方式 -sU (UDP 扫描) UDP扫描用于判断UDP端口的情况,向目标主机的UDP端口发送探测包,如果收到回复ICMP port unreachable就说明该端口是关闭的;如果没有收到回复,那说明该UDP端口可能是开放的或者屏蔽的。因此,通过反向排除法的方式来判断哪些UDP端口是可能处于开放状态的。 -sN (Null 扫描) 如果扫描系统遵循该RFC, 当端口关闭时,任何不包含SYN, RST,或者ACK位的报文会导致一个RST返回,而当端口开放时,应该没有任何响应,只要不包|含SYN, RST,或者ACK,任何其它三种(FIN, PSH, and URG)的组合都行。不设置任何标志位(tcp标志头是0) -sF (FIN 扫描) 只设置TCP FIN标志位 -sX (Xmas 扫描) 只设置FIN,PSH,和URG标志位 -sA (TCP ACK 扫描) 向目标主机的端口发送ACK包,如果收到RST包,说明该端口没有被防火墙屏蔽;没有收到RST包,说明被屏蔽。该方式只能用于确定防火墙是否屏蔽某个端口,可以辅助TCP SYN的方式来判断目标主机防火墙的状况 -sW (TCP 窗口扫描) 通过检查返回的RST报文的TCP窗口城确定窗口是否关闭,开放端口为正,关团端口为0,但是,这种情况很多系统并不适用,可以作为参考 -sM (TCP Maimon 扫描) 发送的TCP探测报文是FIN/ACK,无论端口开放或者关闭,都应该相应RST -sO (IP协议扫描) 扫描目标主机开放了哪些协议,而不是端口,扫描会遍历所有IP协议号,并且可以通过-p参数指定要扫描的协议号 -sI <zombie host[:probeport]>(Idlesan) 高级扫描,拖藏自身IP地址,可以指定你以为可能被信任的主机IP进行扫描,参考https://nmap.org/book/idlescan.html -b <ftp relay host>(FTP弹跳扫描) FTP允许用户连接到一台FTP服务器,然后要求文件送到一台第三方服务器,这个特性大多被封禁,但是现在仍可以利用,用来绕过防火墙,因为一般FTP服|务器会有比web服务器更高的内网连通权限 --scanflags(定制的TCP扫描) 可以任意定制TCP标志位,包括: URG, ACK,PSH, RST, SYN,FIN等任意组合,组合顺序不重要,除了设置标志位,还可以指定TCP扫描类型,不指定到默认SYN描 6、端口说明和扫描顺序 默认情况下,Nmap用指定的协议对端口1到1024以及nmap-services文件中列出的更高的端口进行扫描。 -p <port ranges> (只扫描指定的端口) 可以单个端口,也可以1-99的范围端口,开始和结束省略代表1和65535,两端都省略表示扫描所有端口号,在-sO的协议号扫描中-p参数可以指定扫描的协号:当同时扫描TCP和UDP时, nmap-sU -sS -p U:53,137,T:23,3389,80 10.10.172.87,不加端口限制,默认最大 -F(快速扫描) Fast mode – 快速模式,仅扫描TOP 100的端口 -r (不要按随机顺序扫描端口) Nmap默认是随机扫描,常用端口会前移,用-r 选项可以强制按顺序扫描端口。 --top-ports <number> 扫描开放概率最高的number个端口(nmap的作者曾经做过大规模地互联网扫描,以此统计出网络上各种端口可能开放的概率。以此排列出最有可能开放端口的列表,具体可以参见文件:nmap-services。默认情况下,nmap会扫描最有可能的1000个TCP端口) --port-ratio <ratio> 扫描指定频率以上的端口。与上述--top-ports类似,这里以概率作为参数,让概率大于--port-ratio的端口才被扫描。显然参数必须在在0到1之间,具体范围概率情况可以查看nmap-services文件 7、服务与版本探测 -sV (版本探测) 打开版本探测 -A (操作系统探测) 打开操作系统探测 -sR (RPC 扫描) 和端口扫描结合使用,对发现开放的端口执行命令,确定是否是RPC端口,如里是,打印详细信息。这作为-sV的一部分自动打开。由于版本探测包含它并且全面的多,所以-sR很少被需要。 --allports (不为版本探测排除任何端口) 默认情况下,nmap会跳过9100TCP端口,以为打印机会打印一堆这种扫描请求。用--allports 可以不排除任何端口。 --version-intensity <intensity> (设置版本扫描强度) 共有0-9个级别的探测强度,默认为7,强度值越高,扫描的越准确,也越慢,当探测报文通过nmap-service-probes port指示符注册到目标端口时,不论什么强度都会默认扫描 --version-light (打开轻量级模式) 扫描强度为2 的别名 --version-all (尝试每个探测) 扫描强度为9的别名 --version-trace (跟踪版本扫描活动) 会同步打印正在扫描的调试信息,是--packet-trace 的所得信息的子集。 8、操作系统探测 nmap 发送大量的查询信息,根据反馈对比自己对于系统描述的数据库,最后确定操作系统类型。 -O (启用操作系统检测) 也可以使用-A来同时启用操作系统检测和版本检测。 --osscan-limit (针对指定的目标进行操作系统检测) 这个选项是只对发现一个打开或者关闭的TCP端口的主机进行操作系统检测,以提高效率,并且只在-O 或者-A 时起作用。 --osscan-guess; --fuzzy (推测操作系统检测结果) 默认开启,是指如果nmap不能确定操作系统,那么会提供一个相近的匹配。 9、时间和性能 nmap 开发的最高优先级是性能,本地网络一个主机的默认扫描是1/5秒。 -T (设置时间模板) 模板化选项,编号0-5, 0-1躲避IDS; 2 降低扫描速度, 节约带宽和目标主机资源;3默认选项;4 假设用户网络健康加速扫描; 5极快模式,消耗更多的网络资源,追求速度降低准确性; 2比3要慢10倍; -T4禁止扫描延迟超过10ms的主机, -T5延迟不能超过5ms; 0、1、2都不是并行扫描,不适用于大数据量1的扫描 T4选项与--max-rtt-timeout 1250 --initial-rtt-timeout 500等价,最大TCP扫描延迟为10ms。 T5等价于--max-rtt-timeout 300--min-rtt-timeout 50 --initial-rtt-timeout 250--host-timeout 900000,最大TCP扫描廷迟为5ms --scan-delay <milliseconds> --max-scan-delay <milliseconds> (调整探测报文的时间间隔) 对于对扫描有速率或阈值限制的时候,这个选项可以调整扫描的发包间隔,避免被IPS --host-timeout <milliseconds> (放弃低速目标主机) 默认对于扫描超过1800000ms(半个小时)的主机进行忽略,并且在这半个小时中nmap是在同时扫描别的主机,并没有停止,忽略了就不会有结果输出。 --min-hostgroup <milliseconds> --max-hostgroup <milliseconds> (调整并行扫描组的大小) nmap并发扫描是先分组再扫描,所分的组大小大于设定的最小组,小于最天1组,必须是扫描完整个组才会出扫描报告,一般最小组为5,最大为1024,nmap一般采用先小组出结果,然后增加组的大小增快扫描速度。 --min-parallelism <milliseconds> --max-parallelism <milliseconds> (调整探测报文的并行度) 指定一个范围,nmap 会根据网络状况和主机性能,自动调整并行报文探测的数量,并行度数量一般是1到几百。 --min-rtt-timeout <milliseconds> --max-rtt-timeout <milliseconds> --initial-rtt-timeout <milliseconds> (调整探测报文超时) nmap会根据上一个探测报文自动计算时值,本地网络max 100ms比较合适,有路由的话可以先ping测试看延迟,然后init是往返时间的2倍, max是3-4倍,通常, max不能小于100ms,不能超过1000ms, min很少使用。 10、防火墙/IDS 躲避和哄骗 -f (报文分段);--mtu (使用指定的MTU) 将TCP头分段在几个包中,使的包过滤, IDS等安全手段检测更加困难。偏移量必须是8的倍数,但是,在一些系统中,这种将TCP头部分片的方式会影响到目标系统和网络的解读。 -D <decoy1,decoy2,[ME]...> (使用诱饵隐藏扫描) 使用诱饵隐藏扫描的源主机,让远程主机以为是诱饵在扫描目标网络,也是一中隐藏自身IP地址的技术,如果在第6或者更后位置使用ME选项,一些检测器就不会报告这个真实IP,如果不使用ME选项,那么真实IP将放在一个随机位置,同时需要保证诱饵主机是活的,在线的。 -e <interface> (使用指定的接口) 强制Nmap 使用特定接口发送和接受报文。 --source-port <portnumber>; -g <portnumber> (源端口哄骗): 这两个命令是等价的,强制nmap 从目标主机可能信任的我方端口发送扫描,比如UPD 53 或者 TCP20 --data-length <number> (发送报文时 附加随机数据) Nmap 默认发送最少的报文,只包含一个头部,TCP通常40字节,ICMP ECHO 通常28字节,这个命令实在报文上增加指定数量的随机字节,会使处理变慢。 --ttl <value> (设置IP time-to-live域) 设置IPV4 报文的time-to-live 域为指定的值。 --randomize-host (对目标主机的顺序随机排列) 扫描前对每个组中的主机随机排序,最多可达8096个,这会使得扫描针对不同的网络监控系统来说变得不是很明显。 --spoof-mac <mac address, prefix, or vendor name> (MAC 地址哄骗) Nmap例造源mac地址进行发送以太网顿,如果0,那么是随机mac.如果16进制,那么使用这个mac地址,如果是小于12的16进制,填充剩下的6个字节,如果参数不是0或16制字符串, Nmap将通过nmap-mac-prefixes查找厂商的名称(大小写区分),如果找到匹配, Nmap将使用厂商的QU1(3字节前缀),然后随机填充剩余的3个节字,正确的-spoof-mac参数有. Apple. 0. 01:02-03:04:05:06.deadbeefcafe. 0020E 和 Cisco 11、运行时交互 Nmap 可以在扫描过程中调整输入输出,不必终止扫描或者重启 v/V 增加/减少细节 d/D 提高/降低调试级别 p/P 打开/关闭报文跟踪 12、输出 输出格式 -oN <filespec> (标准输出) 格式与交互性输出略有不同 -oX <filespec> (XML输出) 输出为XML格式,可以进行编程语言的调用分析 -oS <filespec> (脚本小子输出) 脚本小子输出,类似于交互工具输出 -oG <filespec> (Grep 输出) 输出比较简单,每行一个主机,方便查找,适用环境较少 -oA <basename> (输出至所有格式) 将扫描结果以标准格式、XML 格式和Grep格式一次性输出。 细节和调试选项 -v (提高输出信息的详细度) 大部分的变化仅影响交互式输出;这个选项如果使用两次,会提供更详细的信息。 –d [level] (提高或设置调试级别) 当觉得详细模式不再详细时,可以使用-d设置调试级别,-d9为最高级别,能够产生上千行输出,这个一般是属于开发人员的选项,可以剖析Nmap的工作原理。 –packet-trace (跟踪发送和接收的报文) 要求Nmap打印发送和接收的每个报文的摘要,通过用于调试,如果只需进行版本检测,使用-version-trace –iflist (列表接口和系统路由) 输出Nmap 检测到的接口列表和系统路由,用于调试路由问题或设备描述失误 其他输出选项 –append-output (表示在输出文件中添加,而不是覆盖原文件) 在现有文件的基础上在内容后面追加新的扫描结果: -oX和-ON都是重名覆盖:但是对于XML扫描输出是无效的,因为无法正常解析 –resume <filename>(继续中断的扫描) 对于标准扫描(-oN)或者Grep扫描(-oG) ,当扫描中断知道,可以使用nmap--resume <logfilename>命令导入之前的扫描输出, Nmap会解析之前的扫描输出并使用原来的格式输出, Nmap会把新的扫描结果添加到源文件中,但是这种格式不支持XML输出格式,因为合并太困难。 –stylesheet <path or URL>:设置XSL样式表,转换XML输出; Web浏览器中打开Nmap的XML输出时,将会在文件系统中寻找<a href="https://pdha.top/tag/nmap" title="更多关于 nmap 的文章" target="_blank">nmap</a>.xsl文件,并使用它输出结果 –no-stylesheet(忽略XML生命的XSL样式表 ) 使用该选项禁止Nmap 的XML输出关联任何XSL样式表。
1、目标说明 扫描整个网段 192.168.1.0/24 扫描域名所在网段  www.baidu.com/24 扫描特定限制地址段  0-255.0-255.77.88 以上方式可以混合使用,之间用空格分隔 -iL <inputfilename>  从列表输入目标: nmap -sP -iL i:\ip.txt #当需要扫描的地址过多,可以直接通过文件名导入。 -iR <hostnum> 随机选择目标: nmap -sP -iR 10 #后接参数表示随机的个数,0为不限制个数,不合规的IP会自动忽略。 --exclude <host1,host2,host3,...> 排除不需要扫描的主机或段: nmap -sP 192.168.1.0/24 --exclude 192.168.1.1-100,192.168.1.200-254 --exclude <excludefile>  #排除的IP地址或段通过文件导入。  2、参数说明 nmap –iflist : 查看本地主机的接口信息和路由信息 -A :选项用于使用进攻性方式扫描 -T4: 指定扫描过程使用的时序,总有6个级别(0-5),级别越高,扫描速度越快,但也容易被防火墙或IDS检测并屏蔽掉,在网络通讯状况较好的情况下推荐使用T4 -oX test.xml: 将扫描结果生成 test.xml 文件,如果中断,则结果打不开 -oA test.xml:  将扫描结果生成 test.xml 文件,中断后,结果也可保存 -oG test.txt:  将扫描结果生成 test.txt 文件 -sn : 只进行主机发现,不进行端口扫描 -O : 指定Nmap进行系统版本扫描 -sV: 指定让Nmap进行服务版本扫描 -p <port ranges>: 扫描指定的端口 -sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式来对目标主机进行扫描 -sU: 指定使用UDP扫描方式确定目标主机的UDP端口状况 -script <script name> : 指定扫描脚本 -Pn : 不进行ping扫描 -sP :  用ping扫描判断主机是否存活,只有主机存活,nmap才会继续扫描,一般最好不加,因为有的主机会禁止ping -PI :  设置这个选项,让nmap使用真正的ping(ICMP echo请求)来扫描目标主机是否正在运行。 -iL 1.txt : 批量扫描1.txt中的目标地址  -sL: List Scan 列表扫描,仅将指定的目标的IP列举出来,不进行主机发现 -sY/sZ: 使用SCTP INIT/COOKIE-ECHO来扫描SCTP协议端口的开放的情况 -sO: 使用IP protocol 扫描确定目标机支持的协议类型 -PO : 使用IP协议包探测对方主机是否开启  -PE/PP/PM : 使用ICMP echo、 ICMP timestamp、ICMP netmask 请求包发现主机 -PS/PA/PU/PY : 使用TCP SYN/TCP ACK或SCTP INIT/ECHO方式进行发现 -sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密扫描方式来协助探测对方的TCP端口状态 -e eth0:指定使用eth0网卡进行探测 -f : --mtu <val>: 指定使用分片、指定数据包的 MTU. -b <FTP relay host>: 使用FTP bounce scan扫描方式 -g: 指定发送的端口号 -r: 不进行端口随机打乱的操作(如无该参数,nmap会将要扫描的端口以随机顺序方式扫描,以让nmap的扫描不易被对方防火墙检测到) -v 表示显示冗余信息,在扫描过程中显示扫描的细节,从而让用户了解当前的扫描状态 -n : 表示不进行DNS解析; -D  <decoy1,decoy2[,ME],...>: 用一组 IP 地址掩盖真实地址,其中 ME 填入自己的 IP 地址 -R :表示总是进行DNS解析。  -F : 快速模式,仅扫描TOP 100的端口  -S <IP_Address>: 伪装成其他 IP 地址 --ttl <val>: 设置 time-to-live 时间 --badsum: 使用错误的 checksum 来发送数据包(正常情况下,该类数据包被抛弃,如果收到回复,说明回复来自防火墙或 IDS/IPS) --dns-servers  : 指定DNS服务器 --system-dns : 指定使用系统的DNS服务器    --traceroute : 追踪每个路由节点  --scanflags <flags>: 定制TCP包的flags --top-ports <number> :扫描开放概率最高的number个端口 --port-ratio <ratio>: 扫描指定频率以上的端口。与上述--top-ports类似,这里以概率作为参数 --version-trace: 显示出详细的版本侦测过程信息 --osscan-limit: 限制Nmap只对确定的主机的进行OS探测(至少需确知该主机分别有一个open和closed的端口) --osscan-guess: 大胆猜测对方的主机的系统类型。由此准确性会下降不少,但会尽可能多为用户提供潜在的操作系统 --data-length <num>: 填充随机数据让数据包长度达到 Num --ip-options <options>: 使用指定的 IP 选项来发送数据包 --spoof-mac <mac address/prefix/vendor name> : 伪装 MAC 地址 --version-intensity <level>: 指定版本侦测强度(0-9),默认为7。数值越高,探测出的服务越准确,但是运行时间会比较长。 --version-light: 指定使用轻量侦测方式 (intensity 2) --version-all: 尝试使用所有的probes进行侦测 (intensity 9) --version-trace: 显示出详细的版本侦测过程信息 nmap 192.168.1.0/24 -exclude 192.168.1.10  #扫描除192.168.1.0外的该网段的其他地址 nmap 192.168.1.0/24 -excludefile f:/1.txt  #扫描除给定文件中的地址以外的其他地址 nmap -sF -T4 192.168.1.0 #探测防火墙状态  3、端口扫描基础 默认扫描主句超过1660个TCP端口 6种端口状态: open:端口是开放的。 closed:端口是关闭的。 filtered:端口被防火墙IDS/IPS屏蔽,无法确定其状态。 unfiltered:端口没有被屏蔽,但是否开放需要进一步确定。 open|filtered:端口是开放的或被屏蔽,Nmap不能识别。 closed|filtered :端口是关闭的或被屏蔽,Nmap不能识别  4、主机发现   -sL: List Scan  列表扫描,仅将指定的目标的IP列举出来,不进行主机发现。   -sP: ping扫描,也叫地毯式ping,发送一个ICMP请求和一个TCP请求到80端口,检测活动主机。同时如果扫描同一局域网的话还会发ARP包进行探测。    -sn: Ping Scan  只进行主机发现,不进行端口扫描。   -Pn: 将所有指定的主机视作开启的,跳过主机发现的过程。   -PS/PA/PU/PY[portlist]: 使用TCP SYN/TCP ACK或SCTP INIT/ECHO方式进行发现。   -PE/PP/PM: 使用ICMP echo、 ICMP timestamp、ICMP netmask 请求包发现主机。   -PO[protocol list]: 使用IP协议包探测对方主机是否开启。   -PR: ARP ping,因为不需要arp 解析,所以会更快更可靠,即使指定了iP的请求方式,也会默认发送ARP探测,局域网内推荐。    -n/-R: -n表示不进行DNS解析;-R表示总是进行DNS解析。   --dns-servers <serv1[,serv2],...>: 指定DNS服务器。      --system-dns: 指定使用系统的DNS服务器    --traceroute: 追踪每个路由节点  5、端口扫描技术 Nmap的端口扫描参数都是"s"开头,第二个字母为技术所选字母大写。 -sS (TCY SYN 扫描)        半开放扫描, SYN/ACK表示端口在监听(开放),而RST (复位)表示没有监听者。如果数次重发后仍没响应, 该端口就被标记为被过滤。如果收到ICMP不可到达错误(类型3,代码1, 2, 3, 9, 10,或者13),该端口也被标记为被过滤。 -sT (TCP connect 扫描)          TCP connect方式使用系统网络API connect向目标主机的端口发起连接,如果无法连接,说明该端口关闭。该方式扫描速度比较慢,而且由于建立完整的TCP连接会在目标主机上留下记录信息,不够隐蔽。所以,TCP connect是TCP SYN无法使用才考虑使用的方式 -sU (UDP 扫描)          UDP扫描用于判断UDP端口的情况,向目标主机的UDP端口发送探测包,如果收到回复ICMP port unreachable就说明该端口是关闭的;如果没有收到回复,那说明该UDP端口可能是开放的或者屏蔽的。因此,通过反向排除法的方式来判断哪些UDP端口是可能处于开放状态的。 -sN (Null 扫描)          如果扫描系统遵循该RFC, 当端口关闭时,任何不包含SYN, RST,或者ACK位的报文会导致一个RST返回,而当端口开放时,应该没有任何响应,只要不包|含SYN, RST,或者ACK,任何其它三种(FIN, PSH, and URG)的组合都行。不设置任何标志位(tcp标志头是0) -sF (FIN 扫描)          只设置TCP FIN标志位 -sX (Xmas 扫描)          只设置FIN,PSH,和URG标志位 -sA (TCP ACK 扫描)         向目标主机的端口发送ACK包,如果收到RST包,说明该端口没有被防火墙屏蔽;没有收到RST包,说明被屏蔽。该方式只能用于确定防火墙是否屏蔽某个端口,可以辅助TCP SYN的方式来判断目标主机防火墙的状况 -sW (TCP 窗口扫描)          通过检查返回的RST报文的TCP窗口城确定窗口是否关闭,开放端口为正,关团端口为0,但是,这种情况很多系统并不适用,可以作为参考 -sM (TCP Maimon 扫描)          发送的TCP探测报文是FIN/ACK,无论端口开放或者关闭,都应该相应RST -sO (IP协议扫描)          扫描目标主机开放了哪些协议,而不是端口,扫描会遍历所有IP协议号,并且可以通过-p参数指定要扫描的协议号 -sI <zombie host[:probeport]>(Idlesan)           高级扫描,拖藏自身IP地址,可以指定你以为可能被信任的主机IP进行扫描,参考https://nmap.org/book/idlescan.html -b <ftp relay host>(FTP弹跳扫描)          FTP允许用户连接到一台FTP服务器,然后要求文件送到一台第三方服务器,这个特性大多被封禁,但是现在仍可以利用,用来绕过防火墙,因为一般FTP服|务器会有比web服务器更高的内网连通权限 --scanflags(定制的TCP扫描)          可以任意定制TCP标志位,包括: URG, ACK,PSH, RST, SYN,FIN等任意组合,组合顺序不重要,除了设置标志位,还可以指定TCP扫描类型,不指定到默认SYN描  6、端口说明和扫描顺序 默认情况下,Nmap用指定的协议对端口1到1024以及nmap-services文件中列出的更高的端口进行扫描。 -p <port ranges> (只扫描指定的端口)           可以单个端口,也可以1-99的范围端口,开始和结束省略代表1和65535,两端都省略表示扫描所有端口号,在-sO的协议号扫描中-p参数可以指定扫描的协号:当同时扫描TCP和UDP时, nmap-sU -sS -p  U:53,137,T:23,3389,80 10.10.172.87,不加端口限制,默认最大 -F(快速扫描)           Fast mode – 快速模式,仅扫描TOP 100的端口 -r (不要按随机顺序扫描端口)           Nmap默认是随机扫描,常用端口会前移,用-r 选项可以强制按顺序扫描端口。 --top-ports <number>      扫描开放概率最高的number个端口(nmap的作者曾经做过大规模地互联网扫描,以此统计出网络上各种端口可能开放的概率。以此排列出最有可能开放端口的列表,具体可以参见文件:nmap-services。默认情况下,nmap会扫描最有可能的1000个TCP端口)  --port-ratio <ratio>      扫描指定频率以上的端口。与上述--top-ports类似,这里以概率作为参数,让概率大于--port-ratio的端口才被扫描。显然参数必须在在0到1之间,具体范围概率情况可以查看nmap-services文件  7、服务与版本探测 -sV (版本探测)         打开版本探测 -A  (操作系统探测)         打开操作系统探测 -sR (RPC 扫描)          和端口扫描结合使用,对发现开放的端口执行命令,确定是否是RPC端口,如里是,打印详细信息。这作为-sV的一部分自动打开。由于版本探测包含它并且全面的多,所以-sR很少被需要。 --allports (不为版本探测排除任何端口)          默认情况下,nmap会跳过9100TCP端口,以为打印机会打印一堆这种扫描请求。用--allports 可以不排除任何端口。 --version-intensity <intensity> (设置版本扫描强度)         共有0-9个级别的探测强度,默认为7,强度值越高,扫描的越准确,也越慢,当探测报文通过nmap-service-probes port指示符注册到目标端口时,不论什么强度都会默认扫描 --version-light (打开轻量级模式)          扫描强度为2 的别名 --version-all (尝试每个探测)          扫描强度为9的别名 --version-trace (跟踪版本扫描活动)          会同步打印正在扫描的调试信息,是--packet-trace 的所得信息的子集。  8、操作系统探测 nmap 发送大量的查询信息,根据反馈对比自己对于系统描述的数据库,最后确定操作系统类型。 -O (启用操作系统检测)        也可以使用-A来同时启用操作系统检测和版本检测。 --osscan-limit (针对指定的目标进行操作系统检测)          这个选项是只对发现一个打开或者关闭的TCP端口的主机进行操作系统检测,以提高效率,并且只在-O 或者-A 时起作用。 --osscan-guess; --fuzzy (推测操作系统检测结果)          默认开启,是指如果nmap不能确定操作系统,那么会提供一个相近的匹配。  9、时间和性能 nmap 开发的最高优先级是性能,本地网络一个主机的默认扫描是1/5秒。 -T (设置时间模板)     模板化选项,编号0-5, 0-1躲避IDS; 2 降低扫描速度, 节约带宽和目标主机资源;3默认选项;4 假设用户网络健康加速扫描; 5极快模式,消耗更多的网络资源,追求速度降低准确性; 2比3要慢10倍; -T4禁止扫描延迟超过10ms的主机, -T5延迟不能超过5ms; 0、1、2都不是并行扫描,不适用于大数据量1的扫描    T4选项与--max-rtt-timeout 1250 --initial-rtt-timeout 500等价,最大TCP扫描延迟为10ms。    T5等价于--max-rtt-timeout 300--min-rtt-timeout 50 --initial-rtt-timeout 250--host-timeout 900000,最大TCP扫描廷迟为5ms --scan-delay <milliseconds>  --max-scan-delay <milliseconds> (调整探测报文的时间间隔)    对于对扫描有速率或阈值限制的时候,这个选项可以调整扫描的发包间隔,避免被IPS --host-timeout <milliseconds> (放弃低速目标主机)       默认对于扫描超过1800000ms(半个小时)的主机进行忽略,并且在这半个小时中nmap是在同时扫描别的主机,并没有停止,忽略了就不会有结果输出。 --min-hostgroup <milliseconds> --max-hostgroup <milliseconds> (调整并行扫描组的大小)    nmap并发扫描是先分组再扫描,所分的组大小大于设定的最小组,小于最天1组,必须是扫描完整个组才会出扫描报告,一般最小组为5,最大为1024,nmap一般采用先小组出结果,然后增加组的大小增快扫描速度。 --min-parallelism <milliseconds> --max-parallelism <milliseconds> (调整探测报文的并行度)   指定一个范围,nmap 会根据网络状况和主机性能,自动调整并行报文探测的数量,并行度数量一般是1到几百。 --min-rtt-timeout <milliseconds> --max-rtt-timeout <milliseconds> --initial-rtt-timeout <milliseconds> (调整探测报文超时)   nmap会根据上一个探测报文自动计算时值,本地网络max 100ms比较合适,有路由的话可以先ping测试看延迟,然后init是往返时间的2倍, max是3-4倍,通常, max不能小于100ms,不能超过1000ms, min很少使用。  10、防火墙/IDS 躲避和哄骗 -f (报文分段);--mtu (使用指定的MTU)      将TCP头分段在几个包中,使的包过滤, IDS等安全手段检测更加困难。偏移量必须是8的倍数,但是,在一些系统中,这种将TCP头部分片的方式会影响到目标系统和网络的解读。 -D <decoy1,decoy2,[ME]...> (使用诱饵隐藏扫描)       使用诱饵隐藏扫描的源主机,让远程主机以为是诱饵在扫描目标网络,也是一中隐藏自身IP地址的技术,如果在第6或者更后位置使用ME选项,一些检测器就不会报告这个真实IP,如果不使用ME选项,那么真实IP将放在一个随机位置,同时需要保证诱饵主机是活的,在线的。 -e <interface> (使用指定的接口)       强制Nmap 使用特定接口发送和接受报文。 --source-port <portnumber>; -g <portnumber> (源端口哄骗):      这两个命令是等价的,强制nmap 从目标主机可能信任的我方端口发送扫描,比如UPD 53 或者 TCP20 --data-length <number> (发送报文时 附加随机数据)     Nmap 默认发送最少的报文,只包含一个头部,TCP通常40字节,ICMP ECHO 通常28字节,这个命令实在报文上增加指定数量的随机字节,会使处理变慢。 --ttl <value> (设置IP time-to-live域)      设置IPV4 报文的time-to-live 域为指定的值。 --randomize-host (对目标主机的顺序随机排列)     扫描前对每个组中的主机随机排序,最多可达8096个,这会使得扫描针对不同的网络监控系统来说变得不是很明显。 --spoof-mac <mac address, prefix, or vendor name> (MAC 地址哄骗)          Nmap例造源mac地址进行发送以太网顿,如果0,那么是随机mac.如果16进制,那么使用这个mac地址,如果是小于12的16进制,填充剩下的6个字节,如果参数不是0或16制字符串, Nmap将通过nmap-mac-prefixes查找厂商的名称(大小写区分),如果找到匹配, Nmap将使用厂商的QU1(3字节前缀),然后随机填充剩余的3个节字,正确的-spoof-mac参数有. Apple. 0. 01:02-03:04:05:06.deadbeefcafe. 0020E 和 Cisco  11、运行时交互 Nmap 可以在扫描过程中调整输入输出,不必终止扫描或者重启 v/V        增加/减少细节 d/D        提高/降低调试级别 p/P        打开/关闭报文跟踪 12、输出 输出格式 -oN <filespec> (标准输出)     格式与交互性输出略有不同 -oX <filespec> (XML输出)         输出为XML格式,可以进行编程语言的调用分析 -oS <filespec> (脚本小子输出)             脚本小子输出,类似于交互工具输出 -oG <filespec> (Grep 输出)      输出比较简单,每行一个主机,方便查找,适用环境较少 -oA <basename> (输出至所有格式)    将扫描结果以标准格式、XML 格式和Grep格式一次性输出。 细节和调试选项 -v (提高输出信息的详细度)          大部分的变化仅影响交互式输出;这个选项如果使用两次,会提供更详细的信息。 –d [level] (提高或设置调试级别)     当觉得详细模式不再详细时,可以使用-d设置调试级别,-d9为最高级别,能够产生上千行输出,这个一般是属于开发人员的选项,可以剖析Nmap的工作原理。 –packet-trace (跟踪发送和接收的报文)     要求Nmap打印发送和接收的每个报文的摘要,通过用于调试,如果只需进行版本检测,使用-version-trace –iflist (列表接口和系统路由)     输出Nmap 检测到的接口列表和系统路由,用于调试路由问题或设备描述失误 其他输出选项 –append-output (表示在输出文件中添加,而不是覆盖原文件)     在现有文件的基础上在内容后面追加新的扫描结果: -oX和-ON都是重名覆盖:但是对于XML扫描输出是无效的,因为无法正常解析 –resume <filename>(继续中断的扫描)     对于标准扫描(-oN)或者Grep扫描(-oG) ,当扫描中断知道,可以使用nmap--resume <logfilename>命令导入之前的扫描输出, Nmap会解析之前的扫描输出并使用原来的格式输出, Nmap会把新的扫描结果添加到源文件中,但是这种格式不支持XML输出格式,因为合并太困难。  –stylesheet <path or URL>:设置XSL样式表,转换XML输出;     Web浏览器中打开Nmap的XML输出时,将会在文件系统中寻找<a href="https://pdha.top/tag/nmap" title="更多关于 nmap 的文章" target="_blank">nmap</a>.xsl文件,并使用它输出结果 –no-stylesheet(忽略XML生命的XSL样式表 )     使用该选项禁止Nmap 的XML输出关联任何XSL样式表。
1、目标说明 扫描整个网段 192.168.1.0/24 扫描域名所在网段 www.baidu.com/24 扫描特定限制地址段 0-255.0-255.77.88 以上方式可以混合使用,之间用空格分隔 -iL <inputfilename> 从列表输入目标: nmap -sP -iL i:\ip.txt #当需要扫描的地址过多,可以直接通过文件名导入。 -iR <hostnum> 随机选择目标: nmap -sP -iR 10 #后接参数表示随机的个数,0为不限制个数,不合规的IP会自动忽略。 --exclude <host1,host2,host3,...> 排除不需要扫描的主机或段: nmap -sP 192.168.1.0/24 --exclude 192.168.1.1-100,192.168.1.200-254 --exclude <excludefile> #排除的IP地址或段通过文件导入。 2、参数说明 nmap –iflist : 查看本地主机的接口信息和路由信息 -A :选项用于使用进攻性方式扫描 -T4: 指定扫描过程使用的时序,总有6个级别(0-5),级别越高,扫描速度越快,但也容易被防火墙或IDS检测并屏蔽掉,在网络通讯状况较好的情况下推荐使用T4 -oX test.xml: 将扫描结果生成 test.xml 文件,如果中断,则结果打不开 -oA test.xml: 将扫描结果生成 test.xml 文件,中断后,结果也可保存 -oG test.txt: 将扫描结果生成 test.txt 文件 -sn : 只进行主机发现,不进行端口扫描 -O : 指定Nmap进行系统版本扫描 -sV: 指定让Nmap进行服务版本扫描 -p <port ranges>: 扫描指定的端口 -sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans的方式来对目标主机进行扫描 -sU: 指定使用UDP扫描方式确定目标主机的UDP端口状况 -script <script name> : 指定扫描脚本 -Pn : 不进行ping扫描 -sP : 用ping扫描判断主机是否存活,只有主机存活,nmap才会继续扫描,一般最好不加,因为有的主机会禁止ping -PI : 设置这个选项,让nmap使用真正的ping(ICMP echo请求)来扫描目标主机是否正在运行。 -iL 1.txt : 批量扫描1.txt中的目标地址 -sL: List Scan 列表扫描,仅将指定的目标的IP列举出来,不进行主机发现 -sY/sZ: 使用SCTP INIT/COOKIE-ECHO来扫描SCTP协议端口的开放的情况 -sO: 使用IP protocol 扫描确定目标机支持的协议类型 -PO : 使用IP协议包探测对方主机是否开启 -PE/PP/PM : 使用ICMP echo、 ICMP timestamp、ICMP netmask 请求包发现主机 -PS/PA/PU/PY : 使用TCP SYN/TCP ACK或SCTP INIT/ECHO方式进行发现 -sN/sF/sX: 指定使用TCP Null, FIN, and Xmas scans秘密扫描方式来协助探测对方的TCP端口状态 -e eth0:指定使用eth0网卡进行探测 -f : --mtu <val>: 指定使用分片、指定数据包的 MTU. -b <FTP relay host>: 使用FTP bounce scan扫描方式 -g: 指定发送的端口号 -r: 不进行端口随机打乱的操作(如无该参数,nmap会将要扫描的端口以随机顺序方式扫描,以让nmap的扫描不易被对方防火墙检测到) -v 表示显示冗余信息,在扫描过程中显示扫描的细节,从而让用户了解当前的扫描状态 -n : 表示不进行DNS解析; -D <decoy1,decoy2[,ME],...>: 用一组 IP 地址掩盖真实地址,其中 ME 填入自己的 IP 地址 -R :表示总是进行DNS解析。 -F : 快速模式,仅扫描TOP 100的端口 -S <IP_Address>: 伪装成其他 IP 地址 --ttl <val>: 设置 time-to-live 时间 --badsum: 使用错误的 checksum 来发送数据包(正常情况下,该类数据包被抛弃,如果收到回复,说明回复来自防火墙或 IDS/IPS) --dns-servers : 指定DNS服务器 --system-dns : 指定使用系统的DNS服务器 --traceroute : 追踪每个路由节点 --scanflags <flags>: 定制TCP包的flags --top-ports <number> :扫描开放概率最高的number个端口 --port-ratio <ratio>: 扫描指定频率以上的端口。与上述--top-ports类似,这里以概率作为参数 --version-trace: 显示出详细的版本侦测过程信息 --osscan-limit: 限制Nmap只对确定的主机的进行OS探测(至少需确知该主机分别有一个open和closed的端口) --osscan-guess: 大胆猜测对方的主机的系统类型。由此准确性会下降不少,但会尽可能多为用户提供潜在的操作系统 --data-length <num>: 填充随机数据让数据包长度达到 Num --ip-options <options>: 使用指定的 IP 选项来发送数据包 --spoof-mac <mac address/prefix/vendor name> : 伪装 MAC 地址 --version-intensity <level>: 指定版本侦测强度(0-9),默认为7。数值越高,探测出的服务越准确,但是运行时间会比较长。 --version-light: 指定使用轻量侦测方式 (intensity 2) --version-all: 尝试使用所有的probes进行侦测 (intensity 9) --version-trace: 显示出详细的版本侦测过程信息 nmap 192.168.1.0/24 -exclude 192.168.1.10 #扫描除192.168.1.0外的该网段的其他地址 nmap 192.168.1.0/24 -excludefile f:/1.txt #扫描除给定文件中的地址以外的其他地址 nmap -sF -T4 192.168.1.0 #探测防火墙状态 3、端口扫描基础 默认扫描主句超过1660个TCP端口 6种端口状态: open:端口是开放的。 closed:端口是关闭的。 filtered:端口被防火墙IDS/IPS屏蔽,无法确定其状态。 unfiltered:端口没有被屏蔽,但是否开放需要进一步确定。 open|filtered:端口是开放的或被屏蔽,Nmap不能识别。 closed|filtered :端口是关闭的或被屏蔽,Nmap不能识别 4、主机发现 -sL: List Scan 列表扫描,仅将指定的目标的IP列举出来,不进行主机发现。 -sP: ping扫描,也叫地毯式ping,发送一个ICMP请求和一个TCP请求到80端口,检测活动主机。同时如果扫描同一局域网的话还会发ARP包进行探测。 -sn: Ping Scan 只进行主机发现,不进行端口扫描。 -Pn: 将所有指定的主机视作开启的,跳过主机发现的过程。 -PS/PA/PU/PY[portlist]: 使用TCP SYN/TCP ACK或SCTP INIT/ECHO方式进行发现。 -PE/PP/PM: 使用ICMP echo、 ICMP timestamp、ICMP netmask 请求包发现主机。 -PO[protocol list]: 使用IP协议包探测对方主机是否开启。 -PR: ARP ping,因为不需要arp 解析,所以会更快更可靠,即使指定了iP的请求方式,也会默认发送ARP探测,局域网内推荐。 -n/-R: -n表示不进行DNS解析;-R表示总是进行DNS解析。 --dns-servers <serv1[,serv2],...>: 指定DNS服务器。 --system-dns: 指定使用系统的DNS服务器 --traceroute: 追踪每个路由节点 5、端口扫描技术 Nmap的端口扫描参数都是"s"开头,第二个字母为技术所选字母大写。 -sS (TCY SYN 扫描) 半开放扫描, SYN/ACK表示端口在监听(开放),而RST (复位)表示没有监听者。如果数次重发后仍没响应, 该端口就被标记为被过滤。如果收到ICMP不可到达错误(类型3,代码1, 2, 3, 9, 10,或者13),该端口也被标记为被过滤。 -sT (TCP connect 扫描) TCP connect方式使用系统网络API connect向目标主机的端口发起连接,如果无法连接,说明该端口关闭。该方式扫描速度比较慢,而且由于建立完整的TCP连接会在目标主机上留下记录信息,不够隐蔽。所以,TCP connect是TCP SYN无法使用才考虑使用的方式 -sU (UDP 扫描) UDP扫描用于判断UDP端口的情况,向目标主机的UDP端口发送探测包,如果收到回复ICMP port unreachable就说明该端口是关闭的;如果没有收到回复,那说明该UDP端口可能是开放的或者屏蔽的。因此,通过反向排除法的方式来判断哪些UDP端口是可能处于开放状态的。 -sN (Null 扫描) 如果扫描系统遵循该RFC, 当端口关闭时,任何不包含SYN, RST,或者ACK位的报文会导致一个RST返回,而当端口开放时,应该没有任何响应,只要不包|含SYN, RST,或者ACK,任何其它三种(FIN, PSH, and URG)的组合都行。不设置任何标志位(tcp标志头是0) -sF (FIN 扫描) 只设置TCP FIN标志位 -sX (Xmas 扫描) 只设置FIN,PSH,和URG标志位 -sA (TCP ACK 扫描) 向目标主机的端口发送ACK包,如果收到RST包,说明该端口没有被防火墙屏蔽;没有收到RST包,说明被屏蔽。该方式只能用于确定防火墙是否屏蔽某个端口,可以辅助TCP SYN的方式来判断目标主机防火墙的状况 -sW (TCP 窗口扫描) 通过检查返回的RST报文的TCP窗口城确定窗口是否关闭,开放端口为正,关团端口为0,但是,这种情况很多系统并不适用,可以作为参考 -sM (TCP Maimon 扫描) 发送的TCP探测报文是FIN/ACK,无论端口开放或者关闭,都应该相应RST -sO (IP协议扫描) 扫描目标主机开放了哪些协议,而不是端口,扫描会遍历所有IP协议号,并且可以通过-p参数指定要扫描的协议号 -sI <zombie host[:probeport]>(Idlesan) 高级扫描,拖藏自身IP地址,可以指定你以为可能被信任的主机IP进行扫描,参考https://nmap.org/book/idlescan.html -b <ftp relay host>(FTP弹跳扫描) FTP允许用户连接到一台FTP服务器,然后要求文件送到一台第三方服务器,这个特性大多被封禁,但是现在仍可以利用,用来绕过防火墙,因为一般FTP服|务器会有比web服务器更高的内网连通权限 --scanflags(定制的TCP扫描) 可以任意定制TCP标志位,包括: URG, ACK,PSH, RST, SYN,FIN等任意组合,组合顺序不重要,除了设置标志位,还可以指定TCP扫描类型,不指定到默认SYN描 6、端口说明和扫描顺序 默认情况下,Nmap用指定的协议对端口1到1024以及nmap-services文件中列出的更高的端口进行扫描。 -p <port ranges> (只扫描指定的端口) 可以单个端口,也可以1-99的范围端口,开始和结束省略代表1和65535,两端都省略表示扫描所有端口号,在-sO的协议号扫描中-p参数可以指定扫描的协号:当同时扫描TCP和UDP时, nmap-sU -sS -p U:53,137,T:23,3389,80 10.10.172.87,不加端口限制,默认最大 -F(快速扫描) Fast mode – 快速模式,仅扫描TOP 100的端口 -r (不要按随机顺序扫描端口) Nmap默认是随机扫描,常用端口会前移,用-r 选项可以强制按顺序扫描端口。 --top-ports <number> 扫描开放概率最高的number个端口(nmap的作者曾经做过大规模地互联网扫描,以此统计出网络上各种端口可能开放的概率。以此排列出最有可能开放端口的列表,具体可以参见文件:nmap-services。默认情况下,nmap会扫描最有可能的1000个TCP端口) --port-ratio <ratio> 扫描指定频率以上的端口。与上述--top-ports类似,这里以概率作为参数,让概率大于--port-ratio的端口才被扫描。显然参数必须在在0到1之间,具体范围概率情况可以查看nmap-services文件 7、服务与版本探测 -sV (版本探测) 打开版本探测 -A (操作系统探测) 打开操作系统探测 -sR (RPC 扫描) 和端口扫描结合使用,对发现开放的端口执行命令,确定是否是RPC端口,如里是,打印详细信息。这作为-sV的一部分自动打开。由于版本探测包含它并且全面的多,所以-sR很少被需要。 --allports (不为版本探测排除任何端口) 默认情况下,nmap会跳过9100TCP端口,以为打印机会打印一堆这种扫描请求。用--allports 可以不排除任何端口。 --version-intensity <intensity> (设置版本扫描强度) 共有0-9个级别的探测强度,默认为7,强度值越高,扫描的越准确,也越慢,当探测报文通过nmap-service-probes port指示符注册到目标端口时,不论什么强度都会默认扫描 --version-light (打开轻量级模式) 扫描强度为2 的别名 --version-all (尝试每个探测) 扫描强度为9的别名 --version-trace (跟踪版本扫描活动) 会同步打印正在扫描的调试信息,是--packet-trace 的所得信息的子集。 8、操作系统探测 nmap 发送大量的查询信息,根据反馈对比自己对于系统描述的数据库,最后确定操作系统类型。 -O (启用操作系统检测) 也可以使用-A来同时启用操作系统检测和版本检测。 --osscan-limit (针对指定的目标进行操作系统检测) 这个选项是只对发现一个打开或者关闭的TCP端口的主机进行操作系统检测,以提高效率,并且只在-O 或者-A 时起作用。 --osscan-guess; --fuzzy (推测操作系统检测结果) 默认开启,是指如果nmap不能确定操作系统,那么会提供一个相近的匹配。 9、时间和性能 nmap 开发的最高优先级是性能,本地网络一个主机的默认扫描是1/5秒。 -T (设置时间模板) 模板化选项,编号0-5, 0-1躲避IDS; 2 降低扫描速度, 节约带宽和目标主机资源;3默认选项;4 假设用户网络健康加速扫描; 5极快模式,消耗更多的网络资源,追求速度降低准确性; 2比3要慢10倍; -T4禁止扫描延迟超过10ms的主机, -T5延迟不能超过5ms; 0、1、2都不是并行扫描,不适用于大数据量1的扫描 T4选项与--max-rtt-timeout 1250 --initial-rtt-timeout 500等价,最大TCP扫描延迟为10ms。 T5等价于--max-rtt-timeout 300--min-rtt-timeout 50 --initial-rtt-timeout 250--host-timeout 900000,最大TCP扫描廷迟为5ms --scan-delay <milliseconds> --max-scan-delay <milliseconds> (调整探测报文的时间间隔) 对于对扫描有速率或阈值限制的时候,这个选项可以调整扫描的发包间隔,避免被IPS --host-timeout <milliseconds> (放弃低速目标主机) 默认对于扫描超过1800000ms(半个小时)的主机进行忽略,并且在这半个小时中nmap是在同时扫描别的主机,并没有停止,忽略了就不会有结果输出。 --min-hostgroup <milliseconds> --max-hostgroup <milliseconds> (调整并行扫描组的大小) nmap并发扫描是先分组再扫描,所分的组大小大于设定的最小组,小于最天1组,必须是扫描完整个组才会出扫描报告,一般最小组为5,最大为1024,nmap一般采用先小组出结果,然后增加组的大小增快扫描速度。 --min-parallelism <milliseconds> --max-parallelism <milliseconds> (调整探测报文的并行度) 指定一个范围,nmap 会根据网络状况和主机性能,自动调整并行报文探测的数量,并行度数量一般是1到几百。 --min-rtt-timeout <milliseconds> --max-rtt-timeout <milliseconds> --initial-rtt-timeout <milliseconds> (调整探测报文超时) nmap会根据上一个探测报文自动计算时值,本地网络max 100ms比较合适,有路由的话可以先ping测试看延迟,然后init是往返时间的2倍, max是3-4倍,通常, max不能小于100ms,不能超过1000ms, min很少使用。 10、防火墙/IDS 躲避和哄骗 -f (报文分段);--mtu (使用指定的MTU) 将TCP头分段在几个包中,使的包过滤, IDS等安全手段检测更加困难。偏移量必须是8的倍数,但是,在一些系统中,这种将TCP头部分片的方式会影响到目标系统和网络的解读。 -D <decoy1,decoy2,[ME]...> (使用诱饵隐藏扫描) 使用诱饵隐藏扫描的源主机,让远程主机以为是诱饵在扫描目标网络,也是一中隐藏自身IP地址的技术,如果在第6或者更后位置使用ME选项,一些检测器就不会报告这个真实IP,如果不使用ME选项,那么真实IP将放在一个随机位置,同时需要保证诱饵主机是活的,在线的。 -e <interface> (使用指定的接口) 强制Nmap 使用特定接口发送和接受报文。 --source-port <portnumber>; -g <portnumber> (源端口哄骗): 这两个命令是等价的,强制nmap 从目标主机可能信任的我方端口发送扫描,比如UPD 53 或者 TCP20 --data-length <number> (发送报文时 附加随机数据) Nmap 默认发送最少的报文,只包含一个头部,TCP通常40字节,ICMP ECHO 通常28字节,这个命令实在报文上增加指定数量的随机字节,会使处理变慢。 --ttl <value> (设置IP time-to-live域) 设置IPV4 报文的time-to-live 域为指定的值。 --randomize-host (对目标主机的顺序随机排列) 扫描前对每个组中的主机随机排序,最多可达8096个,这会使得扫描针对不同的网络监控系统来说变得不是很明显。 --spoof-mac <mac address, prefix, or vendor name> (MAC 地址哄骗) Nmap例造源mac地址进行发送以太网顿,如果0,那么是随机mac.如果16进制,那么使用这个mac地址,如果是小于12的16进制,填充剩下的6个字节,如果参数不是0或16制字符串, Nmap将通过nmap-mac-prefixes查找厂商的名称(大小写区分),如果找到匹配, Nmap将使用厂商的QU1(3字节前缀),然后随机填充剩余的3个节字,正确的-spoof-mac参数有. Apple. 0. 01:02-03:04:05:06.deadbeefcafe. 0020E 和 Cisco 11、运行时交互 Nmap 可以在扫描过程中调整输入输出,不必终止扫描或者重启 v/V 增加/减少细节 d/D 提高/降低调试级别 p/P 打开/关闭报文跟踪 12、输出 输出格式 -oN <filespec> (标准输出) 格式与交互性输出略有不同 -oX <filespec> (XML输出) 输出为XML格式,可以进行编程语言的调用分析 -oS <filespec> (脚本小子输出) 脚本小子输出,类似于交互工具输出 -oG <filespec> (Grep 输出) 输出比较简单,每行一个主机,方便查找,适用环境较少 -oA <basename> (输出至所有格式) 将扫描结果以标准格式、XML 格式和Grep格式一次性输出。 细节和调试选项 -v (提高输出信息的详细度) 大部分的变化仅影响交互式输出;这个选项如果使用两次,会提供更详细的信息。 –d [level] (提高或设置调试级别) 当觉得详细模式不再详细时,可以使用-d设置调试级别,-d9为最高级别,能够产生上千行输出,这个一般是属于开发人员的选项,可以剖析Nmap的工作原理。 –packet-trace (跟踪发送和接收的报文) 要求Nmap打印发送和接收的每个报文的摘要,通过用于调试,如果只需进行版本检测,使用-version-trace –iflist (列表接口和系统路由) 输出Nmap 检测到的接口列表和系统路由,用于调试路由问题或设备描述失误 其他输出选项 –append-output (表示在输出文件中添加,而不是覆盖原文件) 在现有文件的基础上在内容后面追加新的扫描结果: -oX和-ON都是重名覆盖:但是对于XML扫描输出是无效的,因为无法正常解析 –resume <filename>(继续中断的扫描) 对于标准扫描(-oN)或者Grep扫描(-oG) ,当扫描中断知道,可以使用nmap--resume <logfilename>命令导入之前的扫描输出, Nmap会解析之前的扫描输出并使用原来的格式输出, Nmap会把新的扫描结果添加到源文件中,但是这种格式不支持XML输出格式,因为合并太困难。 –stylesheet <path or URL>:设置XSL样式表,转换XML输出; Web浏览器中打开Nmap的XML输出时,将会在文件系统中寻找nmap.xsl文件,并使用它输出结果 –no-stylesheet(忽略XML生命的XSL样式表 ) 使用该选项禁止Nmap 的XML输出关联任何XSL样式表。

使用技巧总结

一、主机发现

1. 全面扫描/综合扫描 nmap -A 192.168.1.103 2. Ping扫描 nmap -sP 192.168.1.1/24 3. 免Ping扫描,穿透防火墙,避免被防火墙发现 nmap -P0 192.168.1.103 4. TCP SYN Ping 扫描 nmap -PS -v 192.168.1.103 nmap -PS80,10-100 -v 192.168.1.103 (针对防火墙丢弃RST包) 5. TCP ACK Ping 扫描 nmap -PA -v 192.168.1.103 6. UDP Ping 扫描 nmap -PU -v 192.168.1.103 7. ICMP Ping Types 扫描 nmap -PU -v 192.168.1.103 (ICMP ECHO) nmap -PP -v 192.168.1.103 (ICMP 时间戳) nmap -PM -v 192.168.1.103 (ICMP 地址掩码) 8. ARP Ping 扫描 nmap -PR -v 192.168.1.103 9. 列表 扫描 nmap -sL -v 192.168.1.103 10. 禁止方向域名解析 nmap -n -sL -v 192.168.1.103 11. 方向域名解析 nmap -R -sL -v 192.168.1.103 12. 使用系统域名解析系统 nmap --system-dns 192.168.1.2 192.168.1.103 13. 扫描IPV6地址 nmap -6 IPv6 14. 路由跟踪 nmap --traceroute -v www.sunbridgegroup.com 15. SCTP INIT Ping 扫描 nmap -PY -v 192.168.1.103
1. 全面扫描/综合扫描 nmap -A 192.168.1.103  2. Ping扫描 nmap -sP 192.168.1.1/24  3. 免Ping扫描,穿透防火墙,避免被防火墙发现 nmap -P0 192.168.1.103  4. TCP SYN Ping 扫描 nmap -PS -v 192.168.1.103 nmap -PS80,10-100 -v 192.168.1.103 (针对防火墙丢弃RST包)  5. TCP ACK Ping 扫描 nmap -PA -v 192.168.1.103  6. UDP Ping 扫描 nmap -PU -v 192.168.1.103  7. ICMP Ping Types 扫描 nmap -PU -v 192.168.1.103    (ICMP ECHO) nmap -PP -v 192.168.1.103    (ICMP 时间戳) nmap -PM -v 192.168.1.103    (ICMP 地址掩码)  8. ARP Ping 扫描 nmap -PR -v 192.168.1.103  9. 列表 扫描 nmap -sL -v 192.168.1.103  10. 禁止方向域名解析 nmap -n -sL -v 192.168.1.103  11. 方向域名解析 nmap -R -sL -v 192.168.1.103  12. 使用系统域名解析系统 nmap --system-dns 192.168.1.2 192.168.1.103  13. 扫描IPV6地址 nmap -6 IPv6  14. 路由跟踪 nmap --traceroute -v www.sunbridgegroup.com  15. SCTP INIT Ping 扫描 nmap -PY -v 192.168.1.103
1. 全面扫描/综合扫描 nmap -A 192.168.1.103 2. Ping扫描 nmap -sP 192.168.1.1/24 3. 免Ping扫描,穿透防火墙,避免被防火墙发现 nmap -P0 192.168.1.103 4. TCP SYN Ping 扫描 nmap -PS -v 192.168.1.103 nmap -PS80,10-100 -v 192.168.1.103 (针对防火墙丢弃RST包) 5. TCP ACK Ping 扫描 nmap -PA -v 192.168.1.103 6. UDP Ping 扫描 nmap -PU -v 192.168.1.103 7. ICMP Ping Types 扫描 nmap -PU -v 192.168.1.103 (ICMP ECHO) nmap -PP -v 192.168.1.103 (ICMP 时间戳) nmap -PM -v 192.168.1.103 (ICMP 地址掩码) 8. ARP Ping 扫描 nmap -PR -v 192.168.1.103 9. 列表 扫描 nmap -sL -v 192.168.1.103 10. 禁止方向域名解析 nmap -n -sL -v 192.168.1.103 11. 方向域名解析 nmap -R -sL -v 192.168.1.103 12. 使用系统域名解析系统 nmap --system-dns 192.168.1.2 192.168.1.103 13. 扫描IPV6地址 nmap -6 IPv6 14. 路由跟踪 nmap --traceroute -v www.sunbridgegroup.com 15. SCTP INIT Ping 扫描 nmap -PY -v 192.168.1.103

二、端口扫描

1. 时序扫描 nmap -T(0-5) 192.168.1.103 2. 常用扫描方式 nmap -p 80 192.168.1.103 nmap -p 80-100 192.168.1.103 nmap -p T:80,U:445 192.168.1.103 nmap -F 192.168.1.1.103 (快速扫描) nmap --top-ports 100 192.168.1.103 (扫描最有用的前100个端口) 3. TCP SYN 扫描 (高效的扫描方式) nmap -sS -v 192.168.1.103 4. TCP 连接扫描 nmap -sT -v 192.168.1.103 5. UDP 连接扫描 nmap -sU -p 80-100 192.168.1.103 6. 隐蔽扫描 nmap -sN 61.241.194.153(NULL扫描) nmap -sF 61.241.194.153(FIN扫描) nmap -sX 61.241.194.153(Xmas扫描) 7. TCP ACK 扫描 nmap -sA 192.168.1.103 8. TCP 窗口扫描 nmap -sW -v -F 192.168.1.103 9. TCP Maimon 扫描 nmap -sM -T4 192.168.1.103 10. 自定义 扫描 nmap -sT --scanflags SYNURG 192.168.1.103 11. 空闲 扫描( 隐藏IP ) nmap -sI www.0day.co:80 192.168.1.103 12. IP协议 扫描 nmap -sO -T4 192.168.1.103 13. FTP Bounce 扫描 (已经不被支持)
 1. 时序扫描 nmap -T(0-5) 192.168.1.103  2. 常用扫描方式 nmap -p 80 192.168.1.103 nmap -p 80-100 192.168.1.103 nmap -p T:80,U:445 192.168.1.103 nmap -F 192.168.1.1.103    (快速扫描) nmap --top-ports 100 192.168.1.103    (扫描最有用的前100个端口)  3. TCP SYN 扫描 (高效的扫描方式) nmap -sS -v 192.168.1.103  4. TCP 连接扫描 nmap -sT -v 192.168.1.103  5. UDP 连接扫描 nmap -sU -p 80-100 192.168.1.103  6. 隐蔽扫描 nmap -sN 61.241.194.153(NULL扫描) nmap -sF 61.241.194.153(FIN扫描) nmap -sX 61.241.194.153(Xmas扫描)  7. TCP ACK 扫描 nmap -sA 192.168.1.103  8. TCP 窗口扫描 nmap -sW -v -F  192.168.1.103  9. TCP Maimon 扫描 nmap -sM -T4  192.168.1.103  10. 自定义 扫描 nmap -sT --scanflags SYNURG 192.168.1.103  11. 空闲 扫描( 隐藏IP ) nmap -sI www.0day.co:80 192.168.1.103  12. IP协议 扫描 nmap -sO -T4 192.168.1.103  13. FTP Bounce 扫描 (已经不被支持)
1. 时序扫描 nmap -T(0-5) 192.168.1.103 2. 常用扫描方式 nmap -p 80 192.168.1.103 nmap -p 80-100 192.168.1.103 nmap -p T:80,U:445 192.168.1.103 nmap -F 192.168.1.1.103 (快速扫描) nmap --top-ports 100 192.168.1.103 (扫描最有用的前100个端口) 3. TCP SYN 扫描 (高效的扫描方式) nmap -sS -v 192.168.1.103 4. TCP 连接扫描 nmap -sT -v 192.168.1.103 5. UDP 连接扫描 nmap -sU -p 80-100 192.168.1.103 6. 隐蔽扫描 nmap -sN 61.241.194.153(NULL扫描) nmap -sF 61.241.194.153(FIN扫描) nmap -sX 61.241.194.153(Xmas扫描) 7. TCP ACK 扫描 nmap -sA 192.168.1.103 8. TCP 窗口扫描 nmap -sW -v -F 192.168.1.103 9. TCP Maimon 扫描 nmap -sM -T4 192.168.1.103 10. 自定义 扫描 nmap -sT --scanflags SYNURG 192.168.1.103 11. 空闲 扫描( 隐藏IP ) nmap -sI www.0day.co:80 192.168.1.103 12. IP协议 扫描 nmap -sO -T4 192.168.1.103 13. FTP Bounce 扫描 (已经不被支持)

三、指纹识别与探测

1. 版本探测 nmap -sV 192.168.1.103 nmap -sV -A 192.168.1.103 2. 全端口版本探测 nmap -sV --allports 192.168.1.103 3. 设置扫描强度 nmap -sV --version-intensity (0-9) 192.168.1.103 4. 轻量级扫描 nmap -sV --version-light 2 192.168.1.103 5. 重量级扫描 nmap -sV --version-all 192.168.1.103 6. 获取详细版本信息 nmap -sV --version-trace 192.168.1.103 7. RPC扫描 nmap -sS -sR 192.168.1.103 8. 对指定的目标进行操作系统监测 nmap -O --osscan-limit 192.168.1.103 9. 推测系统并识别 nmap -O --osscan-guess 192.168.1.103
1. 版本探测 nmap -sV 192.168.1.103 nmap -sV -A 192.168.1.103  2. 全端口版本探测 nmap -sV --allports 192.168.1.103  3. 设置扫描强度 nmap -sV --version-intensity (0-9) 192.168.1.103  4. 轻量级扫描 nmap -sV --version-light 2 192.168.1.103  5. 重量级扫描 nmap -sV --version-all 192.168.1.103  6. 获取详细版本信息 nmap -sV --version-trace 192.168.1.103  7. RPC扫描 nmap -sS -sR 192.168.1.103  8. 对指定的目标进行操作系统监测 nmap -O --osscan-limit 192.168.1.103  9. 推测系统并识别 nmap -O --osscan-guess 192.168.1.103
1. 版本探测 nmap -sV 192.168.1.103 nmap -sV -A 192.168.1.103 2. 全端口版本探测 nmap -sV --allports 192.168.1.103 3. 设置扫描强度 nmap -sV --version-intensity (0-9) 192.168.1.103 4. 轻量级扫描 nmap -sV --version-light 2 192.168.1.103 5. 重量级扫描 nmap -sV --version-all 192.168.1.103 6. 获取详细版本信息 nmap -sV --version-trace 192.168.1.103 7. RPC扫描 nmap -sS -sR 192.168.1.103 8. 对指定的目标进行操作系统监测 nmap -O --osscan-limit 192.168.1.103 9. 推测系统并识别 nmap -O --osscan-guess 192.168.1.103

四、伺机而动

1. 调整并行扫描组的大小 nmap --min-hostgroup 30 192.168.1.110/24 nmap --max-hostgroup 30 902 192.168.1.104 2. 调整探测报文的并行度 nmap --min-parallelism 100 192.168.1.104 nmap --max-parallelism 100 192.168.1.104 3. 调整探测报文超时 nmap --initial-rtt-timeout 100ms 192.168.1.104 nmap --max-rtt-timeout 100ms 192.168.1.104 nmap --min-rtt-timeout 100ms 192.168.1.104 4. 放弃缓慢的目标主机 nmap --host-timeout 1800000ms 192.168.1.104 5. 调整报文适合时间间隔 nmap --scan-delay 1s 192.168.1.104 nmap --max-scan-delay 1s 192.168.1.104
1. 调整并行扫描组的大小 nmap --min-hostgroup 30 192.168.1.110/24 nmap --max-hostgroup 30 902 192.168.1.104  2. 调整探测报文的并行度 nmap --min-parallelism 100 192.168.1.104 nmap --max-parallelism 100 192.168.1.104  3. 调整探测报文超时 nmap --initial-rtt-timeout 100ms 192.168.1.104 nmap --max-rtt-timeout 100ms 192.168.1.104 nmap --min-rtt-timeout 100ms 192.168.1.104  4. 放弃缓慢的目标主机 nmap --host-timeout 1800000ms 192.168.1.104  5. 调整报文适合时间间隔 nmap --scan-delay 1s 192.168.1.104 nmap --max-scan-delay 1s 192.168.1.104
1. 调整并行扫描组的大小 nmap --min-hostgroup 30 192.168.1.110/24 nmap --max-hostgroup 30 902 192.168.1.104 2. 调整探测报文的并行度 nmap --min-parallelism 100 192.168.1.104 nmap --max-parallelism 100 192.168.1.104 3. 调整探测报文超时 nmap --initial-rtt-timeout 100ms 192.168.1.104 nmap --max-rtt-timeout 100ms 192.168.1.104 nmap --min-rtt-timeout 100ms 192.168.1.104 4. 放弃缓慢的目标主机 nmap --host-timeout 1800000ms 192.168.1.104 5. 调整报文适合时间间隔 nmap --scan-delay 1s 192.168.1.104 nmap --max-scan-delay 1s 192.168.1.104

五、防火墙/IDS逃逸

1. 报文分段 nmap -f -v 61.241.194.153 2. 指定偏移大小 nmap --mtu 16 192.168.1.104 3. IP欺骗 nmap -D RND:11 192.168.1.104 nmap -D 192.168.1.104,192.168.1.103,192.168.1.101 192.168.1.104 4. 源地址欺骗 nmap -sI www.0day.cn:80 192.168.1.104 5. 源端口欺骗 nmap --source-port 902 192.168.1.104 6. 指定发包长度 nmap --data-length 30 192.168.1.104 7. 目标主机随机排序 nmap --randomize-hosts 192.168.1.104 8. MAX地址欺骗 nmap -sT -Pn --spoof-mac 0 192.168.1.104
1. 报文分段 nmap -f -v 61.241.194.153  2. 指定偏移大小 nmap --mtu 16 192.168.1.104  3. IP欺骗 nmap -D RND:11 192.168.1.104 nmap -D 192.168.1.104,192.168.1.103,192.168.1.101 192.168.1.104  4. 源地址欺骗 nmap -sI www.0day.cn:80 192.168.1.104  5. 源端口欺骗 nmap --source-port 902 192.168.1.104  6. 指定发包长度 nmap --data-length 30 192.168.1.104  7. 目标主机随机排序 nmap --randomize-hosts 192.168.1.104  8. MAX地址欺骗 nmap -sT -Pn --spoof-mac 0 192.168.1.104
1. 报文分段 nmap -f -v 61.241.194.153 2. 指定偏移大小 nmap --mtu 16 192.168.1.104 3. IP欺骗 nmap -D RND:11 192.168.1.104 nmap -D 192.168.1.104,192.168.1.103,192.168.1.101 192.168.1.104 4. 源地址欺骗 nmap -sI www.0day.cn:80 192.168.1.104 5. 源端口欺骗 nmap --source-port 902 192.168.1.104 6. 指定发包长度 nmap --data-length 30 192.168.1.104 7. 目标主机随机排序 nmap --randomize-hosts 192.168.1.104 8. MAX地址欺骗 nmap -sT -Pn --spoof-mac 0 192.168.1.104

六、信息收集

1. IP信息收集 nmap --script ip-geolocation-* www.pcos.cn 2. WHOIS 查询 nmap --script whois-domain www.pcos.cn nmap --script whois-domain --script-args whois.whodb=nofollow www.ithome.com nmap -sn --script whois-domain -v -iL host.txt 3. 搜索邮件信息(新版可能没有这个模块) nmap --script http-email-harvest www.pcos.cn 4. IP反查 nmap -sn --script hostmap-ip2hosts www.pcos.cn 5. DNS信息收集 nmap --script dns-brute www.pcos.cn nmap --script dns-brute dns-brute.threads=10 www.pcos.cn nmap --script dns-brute dns-brute.threads=10,dns-brute.hostlis www.pcos.cn 6. 检索系统信息 nmap -p 445 445 192.168.1.104 --script membase-http-info 7. 后台打印机服务漏洞 nmap --script smb-security-mode.nse -p 445 119.29.155.45 8. 系统漏洞扫描 nmap --script smb-check-vulns.nse -p 445 119.29.155.45 9.扫描Web漏洞 nmap -p80 --script http-stored-xss.nse/http-sql-injection.nse 119.29.155.45 10. 通过 Snmp 列举 Windows 服务/账户 nmap -sU -p 161 --script=snmp-win32-services 192.168.1.104 nmap -sU -f -p 161 --script=snmp-win32-users 192.168.1.110 11. 枚举 DNS 服务器的主机名 nmap --script dns-brute --script-args dns-brute.domain=baidu.com 12. HTTP信息收集 nmap -sV -p 80 www.0day.com (HTTP版本探测) nmap -p 80 --script=http-headers www.pcos.cn (HTTP信息头探测) nmap -p 80 --script=http-sitemap-generator www.pcos.cn (爬行Web目录结构) 13. 枚举SSL密钥 nmap -p 443 --script=ssl-enum-ciphers www.baidu.com 14. SSH服务密钥信息探测 map -p 22 --script ssh-hostkey --script-args ssh_hostkey=full 127.0.0.1
 1. IP信息收集 nmap --script ip-geolocation-* www.pcos.cn  2. WHOIS 查询 nmap --script whois-domain www.pcos.cn nmap --script whois-domain --script-args whois.whodb=nofollow www.ithome.com nmap -sn --script whois-domain -v -iL host.txt  3. 搜索邮件信息(新版可能没有这个模块) nmap --script http-email-harvest www.pcos.cn  4. IP反查 nmap -sn --script hostmap-ip2hosts www.pcos.cn  5. DNS信息收集 nmap --script dns-brute www.pcos.cn nmap --script dns-brute dns-brute.threads=10 www.pcos.cn nmap --script dns-brute dns-brute.threads=10,dns-brute.hostlis www.pcos.cn  6. 检索系统信息 nmap -p 445 445 192.168.1.104 --script membase-http-info  7. 后台打印机服务漏洞 nmap --script smb-security-mode.nse -p 445 119.29.155.45  8. 系统漏洞扫描 nmap --script smb-check-vulns.nse -p 445 119.29.155.45  9.扫描Web漏洞 nmap -p80 --script http-stored-xss.nse/http-sql-injection.nse 119.29.155.45  10. 通过 Snmp 列举 Windows 服务/账户 nmap -sU -p 161 --script=snmp-win32-services 192.168.1.104 nmap -sU -f -p 161 --script=snmp-win32-users 192.168.1.110  11. 枚举 DNS 服务器的主机名 nmap --script dns-brute --script-args dns-brute.domain=baidu.com  12. HTTP信息收集 nmap -sV -p 80 www.0day.com (HTTP版本探测) nmap -p 80 --script=http-headers www.pcos.cn (HTTP信息头探测) nmap -p 80 --script=http-sitemap-generator www.pcos.cn (爬行Web目录结构)  13. 枚举SSL密钥 nmap -p 443 --script=ssl-enum-ciphers www.baidu.com  14. SSH服务密钥信息探测 map -p 22 --script ssh-hostkey --script-args ssh_hostkey=full 127.0.0.1
1. IP信息收集 nmap --script ip-geolocation-* www.pcos.cn 2. WHOIS 查询 nmap --script whois-domain www.pcos.cn nmap --script whois-domain --script-args whois.whodb=nofollow www.ithome.com nmap -sn --script whois-domain -v -iL host.txt 3. 搜索邮件信息(新版可能没有这个模块) nmap --script http-email-harvest www.pcos.cn 4. IP反查 nmap -sn --script hostmap-ip2hosts www.pcos.cn 5. DNS信息收集 nmap --script dns-brute www.pcos.cn nmap --script dns-brute dns-brute.threads=10 www.pcos.cn nmap --script dns-brute dns-brute.threads=10,dns-brute.hostlis www.pcos.cn 6. 检索系统信息 nmap -p 445 445 192.168.1.104 --script membase-http-info 7. 后台打印机服务漏洞 nmap --script smb-security-mode.nse -p 445 119.29.155.45 8. 系统漏洞扫描 nmap --script smb-check-vulns.nse -p 445 119.29.155.45 9.扫描Web漏洞 nmap -p80 --script http-stored-xss.nse/http-sql-injection.nse 119.29.155.45 10. 通过 Snmp 列举 Windows 服务/账户 nmap -sU -p 161 --script=snmp-win32-services 192.168.1.104 nmap -sU -f -p 161 --script=snmp-win32-users 192.168.1.110 11. 枚举 DNS 服务器的主机名 nmap --script dns-brute --script-args dns-brute.domain=baidu.com 12. HTTP信息收集 nmap -sV -p 80 www.0day.com (HTTP版本探测) nmap -p 80 --script=http-headers www.pcos.cn (HTTP信息头探测) nmap -p 80 --script=http-sitemap-generator www.pcos.cn (爬行Web目录结构) 13. 枚举SSL密钥 nmap -p 443 --script=ssl-enum-ciphers www.baidu.com 14. SSH服务密钥信息探测 map -p 22 --script ssh-hostkey --script-args ssh_hostkey=full 127.0.0.1

七、数据库渗透测试

1. Mysql列举数据库 nmap -p3306 --script=mysql-databases --script-args mysqluser=root,mysqlpass 192.168.1.101 2. 列举 MySQL 变量 nmap -p3306 --script=mysql-variables 192.168.1.3 nmap -sV --script=mysql-variables 192.168.1.3 (无法确定端口的情况下) 3. 检查 MySQL 密码 nmap -p3306 --script=mysql-empty-password 192.168.1.3 nmap -sV -F -T4 --script=mysql-empty-password 192.168.1.3 4. 审计 MySQL 密码 nmap --script=mysql-brute 192.168.1.101 nmap -p3306 --script=mysql-brute userdb=/root/passdb.txt passdb=/root/pass.txt 192.168.1.101 (指定字典) 5. 审计 MySQL 安全配置 nmap -p3306 --script mysql-audit --script-args "mysql-audit.username='root',mysql-audit.password='123',mysql-audit.filename='nselib/data/mysql-cis.audit'" 192.168.1.104 6. 审计 Oracle 密码 nmap --script=oracle-brute -p 1521 --script-args oracle-brute.sid=test 192.168.1.121 nmap --script=oracle-brute -p 1521 --script-args oracle-brute.sid=test --script-args userdb=/tmp/usernames.txt,passdb=/tmp/password.txt 192.168.1.105 7. 审计 msSQL密码 nmap -p 1433 --script ms-sql-brute --script-args userdb=name.txt,passdb=pass.txt 192.168.1.104 8. 检查 msSQL空密码 nmap -p 1433 --script ms-sql-empty-password 192.168.1.104 9. 读取 msSQL 数据 nmap -p 1433 --script ms-sql-tables --script-args mssql.username=sa,mssql.Password=sa 192.168.1.101 10. 读取 msSQL 执行系统命令 nmap -p 1433 --script ms-sql-xp-cmdshell --script-args mssql.username=sa,mssql.password=sa,ms-sql-xp-cmdshell.cmd="ipconfig" 192.168.1.101 11. 审计 PgSQL 密码 nmap -p 5432 --script pgsql-brute 192.168.1.101
1. Mysql列举数据库 nmap -p3306 --script=mysql-databases --script-args mysqluser=root,mysqlpass 192.168.1.101  2. 列举 MySQL 变量 nmap -p3306 --script=mysql-variables 192.168.1.3 nmap -sV --script=mysql-variables 192.168.1.3 (无法确定端口的情况下)  3. 检查 MySQL 密码 nmap -p3306 --script=mysql-empty-password 192.168.1.3 nmap -sV -F -T4 --script=mysql-empty-password 192.168.1.3  4. 审计 MySQL 密码 nmap --script=mysql-brute 192.168.1.101 nmap -p3306 --script=mysql-brute userdb=/root/passdb.txt passdb=/root/pass.txt 192.168.1.101 (指定字典)  5. 审计 MySQL 安全配置 nmap -p3306 --script mysql-audit --script-args "mysql-audit.username='root',mysql-audit.password='123',mysql-audit.filename='nselib/data/mysql-cis.audit'" 192.168.1.104  6. 审计 Oracle 密码 nmap --script=oracle-brute -p 1521 --script-args oracle-brute.sid=test 192.168.1.121 nmap --script=oracle-brute -p 1521 --script-args oracle-brute.sid=test --script-args userdb=/tmp/usernames.txt,passdb=/tmp/password.txt 192.168.1.105  7. 审计 msSQL密码 nmap -p 1433 --script ms-sql-brute --script-args userdb=name.txt,passdb=pass.txt 192.168.1.104  8. 检查 msSQL空密码 nmap -p 1433 --script ms-sql-empty-password 192.168.1.104  9. 读取 msSQL 数据 nmap -p 1433 --script ms-sql-tables --script-args mssql.username=sa,mssql.Password=sa 192.168.1.101  10. 读取 msSQL 执行系统命令 nmap -p 1433 --script ms-sql-xp-cmdshell --script-args mssql.username=sa,mssql.password=sa,ms-sql-xp-cmdshell.cmd="ipconfig" 192.168.1.101  11. 审计 PgSQL 密码 nmap -p 5432 --script pgsql-brute 192.168.1.101
1. Mysql列举数据库 nmap -p3306 --script=mysql-databases --script-args mysqluser=root,mysqlpass 192.168.1.101 2. 列举 MySQL 变量 nmap -p3306 --script=mysql-variables 192.168.1.3 nmap -sV --script=mysql-variables 192.168.1.3 (无法确定端口的情况下) 3. 检查 MySQL 密码 nmap -p3306 --script=mysql-empty-password 192.168.1.3 nmap -sV -F -T4 --script=mysql-empty-password 192.168.1.3 4. 审计 MySQL 密码 nmap --script=mysql-brute 192.168.1.101 nmap -p3306 --script=mysql-brute userdb=/root/passdb.txt passdb=/root/pass.txt 192.168.1.101 (指定字典) 5. 审计 MySQL 安全配置 nmap -p3306 --script mysql-audit --script-args "mysql-audit.username='root',mysql-audit.password='123',mysql-audit.filename='nselib/data/mysql-cis.audit'" 192.168.1.104 6. 审计 Oracle 密码 nmap --script=oracle-brute -p 1521 --script-args oracle-brute.sid=test 192.168.1.121 nmap --script=oracle-brute -p 1521 --script-args oracle-brute.sid=test --script-args userdb=/tmp/usernames.txt,passdb=/tmp/password.txt 192.168.1.105 7. 审计 msSQL密码 nmap -p 1433 --script ms-sql-brute --script-args userdb=name.txt,passdb=pass.txt 192.168.1.104 8. 检查 msSQL空密码 nmap -p 1433 --script ms-sql-empty-password 192.168.1.104 9. 读取 msSQL 数据 nmap -p 1433 --script ms-sql-tables --script-args mssql.username=sa,mssql.Password=sa 192.168.1.101 10. 读取 msSQL 执行系统命令 nmap -p 1433 --script ms-sql-xp-cmdshell --script-args mssql.username=sa,mssql.password=sa,ms-sql-xp-cmdshell.cmd="ipconfig" 192.168.1.101 11. 审计 PgSQL 密码 nmap -p 5432 --script pgsql-brute 192.168.1.101

八、渗透测试

1. 审计 HTTP 身份验证 nmap --script=http-brute -p 80 www.pcos.cn 2. 审计 FTP 服务器 nmap --script ftp-brute -p 21 192.168.1.101 nmap --script ftp-brute --script-args userdb=user.txt,passdb=pass.txt -p 21 192.168.1.101 nmap --script=ftp-anon 192.168.1.101 3. 审计 WordPress 程序 nmap -p80 --script http-wordpress-brute 192.168.1.110 nmap -p80 --script http-wordpress-brute --script-args userdb=user.txt,passdb=passwd.txt 192.168.1.110 nmap -p80 --script http-wordpress-brute --script-args http-wordpress-brute.threads=10 192.168.1.110 4. 审计 Joomla 程序 nmap -p80 --script http-joomla-brute 192.168.1.110 nmap -p80 --script http-joomla-brute --script-args uesrdb=user.txt,passdb=passwd.txt 192.168.1.110 nmap -p80 --script http-joomla-brute --script-args uesrdb=user.txt,passdb=passwd.txt,http-joomla-brute.threads=5 192.168.1.110 5. 审计 邮件服务器 nmap -p110 --script=pop3-brute 192.168.1.110 6. 审计 SMB 口令 nmap --script smb-brute.nse -p 445 192.168.1.110 nmap --script smb-brute.nse --script-args passdb=pass.txt -p 445 192.168.1.110 7. 审计 VNC 服务 nmap --script vnc-brute -p 5900 192.168.1.110 8. 审计 SMTP 服务器 nmap -p 25 --script smtp-brute 192.168.1.110 nmap -p 25 --script=smtp-enum-users.nse smith.jack.com (枚举远程系统所有用户) 9. 检测 Stuxnet 蠕虫 nmap --script stuxnet-detect -p 445 192.168.1.110 10. SNMP 服务安全审计 nmap -sU -p 161 --script=snmp-netstat 192.168.1.101 (获取目标主机网络连接状态) nmap -sU -p 161 --script=snmp-processes 192.168.1.110 (枚举目标主机的系统进程) nmap -sU -p 161 --script=snmp-win32-services 192.168.1.110 (获得windows服务器的服务) nmap -sU -p 161 --script snmp-brute 192.168.1.110
 1. 审计 HTTP 身份验证 nmap --script=http-brute -p 80 www.pcos.cn  2. 审计 FTP 服务器 nmap --script ftp-brute -p 21 192.168.1.101 nmap --script ftp-brute --script-args userdb=user.txt,passdb=pass.txt -p 21 192.168.1.101 nmap --script=ftp-anon 192.168.1.101  3. 审计 WordPress 程序 nmap -p80 --script http-wordpress-brute 192.168.1.110 nmap -p80 --script http-wordpress-brute --script-args userdb=user.txt,passdb=passwd.txt 192.168.1.110 nmap -p80 --script http-wordpress-brute --script-args http-wordpress-brute.threads=10 192.168.1.110  4. 审计 Joomla 程序 nmap -p80 --script http-joomla-brute 192.168.1.110 nmap -p80 --script http-joomla-brute --script-args uesrdb=user.txt,passdb=passwd.txt 192.168.1.110 nmap -p80 --script http-joomla-brute --script-args uesrdb=user.txt,passdb=passwd.txt,http-joomla-brute.threads=5 192.168.1.110  5. 审计 邮件服务器  nmap -p110 --script=pop3-brute 192.168.1.110  6. 审计 SMB 口令 nmap --script smb-brute.nse -p 445 192.168.1.110 nmap --script smb-brute.nse --script-args passdb=pass.txt -p 445 192.168.1.110  7. 审计 VNC 服务 nmap --script vnc-brute -p 5900 192.168.1.110  8. 审计 SMTP 服务器 nmap -p 25 --script smtp-brute 192.168.1.110 nmap -p 25 --script=smtp-enum-users.nse smith.jack.com (枚举远程系统所有用户)  9. 检测 Stuxnet 蠕虫 nmap --script stuxnet-detect -p 445 192.168.1.110  10. SNMP 服务安全审计 nmap -sU -p 161 --script=snmp-netstat 192.168.1.101 (获取目标主机网络连接状态) nmap -sU -p 161 --script=snmp-processes 192.168.1.110 (枚举目标主机的系统进程) nmap -sU -p 161 --script=snmp-win32-services 192.168.1.110 (获得windows服务器的服务) nmap -sU -p 161 --script snmp-brute 192.168.1.110
1. 审计 HTTP 身份验证 nmap --script=http-brute -p 80 www.pcos.cn 2. 审计 FTP 服务器 nmap --script ftp-brute -p 21 192.168.1.101 nmap --script ftp-brute --script-args userdb=user.txt,passdb=pass.txt -p 21 192.168.1.101 nmap --script=ftp-anon 192.168.1.101 3. 审计 WordPress 程序 nmap -p80 --script http-wordpress-brute 192.168.1.110 nmap -p80 --script http-wordpress-brute --script-args userdb=user.txt,passdb=passwd.txt 192.168.1.110 nmap -p80 --script http-wordpress-brute --script-args http-wordpress-brute.threads=10 192.168.1.110 4. 审计 Joomla 程序 nmap -p80 --script http-joomla-brute 192.168.1.110 nmap -p80 --script http-joomla-brute --script-args uesrdb=user.txt,passdb=passwd.txt 192.168.1.110 nmap -p80 --script http-joomla-brute --script-args uesrdb=user.txt,passdb=passwd.txt,http-joomla-brute.threads=5 192.168.1.110 5. 审计 邮件服务器 nmap -p110 --script=pop3-brute 192.168.1.110 6. 审计 SMB 口令 nmap --script smb-brute.nse -p 445 192.168.1.110 nmap --script smb-brute.nse --script-args passdb=pass.txt -p 445 192.168.1.110 7. 审计 VNC 服务 nmap --script vnc-brute -p 5900 192.168.1.110 8. 审计 SMTP 服务器 nmap -p 25 --script smtp-brute 192.168.1.110 nmap -p 25 --script=smtp-enum-users.nse smith.jack.com (枚举远程系统所有用户) 9. 检测 Stuxnet 蠕虫 nmap --script stuxnet-detect -p 445 192.168.1.110 10. SNMP 服务安全审计 nmap -sU -p 161 --script=snmp-netstat 192.168.1.101 (获取目标主机网络连接状态) nmap -sU -p 161 --script=snmp-processes 192.168.1.110 (枚举目标主机的系统进程) nmap -sU -p 161 --script=snmp-win32-services 192.168.1.110 (获得windows服务器的服务) nmap -sU -p 161 --script snmp-brute 192.168.1.110

九、Zenmap

1. Intense scan (详细扫描) nmap -T4 -A -v 192.168.1.101 2. Intense scan plus UDP (UDP扫描经典使用) nmap -sS -sU -T4 -A -v 192.168.1.101 3. Intense scan, all TCP ports (TCP扫描) nmap -p 1-65535 -T4 -A -v 192.168.1.101 4. Intense scan, no ping (无Ping扫描) nmap -T4 -A -v -Pn 192.168.1.101 5. Ping scan (Ping扫描) nmap -sn 192.168.1.101/24 6. Quick scan nmap -T4 -F 192.168.1.101/24 7. Quick scan plus nmap -sV -T4 -O -F --version-light 192.168.1.101/24 8. Quick traceroute nmap -sn --traceroute 192.168.1.101 9. Regular scan nmap 192.168.1.101 10. Slow comprehensive scan nmap -sS -sU -T4 -A -v -PE -PP -PS80,443 -PA3389 -PU40125 -PY -g 53 --script "default or (discovery and safe)" 192.168.1.101
 1. Intense scan (详细扫描) nmap -T4 -A -v 192.168.1.101  2. Intense scan plus UDP (UDP扫描经典使用) nmap -sS -sU -T4 -A -v 192.168.1.101  3. Intense scan, all TCP ports (TCP扫描) nmap -p 1-65535 -T4 -A -v 192.168.1.101  4. Intense scan, no ping (无Ping扫描) nmap -T4 -A -v -Pn 192.168.1.101  5. Ping scan (Ping扫描) nmap -sn 192.168.1.101/24  6. Quick scan nmap -T4 -F 192.168.1.101/24  7. Quick scan plus nmap -sV -T4 -O -F --version-light 192.168.1.101/24  8. Quick traceroute nmap -sn --traceroute 192.168.1.101  9. Regular scan  nmap 192.168.1.101  10. Slow comprehensive scan nmap -sS -sU -T4 -A -v -PE -PP -PS80,443 -PA3389 -PU40125 -PY -g 53 --script "default or (discovery and safe)" 192.168.1.101
1. Intense scan (详细扫描) nmap -T4 -A -v 192.168.1.101 2. Intense scan plus UDP (UDP扫描经典使用) nmap -sS -sU -T4 -A -v 192.168.1.101 3. Intense scan, all TCP ports (TCP扫描) nmap -p 1-65535 -T4 -A -v 192.168.1.101 4. Intense scan, no ping (无Ping扫描) nmap -T4 -A -v -Pn 192.168.1.101 5. Ping scan (Ping扫描) nmap -sn 192.168.1.101/24 6. Quick scan nmap -T4 -F 192.168.1.101/24 7. Quick scan plus nmap -sV -T4 -O -F --version-light 192.168.1.101/24 8. Quick traceroute nmap -sn --traceroute 192.168.1.101 9. Regular scan nmap 192.168.1.101 10. Slow comprehensive scan nmap -sS -sU -T4 -A -v -PE -PP -PS80,443 -PA3389 -PU40125 -PY -g 53 --script "default or (discovery and safe)" 192.168.1.101

十. Nmap 技巧

1. 发送以太网数据包 nmap --send-eth 192.168.1.111 2. 网络层发送 nmap --send-ip 192.168.1.111 3. 假定拥有所有权 nmap --privileged 192.168.1.111 4. 在交互模式中启动 nmap --interactive 5. 查看 Nmap 版本号 nmap -V 6. 设置调试级别 nmap -d (1-9) 192.168.1.111 7. 跟踪发送接收的报文 nmap --packet-trace -p 20-30 192.168.1.111 8. 列举接口和路由 nmap --iflist www.iteye.com 9. 指定网络接口 nmap -e eth0 192.168.1.111 10. 继续中断扫描 nmap -oG 1.txt -v 192.168.126.1/24 nmap --resume 1.txt (继续扫描) 11. Dnmap dnmap_server -f test (指定命令脚本) dnmap_client -s 192.168.1.107 -a test 12. 编写 Nse 脚本 (1) -- The scanning module -- author = "Wing" categories = {"version"} portrule = function(host,port) return port.protocol == "tcp" and port.number == 80 and port.state == "open" end action = function(host,port) return "Found!!!" end (2) -- The scanning module -- author = "Wing" categories = {"version"} local comm=require "comm" require "shortport" local http=require "http" portrule = function(host,port) return (port.number == 80) and (port.start=="open") end action = function(host,port) local uri = "/admin.php" local response = http.get(host,port,uri) return "Found!!!" end 13. 探测防火墙 nmap --script=firewalk --traceroute 192.168.1.111 14. VMware认证破解 nmap -p 902 --script vmauthd-brute 192.168.1.107
1. 发送以太网数据包 nmap --send-eth 192.168.1.111  2. 网络层发送 nmap --send-ip 192.168.1.111  3. 假定拥有所有权 nmap --privileged 192.168.1.111  4. 在交互模式中启动 nmap --interactive  5. 查看 Nmap 版本号 nmap -V  6. 设置调试级别 nmap -d (1-9) 192.168.1.111  7. 跟踪发送接收的报文 nmap --packet-trace -p 20-30 192.168.1.111  8. 列举接口和路由 nmap --iflist www.iteye.com  9. 指定网络接口 nmap -e eth0 192.168.1.111  10. 继续中断扫描 nmap -oG 1.txt -v 192.168.126.1/24 nmap --resume 1.txt (继续扫描)  11. Dnmap dnmap_server -f test (指定命令脚本) dnmap_client -s 192.168.1.107 -a test  12. 编写 Nse 脚本      (1)    -- The scanning module --         author = "Wing"         categories = {"version"}                  portrule = function(host,port)             return port.protocol == "tcp" and port.number == 80 and port.state == "open"         end                  action = function(host,port)             return "Found!!!"         end              (2) -- The scanning module --         author = "Wing"         categories = {"version"}                  local comm=require "comm"         require "shortport"         local http=require "http"                  portrule = function(host,port)             return (port.number == 80) and (port.start=="open")         end                  action = function(host,port)             local uri = "/admin.php"             local response = http.get(host,port,uri)             return "Found!!!"         end  13. 探测防火墙 nmap --script=firewalk --traceroute 192.168.1.111  14. VMware认证破解 nmap -p 902 --script vmauthd-brute 192.168.1.107
1. 发送以太网数据包 nmap --send-eth 192.168.1.111 2. 网络层发送 nmap --send-ip 192.168.1.111 3. 假定拥有所有权 nmap --privileged 192.168.1.111 4. 在交互模式中启动 nmap --interactive 5. 查看 Nmap 版本号 nmap -V 6. 设置调试级别 nmap -d (1-9) 192.168.1.111 7. 跟踪发送接收的报文 nmap --packet-trace -p 20-30 192.168.1.111 8. 列举接口和路由 nmap --iflist www.iteye.com 9. 指定网络接口 nmap -e eth0 192.168.1.111 10. 继续中断扫描 nmap -oG 1.txt -v 192.168.126.1/24 nmap --resume 1.txt (继续扫描) 11. Dnmap dnmap_server -f test (指定命令脚本) dnmap_client -s 192.168.1.107 -a test 12. 编写 Nse 脚本 (1) -- The scanning module -- author = "Wing" categories = {"version"} portrule = function(host,port) return port.protocol == "tcp" and port.number == 80 and port.state == "open" end action = function(host,port) return "Found!!!" end (2) -- The scanning module -- author = "Wing" categories = {"version"} local comm=require "comm" require "shortport" local http=require "http" portrule = function(host,port) return (port.number == 80) and (port.start=="open") end action = function(host,port) local uri = "/admin.php" local response = http.get(host,port,uri) return "Found!!!" end 13. 探测防火墙 nmap --script=firewalk --traceroute 192.168.1.111 14. VMware认证破解 nmap -p 902 --script vmauthd-brute 192.168.1.107

十一. Nmap的保存和输出

1. 标准保存 nmap -F -oN d:/test1.txt 192.168.1.111 2. XML保存 nmap -F -oX d:/test1.xml 192.168.1.111 3. 133t 保存 nmap -F -oS d:/test2.txt 192.168.1.111 4. Grep 保存 nmap -F -oG d:/test2.txt 192.168.1.111 5. 保存到所有格式 nmap -F -oA d:/test2 192.168.1.111 6. 补充保存文件 nmap -F -append-output -oN d:/test2.txt 192.168.1.111 7. 转换 XML 保存 nmap -F -oX testB.xml --stylesheet http://www.insecure.org/nmap/data/nmap.xsl 192.168.1.111 8. 忽略 XML 声明的 XSL 样式表 nmap -oX d:/testC.xml --no-stylesheet 192.168.1.111
 1. 标准保存 nmap -F -oN d:/test1.txt 192.168.1.111  2. XML保存 nmap -F -oX d:/test1.xml 192.168.1.111  3. 133t 保存 nmap -F -oS d:/test2.txt 192.168.1.111  4. Grep 保存 nmap -F -oG d:/test2.txt 192.168.1.111  5. 保存到所有格式 nmap -F -oA d:/test2 192.168.1.111  6. 补充保存文件 nmap -F -append-output -oN d:/test2.txt 192.168.1.111  7. 转换 XML 保存 nmap -F -oX testB.xml --stylesheet http://www.insecure.org/nmap/data/nmap.xsl 192.168.1.111  8. 忽略 XML 声明的 XSL 样式表 nmap -oX d:/testC.xml --no-stylesheet 192.168.1.111
1. 标准保存 nmap -F -oN d:/test1.txt 192.168.1.111 2. XML保存 nmap -F -oX d:/test1.xml 192.168.1.111 3. 133t 保存 nmap -F -oS d:/test2.txt 192.168.1.111 4. Grep 保存 nmap -F -oG d:/test2.txt 192.168.1.111 5. 保存到所有格式 nmap -F -oA d:/test2 192.168.1.111 6. 补充保存文件 nmap -F -append-output -oN d:/test2.txt 192.168.1.111 7. 转换 XML 保存 nmap -F -oX testB.xml --stylesheet http://www.insecure.org/nmap/data/nmap.xsl 192.168.1.111 8. 忽略 XML 声明的 XSL 样式表 nmap -oX d:/testC.xml --no-stylesheet 192.168.1.111

Nmap报告结果美化

1、使用nmap 扫描主机并导出结果

nmap -sC -A -T4 -p1-65535 192.168.0.114 -oA attack-ports
nmap -sC -A -T4 -p1-65535 192.168.0.114 -oA attack-ports
nmap -sC -A -T4 -p1-65535 192.168.0.114 -oA attack-ports

2、使用  xsltproc  美化 nmap 报告结果,(xsltproc工具kali自带)  命令如下:

xsltproc -o attack.html mode.xsl attack-ports.xml mode.xsl 是报告的模板 attack.html 是美化后的报告结果 attack-ports.xml 这是 nmap 保存的结果
xsltproc -o attack.html mode.xsl attack-ports.xml mode.xsl 是报告的模板 attack.html 是美化后的报告结果 attack-ports.xml 这是 nmap 保存的结果
xsltproc -o attack.html mode.xsl attack-ports.xml mode.xsl 是报告的模板 attack.html 是美化后的报告结果 attack-ports.xml 这是 nmap 保存的结果

3、使用 xsltproc 工具进行美化

图片[1]-Nmap使用手册-Mx's Blog

图片[2]-Nmap使用手册-Mx's Blog

------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

------关注微信公众号:胖大海TuT------
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
Many people will walk in and out of your life, but only true friends will leave footprints in your heart.
无数人走进和走出你的生活,但只有真正的朋友会在你的心里留下足迹。
评论 抢沙发

请登录后发表评论

    暂无评论内容