Nmap Live Host Discovery
Nmap Live Host Discovery (nmap实时主机的发现)
- ARP扫描:此扫描使用ARP请求来发现活动主机
- ICMP 扫描:此扫描使用 ICMP 请求来识别活动主机
- TCP/ UDP ping 扫描:此扫描将数据包发送到 TCP 端口和UDP端口以确定活动主机。
当在同一网段内的时候 ,可以使用arp-scan来进行扫描,但如果目标主机不再同一网段内,就不能使用arp-scan进行扫描 因为arp是在数据链路层,不能够跨网段。
- 列表:
MACHINE_IP scanme.nmap.org example.com
将扫描 3 个 IP 地址。 - 范围:
10.11.12.15-20
将扫描 6 个 IP 地址:10.11.12.15
、、10.11.12.16
……和10.11.12.20
。 - 子网:
MACHINE_IP/30
将扫描 4 个 IP 地址。
您还可以提供一个文件作为目标列表的输入nmap -iL list_of_hosts.txt
。
如果您想要检查Nmap将扫描的主机列表,可以使用nmap -sL TARGETS
。此选项将为您提供 Nmap 将扫描的主机的详细列表,而无需扫描它们;但是,Nmap 将尝试对所有目标进行反向DNS解析以获取其名称。名称可能会向渗透测试人员透露各种信息。(如果您不想让 Nmap 访问DNS服务器,可以添加-n
。)
下面是tcp/ip七层参考模型
从下到上是 物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。
1.数据链路层的ARP
2.网络层的ICMP
3.传输层的TCP 传输层的UDP
ARP有一个目的:向网络段上的广播地址发送一个帧,并要求具有特定 IP 地址的计算机通过提供其 MAC(硬件)地址来响应。
ICMP 有很多种类型。ICMP ping 使用类型 8(Echo)和类型 0(Echo Reply)。
如果要 ping 同一子网上的系统,则ARP查询应先于 ICMP Echo。
尽管 TCP 和UDP属于传输层,但出于网络扫描目的,扫描器可以向常用 TCP 或UDP端口发送特制数据包,以检查目标是否会响应。此方法非常有效,尤其是在 ICMP Echo 被阻止的情况下。
1.nmap使用arp进行主机发现
nmap -sn ip 是仅扫描存活主机,而不扫描端口。
nmap -PR -sn ip 是利用arp扫描仅存活主机
有一个工具arp-scan 是专门利用arp协议去扫描本网段的主机 arp-scan -l
如果有多个接口,利用arp-scan进行扫描时 可以利用命令 arp-scan -I eth0 -l 向接口eth0 发送arp查询
2.nmap使用ICMP进行主机发现
有些防火墙会阻止icmp包的回显请求 比如:新版本的 MS Windows
nmap -PE -sn ip 利用icmp进行存活主机的探索
由于 ICMP 回显请求往往会被阻止,因此您可能还会考虑使用 ICMP 时间戳或 ICMP 地址掩码请求来判断系统是否在线。Nmap使用时间戳请求(ICMP 类型 13)并检查它是否会收到时间戳回复(ICMP 类型 14)。添加该-PP
选项会告诉Nmap使用 ICMP 时间戳请求。
nmap -PP -sn ip
类似地,Nmap使用地址掩码查询(ICMP 类型 17)并检查是否收到地址掩码回复(ICMP 类型 18)。可以使用选项启用此扫描-PM
。
nmap -PM -sn ip
3.nmap使用tcp/udp进行主机发现
TCP同步和确认ping
nmap -PS -sn ip nmap SYN ping
nmap -PA -sn ip (必须在特权模式下进行) nmap ACK ping
-PS端口号
-PA端口号
UDP ping
一个UDP数据包发送到一个开放的UDP端口,并没有触发任何响应。但是,向任何关闭的UDP端口发送UDP数据包可以触发响应,间接表明目标在线。
namp -PU -sn ip
-PU端口号
masscan也是一个扫描主机的一个工具 速度更快 主要用于大规模网络扫描
Nmap 的默认行为是使用反向DNS在线主机。由于主机名可以揭示很多信息,因此这可能是一个有用的步骤。但是,如果您不想发送此类DNS查询,则可以-n
跳过此步骤。
默认情况下,Nmap将查找在线主机;但是,您可以使用该选项-R
查询DNS服务器,即使是离线主机也是如此。如果您想使用特定的DNS服务器,可以添加该 --dns-servers DNS_SERVER
选项。
扫描类型 | 示例命令 |
---|---|
ARP扫描 | sudo nmap -PR -sn MACHINE_IP/24 |
ICMP 回显扫描 | sudo nmap -PE -sn MACHINE_IP/24 |
ICMP 时间戳扫描 | sudo nmap -PP -sn MACHINE_IP/24 |
ICMP 地址掩码扫描 | sudo nmap -PM -sn MACHINE_IP/24 |
TCP SYN Ping 扫描 | sudo nmap -PS22,80,443 -sn MACHINE_IP/30 |
TCP ACK Ping 扫描 | sudo nmap -PA22,80,443 -sn MACHINE_IP/30 |
UDP Ping 扫描 | sudo nmap -PU53,161,162 -sn MACHINE_IP/30 |
-sn
如果您只对主机发现感兴趣,而不对端口扫描感兴趣, 请记得添加。省略-sn
将使Nmap默认对活动主机进行端口扫描。
选项 | 目的 |
---|---|
-n |
无需DNS查找 |
-R |
反向DNS查找所有主机 |
-sn |
仅主机发现 |