一、设备发现
1、使用 ARP 进行设备发现
-sn 加入该参数后可以跳过端口扫描,只是查看主机是否在线,-sP 也是相同作用
nmap -sn 192.168.1.4
nmap -sP 192.168.1.4
2、使用 ICMP 进行设备发现
(1)-PE 回显请求设备发现,发送一个 ICMP echo request 请求数据包,包中 TYPE 字段值为8
nmap -PE 192.168.1.4 相当于 ping 192.168.1.4
(2)-PP 时间戳设备发现,发送一个 ICMP timestamp request 请求数据包,包中 TYPE 字段值为13
nmap -PP 192.168.1.4
(3)-PM 子网掩码设备发现,发送一个 ICMP address mask request 请求数据包,包中 TYPE 字段值为17
nmap -PM 192.168.1.4
3、使用 TCP 进行设备发现(重要)
常用端口及服务
端口号 提供的服务
21 FTP
22 SSH
23 Telnet
25 SMTP
53 Domain
80 HTTP
113 Auth
443 HTTPS
(1)TCP SYN 扫描
发送一个 SYN 包,无论对方回复的是 SYN + ACK(确认连接) 还是 RST + ACK(拒绝连接),都意味着目标设备是活跃设备,如果没有收到任何数据包,则说明目标设备不在线
-PS+端口号
nmap -sn -PS 22,80 192.168.1.4
(2)TCP ACK 扫描(基本没用)
发送一个 ACK 包,对方不知道怎么回事,要么回复 RST 数据包(拒绝连接),要么就是目标设备的安全机制过滤了这个 ACK 包,会容易得到错误的结论:目标设备不活跃
-PA+端口号
nmap -sn -PA 22,80 192.168.1.4
4、使用 UDP 进行设备发现(很少用)
当一个端口接收到一个 UDP 数据时,如果它是关闭的,就会给源口端返回一个 ICMP端口不可达数据包,如果它是开放的,就不会返回任何信息
-PU+设备IP地址
nmap -sn -PU 192.168.1.4
二、端口扫描
1、SYN 扫描(半连接扫描)
不会在对方电脑上留下日志,但是需要 root 权限
发送一个 ACK 包,请求建立连接,目标再回复 SYN + ACK 包之后,主机不再回复 ACK 包以来建立连接,因此,三次握手未完成,无法建立 TCP 连接,不会记录到目标日志中。
-sS 其实如果以 root 用户的权限进行扫描,那么就默认是 SYN 扫描
nmap -sS 192.168.1.4
目标设备回应 目标设备端口状态
回复 SYN + ACK 包 open
回复 RST 包 closed
没有做出回复 filtered
ICMP 端口不可达错误 filtered // 不确定端口是打开还是关闭
2、Connect 扫描(全连接扫描)
和 SYN 很像,但是 Connect 完成了三次握手
-sT
nmap -sT 192.168.1.4
3、UDP 扫描
-sU
nmap -sU 192.168.1.4
目标设备回应 目标设备端口状态
从目标设备得到任意 UDP 回应 open
没有做出回复 filtered
4、隐秘扫描
可能存在漏扫,
若目标主机没有对该 TCP 请求作出回复,则说明端口处于开放或被屏蔽(open/filtered),
若目标主机对该 TCP 请求作出回复 RST (拒绝连接),则说明端口关闭。
(1)FIN 扫描
-sF
nmap -p 80 -sX 192.168.1.4
(2)Null 扫描
-sN
nmap -p 80 -sX 192.168.1.4
(3)Xmas 扫描
-sX
nmap -p 80 -sX 192.168.1.4
5、确定端口扫描的版本
-sV
nmap -sV 192.168.1.4
6、NO Ping
-PN
nmap -PN 192.168.1.4
如果远程主机有防火墙,IDS和IPS系统
你可以使用-PN命令来确保不ping远程主机,
因为有时候防火墙会组织掉ping请求.-PN命令告诉Nmap不用ping远程主机。
使用-PN参数可以绕过PING命令,但是不影响主机的系统的发现
三、确定端口扫描的范围
1、对多个 IP 进行扫描
(1)nmap 192.168.1.0-255
(2)nmap 192.168.1.4 192.168.1.7 192.168.1.10
(3)nmap 192.168.1.0/24
(4)nmap 192.168.1.0/24 -exclude 192.168.1.3 扫描除 192.168.1.3 外的所有 IP
(5)nmap 192.168.1.0/24 -excludefile gov.txt 扫描除 gov.txt 文件内 IP 的所有 IP
2、对多个端口进行扫描
(1)nmap 192.168.1.4 -p 80,22
(2)nmap 192.168.1.4 -p 0-65535 相当于 nmap 192.168.1.4 -p "*"
(3)nmap 192.168.1.4 --top-ports 10 扫描使用频率最高的10个端口
四、系统识别
-O
nmap -O 192.168.1.4
两个不太常用的参数
1、--osscan-limit 对系统扫描的步骤进行简化
2、--osscan-guess 若不能确定系统时,进行猜测最接近的操作系统
五、设置时间模板
nmap -T<0-5> 192.168.1.4
1、paranoid [0] :用于IDS躲避
2、sneaky [1] :用于IDS躲避
3、polite [2] :降低了扫描速度以使用更少的带宽和目标主机资源
4、normal [3] :为默认模式,因此-T3 实际上是未做任何优化
5、aggressive [4] :假设用户具有合适及可靠的网络从而加速扫描
6、insane [5] :假设用户具有特别快的网络或者愿意为获得速度而牺牲准确性
六、导出扫描结果
1、保存为 XML 文件
-oX
nmap -p 1-1000 -sV -oX "路径" 192.168.1.4
2、保存为 TXT 文件
-oN
nmap -oN "路径" -p 1-1000 192.168.1.4