Page 1 of 1

Wie kann ich mit Python ICMP-Anfragen an Offline-Hosts abhören?

Posted: 24 Dec 2024, 20:21
by Guest
Ich versuche, ICMP-Pakete in meinem Netzwerk mit Python abzuhören, habe aber eine Einschränkung festgestellt. Wenn ich mein Skript verwende, kann ich nur Pakete abhören, die Antworten erhalten (z. B. Echo-Antwort). Bei Offline-Hosts, die nicht existieren (z. B. ein Ping an 192.168.15.201 im selben Subnetz), kann ich die ICMP-Echoanfragen jedoch nicht erfassen.
Ich interessiere mich für Sniffing ICMP-Echoanfragen werden sowohl an vorhandene als auch an nicht vorhandene Hosts gesendet. Dies ist besonders nützlich bei Penetrationstests, beispielsweise bei der Erkennung von Ping-Sweeps. Mein Ziel ist es, diese ICMP-Echoanfragen auch dann zu identifizieren, wenn der Zielhost offline ist.
Hier ist ein Beispiel meiner Ausgabe beim Sniffing eines Online-Hosts:

Code: Select all

[12/22/24]x@VM:~/.../practice$ sudo ./sniff.py
Ether / IP / ICMP 192.168.15.1 > 192.168.15.195 echo-reply 0 / Raw
Ether / IP / ICMP 192.168.15.195 > 192.168.15.1 echo-request 0 / Raw
Ether / IP / ICMP 192.168.15.1 > 192.168.15.195 echo-reply 0 / Raw
Ether / IP / ICMP 192.168.15.195 > 192.168.15.1 echo-request 0 / Raw
Ether / IP / ICMP 192.168.15.1 > 192.168.15.195 echo-reply 0 / Raw
Ether / IP / ICMP 192.168.15.195 > 192.168.15.1 echo-request 0 / Raw
Ether / IP / ICMP 192.168.15.1 > 192.168.15.195 echo-reply 0 / Raw
Ether / IP / ICMP 192.168.15.195 > 192.168.15.1 echo-request 0 / Raw
Ether / IP / ICMP 192.168.15.1 > 192.168.15.195 echo-reply 0 / Raw
Ether / IP / ICMP 192.168.15.195 > 192.168.15.1 echo-request 0 / Raw
Wenn ich jedoch einen Offline-Host anpinge (z. B. 192.168.15.201), sehe ich keine Pakete.
Hier ist der Code I Ich verwende

Code: Select all

#!/usr/bin/python3
from scapy.all import *

def print_pkt(pkt):
print(pkt.summary())

# Corrected sniff call
pkts = sniff(iface='x', filter='icmp', prn=print_pkt)