1.基本用法
扫描单个主机: nmap 192.168.0.108
扫描多个不连续主机: nmap 192.168.0.107 192.168.0.108 空格分隔
扫描连续主机: nmap 192.168.0.1-255 -sn
扫描整个子网: nmap 192.168.0.1/24 -sn
-sn参数: 只扫描是否在线,比较节约时间
2.主机发现
-
使用Ping协议
仅使用Ping扫描主机: nmap -sP 192.168.0.107
如果某主机采用某种手段屏蔽了Ping扫描,我们可以使用-PN指定无论是否响应Ping扫描,都要将整个扫描过程完成(跳过Ping扫描阶段) nmap -PN 192.168.0.107 -
使用ARP协议
当目标主机与我们处于同一网段时,使用ARP协议扫描是最佳的选择,这种方式也仅能用于与nmap主机处在同一子网中 nmap -PR 192.168.0.107 -
使用TCP协议
TCP协议有三次握手,所以使用TCP协议进行扫描分为:
全开扫描(Connect扫描):完成三次握手nmap -sT 192.168.0.107
半开扫描(SYN扫描):只完成前两步nmap -sS 192.168.0.107**半开扫描更常用,因为其耗时更短,且不容易被目标的日志所记录**
-
使用UDP协议
不如TCP方便,且花费时间更长
nmap -sU 192.168.0.107
3.端口发现
Nmap默认扫描的端口只有1000个,所以如果我们不加任何参数的话,Nmap扫描的只有1000个端口,而不是65535个
1. 扫描全部端口
nmap -p "*" 192.168.0.107
2. 扫描前n个端口
nmap --top-ports 10 192.168.0.107
3. 扫描指定端口
nmap -p 80 192.168.0.107
4.扫描目标操作系统
原理:通过向目标发送探针,然后根据目标的回应来猜测系统。
这个探针大都是以TCP和UDP数据包的形式,检查的细节包括初始序列号,TCO选项,IP标识符,数字时间戳,显示拥塞通知,窗口大小等。每个操作系统对于这些探针会做出不同的相应。
nmap -O 192.168.0.107
5.扫描目标服务
扫描目标上的服务和软件
nmap -sV 192.168.0.107
6.扫描结果保存为XML
nmap -oX Report.xml 192.168.0.107