Immer schön die Firewall warten. Nur die TCP-Ports aufmachen die man braucht und UDP.. wer nutzt das schon, am besten gleich alles dicht machen.
Aber ist mein Server eigentlich online? Schnell mal anpingen.. check; ist noch online!
ICMP-Pakete als Hintertür
In der Welt der IT gibt es ständig innovative Ansätze, um Netzwerke sicherer und effizienter zu gestalten. Eine faszinierende und ziemlich unbekannte Möglichkeit, ist die Verwendung von ICMP-Paketen, um einen VPN-Tunnel aufzubauen.
Was sind ICMP-Pakete
Das Internet Control Message Protocol (ICMP) ist ein integraler Bestandteil des Internet Protocol (IP). Es wird hauptsächlich für die Übermittlung von Fehlermeldungen und diagnostischen Informationen über das Internet verwendet. Ping-Anfragen sind vielleicht der bekannteste Anwendungsfall von ICMP-Paketen, bei denen ein Netzwerkgerät auf Anfragen mit einem ICMP Echo Reply antwortet.

Der unkonventionelle Ansatz: VPN über ICMP
VPN-Tunnel dienen dazu, eine sichere Verbindung zwischen zwei Netzwerken über das unsichere Internet herzustellen. Normalerweise erfolgt dies über Protokolle wie OpenVPN oder IPsec. Der folgende Ansatz verwendet ICMP-Pakete als Mittel zum Aufbau eines solchen Tunnels.
Um die Aufmerksamkeit von Firewalls und Intrusion Detection Systemen zu vermeiden, müssen ICMP-Pakete oft getarnt werden. Dies kann durch Verwendung von verschlüsselten Payloads oder durch Hinzufügen zusätzlicher Header erreicht werden, um sie wie normale Datenpakete aussehen zu lassen.
Statt herkömmlicher VPN-Protokolle wird ein spezielles Tunnelprotokoll in den ICMP-Paketen verwendet. Dieses Protokoll ermöglicht die Verschlüsselung, Authentifizierung und den sicheren Austausch von Daten zwischen den Tunnelendpunkten.
Beispiel für eine solche Implementierung wären z.B der Ping Tunnel von Daniel Stødle: https://www.cs.uit.no/~daniels/PingTunnel/
Vorteile des ICMP-Paket-Tunnelings
- Stealth-Modus: Da ICMP oft als “harmlos” betrachtet wird, kann das Tunneling von VPN über ICMP dazu beitragen, sich vor bestimmten Netzwerküberwachungstools zu verstecken.
- Durchdringung von Firewalls: Viele Firewalls lassen ICMP-Traffic durch, da er oft für Diagnosezwecke verwendet wird. Dies kann genutzt werden, um VPN-Tunnel aufzubauen, wenn andere Protokolle blockiert werden.
- Reduzierter Overhead: Im Vergleich zu einigen herkömmlichen VPN-Protokollen kann das ICMP-Paket-Tunneling einen geringeren Overhead haben, was zu einer effizienteren Netzwerknutzung führt.
Manipulation von ICMP-Paketen für VPN-Tunneling
Paketaufbau und Body
Um ICMP-Pakete als Übertragungsweg für einen VPN-Tunnel zu nutzen, ist es entscheidend, den Paketaufbau und den Body geschickt zu manipulieren.

- Header: Der ICMP-Header wird modifiziert, um das Paket wie ein normales Echo Request/Reply-Paket aussehen zu lassen. Dabei wird darauf geachtet, dass die wichtigsten Informationen wie Typ und Code so angepasst werden, dass das Paket nicht als verdächtig erkannt wird.
- Payload: Der eigentliche Clou liegt im Payload, der verschlüsselte Daten für den VPN-Tunnel enthält. Diese Verschlüsselung ist entscheidend, um die Sicherheit und Integrität der übertragenen Daten zu gewährleisten.
Die RFCs [RFC 792] und [RFC 791] definieren keine bestimmte keine genaue Größe für den Payload-Teil im ICMP Paket, weshalb hier faktisch bis zu 65507 bytes zur Verfügung stehen. Für mehr müssen die ICMP-Pakete aufgeteilt werden.
Aufteilung und Rechung der Größe:
65535 Byte ist die maximal zulässige Größe eines IPv4-Netzwerkpakets, während 20 und 8 die Größe der IP- und ICMP-Header sind, so dass bis zu 65507 Byte für den ICMP-Body bzw. Payload übrig bleiben.
Typ, Code, Checksum, Identifier und Sequence bleiben in der Regel wie im Original um zum einen unauffällig zu bleiben zum anderen aber auch um die Funktion eines ICMP-Pakets für beide Seiten weiter aufrecht zu erhalten.
Anwendungsfälle
Aber wo braucht man denn das nun? Nun diese Frage lässt sich einfacher beantworten, wenn wir uns ein paar Fälle aus dem realen Leben anschauen, wo man oft in der Nutzung der Protokolle eingeschränkt wird:
- Bypass von Netzwerkeinschränkungen:
- Szenario: In bestimmten Netzwerken sind herkömmliche VPN-Protokolle durch Firewalls oder Sicherheitsrichtlinien blockiert. Oft findet man dies in Hotel- oder Firmennetzwerken.
- Anwendung: Das VPN-Tunneling über ICMP ermöglicht es, diese Beschränkungen zu umgehen, da ICMP-Traffic oft als unschädlich betrachtet wird.
- Stealth-Kommunikation in restriktiven Umgebungen:
- Szenario: In streng überwachten oder zensierten Netzwerken soll die Kommunikation unauffällig erfolgen.
- Anwendung: Die Nutzung von ICMP-Paketen als Übertragungsmittel ermöglicht eine Stealth-Kommunikation, da ICMP oft weniger genau überwacht wird als andere Protokolle.
- Verbindungsaufbau in öffentlichen WLANs:
- Szenario: In öffentlichen WLANs, die oft Restriktionen für bestimmte Protokolle haben, soll eine sichere Verbindung aufgebaut werden.
- Anwendung: VPN über ICMP kann hier eine Alternative bieten, um die Verbindung sicher und zuverlässig herzustellen.
Have fun!
~Thomas