「Kali Linux网络扫描秘籍系列」使用 Nmap 探索TCP

特此强调一下: 笔者在做实验的时候,有一个问题大家特别要注意:(注:如果你的kali运行在虚拟机里而且网卡是nat模式,三层的话测试就不准了,下面的主机ip实际上都是不存在的,但是如果kali,在桥接模式下桥接模式下是没有问题的

「Kali Linux网络扫描秘籍系列」使用 Nmap 探索TCP/IP的二层

网络映射器(Nmap)是Kali Linux 中最有效和强大的工具之一。 Nmap 可以用于执行大范围的多种扫描技术,并且可高度定制。 这个工具在整本书中会经常使用。 在这个特定的秘籍中,我们将讨论如何使用Nmap 执行第2层扫描。

准备

要使用ARPing 执行ARP 发现,你需要在LAN 上至少拥有一个响应ARP 请求的系统。

操作步骤

Nmap 是使用单个命令执行自动化第二层发现扫描的另一个方案。 -sn 选项在Nmap 中称为ping 扫描(-sn: Ping Scan - disable port scan)。 虽然术语“ping 扫描”自然会导致你认为正在执行第三层发现,但实际上是自适应的。 假设将同一本地子网上的地址指定为参数,可以使用以下命令执行第2层扫描:

root@kali:~# nmap 172.16.155.1 -sn

Starting Nmap 7.70 ( [url=https://nmap.org]https://nmap.org[/url] ) at 2018-05-29 03:41 EDT

Nmap scan report for 172.16.155.1

Host is up (0.00027s latency).

MAC Address: 00:50:56:C0:00:08 (VMware)

Nmap done: 1 IP address (1 host up) scanned in 0.18 seconds

此命令向LAN 广播地址发送ARP 请求,并根据接收到的响应确定主机是否处于活动状态。 或者,如果对不活动主机的IP 地址使用该命令,则响应会表示主机关闭:

root@kali:~# nmap 172.16.155.100 -sn

Starting Nmap 7.70 ( [url=https://nmap.org]https://nmap.org[/url] ) at 2018-05-29 03:42 EDT

Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn

Nmap done: 1 IP address (0 hosts up) scanned in 0.48 seconds

我们可以修改此命令,来使用破折号符号对一系列顺序IP 地址执行第2层发现。 要扫描完整的/ 24 范围,可以使用0-255 :

root@kali:~# nmap 172.16.155.1-254 -sn

Starting Nmap 7.70 ( [url=https://nmap.org]https://nmap.org[/url] ) at 2018-05-29 03:43 EDT

Nmap scan report for 172.16.155.1

Host is up (0.00020s latency).

MAC Address: 00:50:56:C0:00:08 (VMware)

Nmap scan report for 172.16.155.2

Host is up (0.00044s latency).

MAC Address: 00:50:56:E4:E6:AF (VMware)

Nmap scan report for 172.16.155.254

Host is up (0.00017s latency).

MAC Address: 00:50:56:EE:88:3C (VMware)

Nmap scan report for 172.16.155.150

Host is up.

Nmap done: 254 IP addresses (4 hosts up) scanned in 2.76 seconds

使用此命令将向该范围内的所有主机发送ARP 广播请求,并确定每个主动响应的主机。 也可以使用-iL 选项对IP 地址的输入列表执行此扫描:

root@kali:~# ls output.txt

output.txt

root@kali:~# cat output.txt

172.16.155.1

172.16.155.2

172.16.155.254

172.16.155.150

root@kali:~# nmap -iL output.txt -sn

Starting Nmap 7.70 ( [url=https://nmap.org]https://nmap.org[/url] ) at 2018-05-29 03:46 EDT

Nmap scan report for 172.16.155.1

Host is up (0.00045s latency).

MAC Address: 00:50:56:C0:00:08 (VMware)

Nmap scan report for 172.16.155.2

Host is up (0.00099s latency).

MAC Address: 00:50:56:E4:E6:AF (VMware)

Nmap scan report for 172.16.155.254

Host is up (0.014s latency).

MAC Address: 00:50:56:EE:88:3C (VMware)

Nmap scan report for 172.16.155.150

Host is up.

Nmap done: 4 IP addresses (4 hosts up) scanned in 0.30 seconds

当使用-sn 选项时,Nmap 将首先尝试使用第2层ARP 请求定位主机,并且如果主机不位于LAN 上,它将仅使用第3层ICMP 请求。 注意对本地网络(在172.16.155.0/24 专用范围)上的主机执行的Nmap ping 扫描才能返回MAC 地址。 这是因为MAC 地址由来自主机的ARP 响应返回。 但是,如果对不同LAN 上的远程主机执行相同的Nmap ping 扫描,则响应不会包括系统的MAC地址。 (注:三层的话测试就不准了,下面的主机ip实际上都是不存在的)

root@kali:~# nmap 172.16.1.1-254 -sn

Starting Nmap 7.70 ( [url=https://nmap.org]https://nmap.org[/url] ) at 2018-05-29 03:48 EDT

Nmap scan report for 172.16.1.1

Host is up (0.014s latency).

Nmap scan report for 172.16.1.2

Host is up (0.0045s latency).

Nmap scan report for 172.16.1.3

Host is up (0.015s latency).

Nmap scan report for 172.16.1.4

Host is up (0.015s latency).

Nmap scan report for 172.16.1.5

Host is up (0.016s latency).

Nmap scan report for ....

......

当对远程网络范围(公共范围172.16.1.0/24 )执行时,你可以看到,使用了第三层发现,因为没有返回MAC 地址。 这表明,Nmap 会尽可能自动利用第二层发现的速度,但在必要时,它将使用可路由的ICMP 请求,在第三层上发现远程主机(特别注意:这些ip实际上不存在,没有reply的报文, 但是nmap还是把他们报告存活,所以nmap x.x.x.x -sn 不适合做跨三层的ip存活检查)。

root@kali:~# tcpdump not tcp port 22 -n

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes

04:00:46.446852 IP 172.16.155.150 > 172.16.1.2: ICMP echo request, id 24535, seq 0, length 8

04:00:46.446966 IP 172.16.155.150 > 172.16.1.3: ICMP echo request, id 13971, seq 0, length 8

04:00:46.447021 IP 172.16.155.150 > 172.16.1.4: ICMP echo request, id 6749, seq 0, length 8

04:00:46.447137 IP 172.16.155.150 > 172.16.1.5: ICMP echo request, id 57289, seq 0, length 8

04:00:46.447218 IP 172.16.155.150 > 172.16.1.6: ICMP echo request, id 63355, seq 0, length 8

04:00:46.447276 IP 172.16.155.150 > 172.16.1.7: ICMP echo request, id 19443, seq 0, length 8

04:00:46.447502 IP 172.16.155.150 > 172.16.1.8: ICMP echo request, id 8520, seq 0, length 8

04:00:46.447781 IP 172.16.155.150 > 172.16.1.9: ICMP echo request, id 6980, seq 0, length 8

04:00:46.447860 IP 172.16.155.150 > 172.16.1.10: ICMP echo request, id 27215, seq 0, length 8

04:00:46.447937 IP 172.16.155.150 > 172.16.1.11: ICMP echo request, id 9896, seq 0, length 8

04:00:46.559346 ARP, Request who-has 172.16.155.2 tell 172.16.155.150, length 28

04:00:46.559608 ARP, Reply 172.16.155.2 is-at 00:50:56:e4:e6:af, length 46

04:00:47.449237 IP 172.16.155.150 > 172.16.1.14: ICMP echo request, id 44063, seq 0, length 8

04:00:47.449506 IP 172.16.155.150 > 172.16.1.15: ICMP echo request, id 24681, seq 0, length 8

04:00:47.449829 IP 172.16.155.150 > 172.16.1.16: ICMP echo request, id 19344, seq 0, length 8

04:00:47.451613 IP 172.16.155.150 > 172.16.1.17: ICMP echo request, id 46601, seq 0, length 8

如果你使用tcpdump 监控流量,而Nmap 对本地网络上的主机执行ping 扫描。 在以下屏幕截图中,你可以看到Nmap 利用ARP 请求来识别本地段范围内的主机:

root@kali:~# tcpdump not tcp port 22 -n

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes

04:03:04.668788 ARP, Request who-has 172.16.155.2 tell 172.16.155.150, length 28

04:03:04.669356 ARP, Request who-has 172.16.155.3 tell 172.16.155.150, length 28

04:03:04.670004 ARP, Request who-has 172.16.155.4 tell 172.16.155.150, length 28

04:03:04.670256 ARP, Reply 172.16.155.2 is-at 00:50:56:e4:e6:af, length 46

04:03:04.670459 ARP, Request who-has 172.16.155.5 tell 172.16.155.150, length 28

04:03:04.671149 ARP, Request who-has 172.16.155.6 tell 172.16.155.150, length 28

04:03:04.671374 ARP, Request who-has 172.16.155.7 tell 172.16.155.150, length 28

04:03:04.671729 ARP, Request who-has 172.16.155.8 tell 172.16.155.150, length 28

04:03:04.672124 ARP, Request who-has 172.16.155.9 tell 172.16.155.150, length 28

工作原理

Nmap 已经高度功能化,需要很少甚至无需调整就可以运行所需的扫描。 底层的原理是一样的。 Nmap 将ARP 请求发送到一系列IP 地址的广播地址,并通过标记响应来识别活动主机。 但是,由于此功能已集成到Nmap 中,因此可以通过提供适当的参数来执行。

如果您对本文感兴趣的,你还可以参考往期的文章连接如下:


分享到:


相關文章: