
このPythonスクリプトは、ネットワークパケット内のパディングデータを分析することで、対象ホストのEtherleak(CVE-2003-0001)脆弱性を検出するのに役立ちます。このスクリプトはScapyを使用して、さまざまなタイプのリクエスト(ICMP、ARP、またはTCP)を送信し、レスポンスに機密性の高いメモリ内容を漏えいさせる可能性のあるパディングデータが含まれているかどうかをチェックします。
このPythonスクリプトは、ネットワークパケットのパディングデータを解析することで、対象ホストのEtherleak(CVE-2003-0001)脆弱性を検出するのに役立ちます。このスクリプトはScapyを使用して、さまざまなタイプの要求(ICMP、ARP、TCP)を送信し、レスポンスにメモリの機密内容を漏えいさせる可能性のあるパディングデータが含まれているかどうかをチェックします。
Etherleak は、ネットワークドライバがイーサネットフレームを残存メモリで不適切にパディングする脆弱性です。攻撃者は特定の要求(ICMP、ARP、TCP)を送信し、レスポンスパケットを解析してシステムメモリから機密データが漏えいしているかどうかを確認することで、この脆弱性を悪用できます。
pip install scapy
このスクリプトは、対象の調査に3つのプロトコル(ARP、ICMP、TCP)をサポートしています。 TCP を使用する場合は、ポートを指定できます。デフォルトは445(通常SMBで使用)です。
コマンドラインでの使用方法
sudo python etherleak_checker.py <target_ip> <arp|icmp|tcp> <count> [tcp_port]
<target_ip>: The IP address of the target host.
<arp|icmp|tcp>: The type of request to send (ARP, ICMP, or TCP).
<count>: The number of packets to send and analyze.
[tcp_port]: (Optional) The TCP port to target if using tcp (default: 445).
sudo python etherleak_checker.py 192.168.1.1 icmp 10
これにより、対象IP 192.168.1.1 に10個のICMPエコー要求(ping)を送信し、レスポンス内のパディングデータを解析します。
sudo python etherleak_checker.py 192.168.1.1 arp 10
これにより、対象IP 192.168.1.1 に10個のARP要求を送信し、ARPレスポンス内のパディングデータを解析します。
sudo python etherleak_checker.py 192.168.1.1 tcp 10
これにより、対象IP 192.168.1.1 のポート445(SMB)に10個のTCP SYNパケットを送信し、TCPレスポンス内のパディングデータを解析します。
sudo python etherleak_checker.py 192.168.1.1 tcp 10 80
これにより、対象IP 192.168.1.1 のポート80に10個のTCP SYNパケットを送信し、レスポンス内のパディングデータを解析します。
[ Targeting 192.168.1.1 using ICMP for 10 requests... ]
Padding captured: 00 00 00 01 02 03 ...
Padding captured: 00 00 00 01 02 03 ...
...
Variation in padding data detected across packets, indicating a potential Etherleak vulnerability.
Padding analysis complete.
このスクリプトは教育目的と、管理された環境で自身のシステムをテストするためのものです。許可なくシステムに対してこのスクリプトを不正に使用することは違法であり、非倫理的です。どのシステムに対してテストを実行する前にも、必ず適切な許可を得てください。