底层网络嗅探

<!DOCTYPE html>

底层网络嗅探

底层网络嗅探

UDP主机发现工具:

原理,发送UDP数据包到一个端口,如果接受到一个ICMP响应,说明这个主机是开启的。


注意脚本中的host的IP设置。用管理员运行命令提示符,捕获并输出一个数据包


试一试将IP设置为 非本机。结果出错如下图。



只能嗅探一个数据包显然用处不大,下面添加一些功能,来捕获更多数据包,并解码它的内容。




运行该脚本。


在linux下,运行该脚本。



解码ICMP(互联网控制报文协议):ICMP的内容差异有时非常大,但是每个信息都包含的三个元素,类型,代码,校验和。类型和代码,告诉接受主机,到达的是什么类型的ICMP消息。

为了我们扫描器的目的,我们寻找类型和代码值等于3的数据包。这是目的地不可达的ICMP类型,代码值为3代表端口不可达。


就像上面的IP结构一样,设置ICMP结构



接下来再上面的脚本,添加一个netaddr功能,做主机发现扫描的时候就可以覆盖整个子网。

https://code.google.com/archive/p/netaddr/downloads,下载第三方库netaddr

netaddr-0.7.4.win32.exe 双击运行安装。







然后运行该脚本。


用nmap测试一下,nmap -sS ip

结果显示该ip seems down,怎么回事

再用nmap -sS -Pn ip

结果显示ip的所有端口都被过滤,怪不得第一次扫不出。看了脚本scanner.py准确率还不错。