扫描软件nmap笔记

1.主机发现的用法
通常主机发现并不单独使用,而只是作为端口扫描、版本侦测、OS 侦测先行步骤。而
在某些特殊应用(例如确定大型局域网内活动主机的数量)
,可能会单独专门适用主机发现
功能来完成。
不管是作为辅助用法还是专门用途,用户都可以使用 Nmap 提供的丰富的选项来定制
主机发现的探测方式。
-sL: List Scan 列表扫描,仅将指定的目标的 IP 列举出来,不进行主机发现。
-sn: Ping Scan 只进行主机发现,不进行端口扫描。
-Pn: 将所有指定的主机视作开启的,跳过主机发现的过程。
-PS/PA/PU/PY[portlist]: 使用 TCP SYN/ACK 或 SCTP INIT/ECHO 方式进行发现。
-PE/PP/PM: 使 用 ICMP echo, timestamp, and netmask 请 求 包 发 现 主 机 。
-PO[protocol list]: 使用 IP 协议包探测对方主机是否开启。
-n/-R: -n 表示不进行 DNS 解析;-R 表示总是进行 DNS 解析。
--dns-servers <serv1[,serv2],...>: 指定 DNS 服务器。
--system-dns: 指定使用系统的 DNS 服务器
--traceroute: 追踪每个路由节点
其中,比较常用的使用的是-sn,表示只单独进行主机发现过程;-Pn 表示直接跳过主
机发现而进行端口扫描等高级操作(如果已经确知目标主机已经开启,可用该选项)
;-n,
如果不想使用 DNS 或 reverse DNS 解析,那么可以使用该选项。

2.端口扫描用法
端口扫描用法比较简单,Nmap 提供丰富的命令行参数来指定扫描方式和扫描端口。
具体可以参见如下描述。
2.1 扫描方式
扫描方式选项
方式选项
-sS/sT/sA/sW/sM:指定使用 TCP SYN/Connect()/ACK/Window/Maimon scans 的方
式来对目标主机进行扫描。
-sU: 指定使用 UDP 扫描方式确定目标主机的 UDP 端口状况。
-sN/sF/sX: 指定使用 TCP Null, FIN, and Xmas scans 秘密扫描方式来协助探测对方
的 TCP 端口状态。
--scanflags <flags>: 定制 TCP 包的 flags。
-sI <zombie host[:probeport]>: 指定使用 idle scan 方式来扫描目标主机(前提需要
找到合适的 zombie host)
-sY/sZ: 使用 SCTP INIT/COOKIE-ECHO 来扫描 SCTP 协议端口的开放的情况。
-sO: 使用 IP protocol 扫描确定目标机支持的协议类型。
-b <FTP relay host>: 使用 FTP bounce scan 扫描方式
2.2 端口参数与扫描顺序
-p <port ranges>: 扫描指定的端口
实例: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9(其中 T 代表 TCP
协议、U 代表 UDP 协议、S 代表 SCTP 协议)
-F: Fast mode – 快速模式,仅扫描 TOP 100 的端口
-r: 不进行端口随机打乱的操作(如无该参数,nmap 会将要扫描的端口以随机顺序方
式扫描,以让 nmap 的扫描不易被对方防火墙检测到)

--top-ports <number>:扫描开放概率最高的 number 个端口(nmap 的作者曾经做过大
规模地互联网扫描,
以此统计出网络上各种端口可能开放的概率。
以此排列出最有可能开放
端口的列表,具体可以参见文件:nmap-services。默认情况下,nmap 会扫描最有可能的
1000 个 TCP 端口)
--port-ratio <ratio>: 扫描指定频率以上的端口。与上述--top-ports 类似,这里以概率作
12 / 23为参数,让概率大于--port-ratio 的端口才被扫描。显然参数必须在在 0 到 1 之间,具体范围
概率情况可以查看 nmap-services 文件。