有些时候nmap的扫描很嘈杂会触发主机或者网络的IPS警报。那么在进行扫描的时候一个可行的选项是使用ARP Ping。下面让我们来看下在一个C段下使用命令nmap -PR 192.168.0.0/24进行ARP Ping扫描的时的数据包分布情况。
没有很多ARP的数据包,对吧?当namp进行端口扫描时也是这样。如果我们想进行静默扫描,我们可以利用默认网关的一些功能,每时每刻向所有ARP表中所有存活的主机发送ARP请求。下面我们来看个例子:
同样的,我们可以使用scapy发送相同的数据包,代码如下:
我们当前网络上总共有6个存活主机,但是只收到了2个应答,哪里出错了?原来我们发送的不是一个完整的ARP数据包。为了模仿网关发出的ARP数据包,我们先来回顾下ARP数据包头部结构:
我们仅仅只设置了目标地址而没有设置其他所有的字段。那么我们需要设置哪些字段呢?
1.opcode:置为1(请求包)
2.hardware type:置为1(以太网)
3.protocol type:置为0x0800(IP)
下面我们再来重新试下:
这种扫描还是相对比较安静的,我们来看下数据包分布:
Scapy还是相当强大的,如果你在渗透测试中有些特殊需要的功能,都可以像这里一样使用相关库自己动手写一个小工具。