1. 1.主机发现

  2. -sn:仅进行主机发现,不进行端口扫描。

  3. -Pn:将所有指定的主机视为已开启状态,跳过主机发现过程。

  4. -PS/PA/PU/PY[protocollist]:使用TCP SYN/ACK或SCTP INIT/ECHO方式来发现主机。

  5. -PE/PP/PM:使用ICMP echo、timestamp、netmask请求发现主机。

  6. -PO[protocollist]:使用IP协议包探测对方主机是否开启。

  7. 2.端口扫描

  8. -sS/sT/sA/sW/sM:指定使用TCP SYN/Connect()/ACK/Window/Maimon scans的方式对目标进行扫描。

  9. -sU:指定使用UDP扫描的方式确定目标主机的UDP端口情况。

  10. -p<port ranges>:扫描指定的端口或端口范围。

  11. -F:快速模式,仅扫描最常用的100个端口。

  12. 3.服务和版本探测

  13. -sV:进行服务版本探测,尝试确定开放端口上运行的应用程序及版本信息。

  14. 4.操作系统探测

  15. -O:启用操作系统探测,尝试确定目标主机的操作系统类型和版本。

  16. 5.脚本扫描

  17. -sC:使用默认类别的脚本进行扫描,这些脚本通常用于安全审计和发现。

  18. --script=<Lua scripts>:使用某个或某类脚本进行扫描,支持统配符描述。

  19. 6.性能和时间控制

  20. -T<0-5>:设置扫描过程的时序模板,影响扫描速度和隐蔽性。

  21. --host-timeout<time>:放弃低速目标主机,单位为毫秒。

  22. 7.其他高级用法

  23. -sI<zombie host[:probeport]>:使用Idle scan的方式扫描主机,需要找到合适的zombie host。

  24. -e<interface>:指定使用的网络接口。

  25. -n/-R:-n表示不进行DNS解析;-R表示总是进行DNS解析。

  26. --traceroute:追踪每个路由节点。

  27. 8.输出选项

  28. -oX <file>:将扫描结果输出为XML格式的文件。

  29. -oG <file>:将扫描结果输出为grepable格式的文件。

  30. -oA <basename>:将扫描结果输出为三种格式:XML、grepable和正常格式。

主机发现

扫描一个网段:nmap -sn 192.168.1.0/24 ,-sn 在 Nmap 中是一个缩写选项。它代表了“Ping Scan”,也就是只进行主机发现,而不进行端口扫描。

  1. 1.-sT:TCP connect()扫描,这种方式会在目标主机的日志中记录大批连接请求和错误信息。

  2. 2.-sS:半开扫描,很少有系统能把它记入系统日志。不过,需要Root权限。

  3. 3.-sF:秘密FIN数据包扫描。

  4. 4.-sN:Xmas Tree扫描模式。

  5. 5.-sP:Ping扫描,Nmap在扫描端口时,默认都会使用ping扫描,只有主机存活,Nmap才会继续扫描。

  6. 6.-sU:UDP扫描,但UDP扫描是不可靠的。

  7. 7.-sA:这项高级的扫描方法通常用来穿过防火墙的规则集。

  8. 8.-sV:探测端口服务版本。

  9. 9.-Pn:扫描之前不需要用ping命令,有些防火墙禁止ping命令。可以使用此选项进行扫描。

  10. 10.-v:显示扫描过程,推荐使用。

  11. 11.-h:帮助选项,是最清楚的帮助文档。

  12. 12.-p:指定端口,如“1-65535、1433、135、22、80”等。

  13. 13.-O:启用远程操作系统检测,存在误报。

  14. 14.-A:全面系统检测、启用脚本检测、扫描等。

  15. 15.-oN/-oX/-oG:将报告写入文件,分别是正常、XML、grepable三种格式。

  16. 16.-T4:针对TCP端口禁止动态扫描延迟超过10ms。

  17. 17.-iL:读取主机列表,例如,“-iL C:\ip.txt”。