关于ICMPWatch 

ICMPWatch是一款功能强大的ICMP数据包嗅探工具,该工具基于Python 3开发,可以帮助广大研究人员捕捉和分析ICMP(Internet控制报文协议)数据包。该工具能提供有关捕捉数据包的详细信息,包括数据包源IP地址、目标IP地址、MAC地址、ICMP类型以及Payload数据等。除此之外,该工具还支持将捕捉到的数据包存储到SQLite数据库中,并以pcap格式保存。

 功能介绍 

1、捕捉并分析ICMP响应请求和响应回复数据包;
2、显示有关每个ICMP数据包的详细信息,包括源IP地址和目标IP地址、MAC地址、数据包大小、ICMP类型和Payload内容;
3、将捕获的数据包信息保存到文本文件中;
4、将捕获的数据包信息存储在SQLite数据库中;
5、将捕获的数据包保存到PCAP文件中以进行进一步分析;
6、支持基于源IP地址和目标IP地址的自定义数据包过滤;
7、使用了ANSI转移编码的带颜色高亮的控制台输出;
8、用户友好的命令行界面;

 工具要求 

Python v3.7+
Scapy v2.4.5+
Colorama v0.4.4+

 工具安装 

由于该工具基于Python 3.7开发,因此我们首先需要在本地设备上安装并配置好Python 3.7环境。

接下来,广大研究人员可以使用下列命令将该项目源码克隆至本地:

git clone https://github.com/HalilDeniz/ICMPWatch.git

然后切换到项目目录中,使用pip工具和项目提供的requirements.txt文件安装该工具所需的其他依赖组件:

cd ICMPWatch
pip install -r requirements.txt

 工具使用 

python ICMPWatch.py [-h] [-v] [-t TIMEOUT] [-f FILTER] [-o OUTPUT] [--type {0,8}] [--src-ip SRC_IP] [--dst-ip DST_IP] -i INTERFACE [-db] [-c CAPTURE]

可选参数

-v --verbose:开启Verbose模式,显示数据包详细信息;
-t --timeout:数据包嗅探超时时间(秒),默认为300秒;
-f --filter:数据包嗅探BPF过滤器,默认为“icmp”;
-o --output:要存储捕捉到数据包的输出文件路径;
--type:设置要过滤的ICMP数据包类型(0: Echo Reply, 8: Echo Request)
--src-ip:设置要过滤的源IP地址;
--dst-ip::设置要过滤的目的IP地址;
-i --interface:设置要用来捕捉数据包的网络接口(必须);
-db --database:将捕捉到的数据包存储到一个SQLite数据库中;
-c --capture:将捕捉到的数据包存储为pcap格式;

注意:按下Ctrl + C 组合键即可终止嗅探进程。

 工具使用样例 

在“eth0”接口上捕捉ICMP数据包:

python icmpwatch.py -i eth0

在“eth0”接口上嗅探ICMP流量,并将结果存储到一个文件中:

python dnssnif.py -i eth0 -o icmp_results.txt

使用源IP或目的IP过滤数据包:

python icmpwatch.py -i eth0 --src-ip 192.168.1.10 --dst-ip 192.168.1.20

过滤ICMP Echo Request:

python icmpwatch.py -i eth0 --type 8

存储捕捉到的数据包:

python icmpwatch.py -i eth0 -c captured_packets.pcap

 工具运行截图 

 许可证协议 

本项目的开发与发布遵循MIT开源许可证协议。

 项目地址 

ICMPWatch:https://github.com/HalilDeniz/ICMPWatch