關于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