CTF-Ressourcen

Einer der häufigsten Steganographie-Tricks besteht darin, eine Datei in einem Bild auszublenden. Die Datei wird normalerweise als Bild geöffnet, enthält aber auch versteckte Dateien, häufig Zip, Text und sogar andere Bilddateien.

Der Grund, warum dies funktioniert, ist, dass beim Lesen einer Bilddatei Start- und Endbytes vorhanden sind, die die Größe des Bildes bestimmen. Der von Ihnen verwendete Bildbetrachter verwendet die Informationen zwischen diesen Bytes, um Ihnen ein Bild anzuzeigen, wobei alles nach dem beendenden Byte ignoriert wird.

Zum Beispiel ist das Abschlussbyte für ein JPEG FF D9 in Hex, so dass Sie mit einem Hex-Viewer (xxd ist gut für Linux oder so etwas wie HxD für Windows) herausfinden können, wo das Bild endet. Diese Bytes sind jedoch manchmal in einem Meer von Zahlen schwer zu finden, so dass ein Blick auf den Dump des Hex (der Text, der die Hex-Bytes darstellt) Ihnen auch helfen kann, sie zu finden .txt oder .zip-Dateien.

Beispiel

Eine sehr einfache Implementierung dieser Strategie wird im Beispiel verwendet.jpg-Datei in diesem Verzeichnis. Wenn Sie es auf Ihrem Computer speichern und mit einem Bildbetrachter öffnen, sollte Ihnen ein einfaches JPG-Bild angezeigt werden.

Versuchen wir nun, die Flagge zu finden. Öffnen Sie das Bild in Ihrem bevorzugten Hex-Editor und suchen Sie nach etwas Seltsamem (Möglicherweise finden Sie das Flag selbst an dieser Stelle aus dem Speicherauszug, aber versuchen Sie zum Beispiel, es zu extrahieren). Am unteren Rand der Datei sollten Sie das Abschlussbyte eines JPG sehen ffd9:

01e17a0: 685c 7fab 8eb4 5b32 61f1 c4ff d950 4b03 h\....[2a....PK.

Ein weiterer wichtiger Teil dieser Zeile ist der PK am Ende. PK sind die Initialen von Phil Katz, dem Erfinder der Zip-Datei, und zeigen an, dass eine Zip-Datei an diesem Punkt beginnt.

Mit diesen Informationen können wir ein anderes praktisches Linux-Tool verwenden, dd). Der Befehl dd ist sehr vielseitig und ermöglicht das Kopieren und Konvertieren einer Vielzahl von Dateien. In unserem Fall werden wir es verwenden, um die ZIP-Datei zu extrahieren.

Wir wissen, wo sich der Speicherort der Zip-Datei befindet, aber dd akzeptiert nur Dezimalwerte, daher konvertieren wir den hexadezimalen Speicherort 0x01e17ad von hex in dezimal, um 1972141 zu erhalten.

Dies in dd einstecken:

dd if=example.jpg bs=1 skip=1972141 of=foo.zip

Dies zeigt das Bildbeispiel.jpg, die ‚In-Datei‘ wenn, liest einen Block nach dem anderen, ‚Blockgröße‘ bs, überspringt zu Block 1972141, überspringen, und schreibt es in die ‚Out-Datei‘ zip nennen wir foo.Zip. Wenn dies abgeschlossen ist, sollten Sie eine ZIP-Datei haben, die Sie leicht entpacken können, um auf die darin enthaltene Textdatei zuzugreifen.

Dies ist der lange Weg zur Lösung eines einfachen Steganographie-Problems, zeigt aber, wie die Strategie funktioniert. Im Lösungsabschnitt werden prägnantere und effizientere Methoden beschrieben.

>

Diese Herausforderungen werden normalerweise als einfaches Bild ohne weitere Anweisungen dargestellt, und es liegt am Wettbewerber, es über einen Hex-Editor auszuführen, um herauszufinden, ob es sich um Steganographie handelt. Wenn Ihnen ein Bild und keine Anweisungen angezeigt werden, ist es am sichersten, dass nach den schließenden Tags des Bildes etwas verborgen ist.

Lösen

Obwohl es möglich und manchmal praktisch ist, diese Aufgaben mit Linux-Tools wie dd zu lösen, gibt es einige Tools, die es viel einfacher machen. Binwalk ist ein immens nützliches Tool, das automatisch Dateien erkennt und extrahiert, die mit Steganographie-Tools versteckt sind

CTF-Beispiel

Steganographie dieses Typs wird normalerweise nicht sehr hoch bewertet, ist aber anständig verbreitet. BackdoorCTF 2014 erstellt eine, die im Allgemeinen einfach ist, ctfexample .jpg, sondern beinhaltet mehrere Schichten.

XXD

HxD

TT

Binärdatei

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht.