Steganographie
Eine Datei in einer Anderen verstecken

Steganographie ist die Kunst, die Existenz einer Information zu verstecken. Im Gegensatz zur Kryptographie, bei der man verschlüsselten Dateien sehen kann, weiß man bei Steganographie nicht einmal vom Vorhandensein einer Information.
In diesem Artikel geht es um die wohl einfachste Form, nämlich der Kombination verschiedener Dateitypen zu einer einzigen Datei. Diese Methode haben sich bereits selbstentpackende ZIP-Archive zunutze gemacht. So wurde dabei eine .EXE-Datei mit einer .ZIP-Datei verbunden. Warum das geht, beschreibe ich hier.
ZIP-Dateien mit Bilddateien kombinieren
Der Grund, warum sich ZIP-Dateien besonders gut mit JPG-Dateien zusammenfügen lassen, liegt in einer Eigenschaft des ZIP-Formats:
Eine ZIP-Datei speichert ihre Metadaten (das Zentralverzeichnis) am Ende der Datei. Das bedeutet:
- ZIP-Programme lesen ZIP-Dateien von hinten nach vorne:
- Die eigentlichen komprimierten Daten können irgendwo in der Datei stehen.
- Entscheidend für das Entpacken ist das zentrale Verzeichnis am Ende der Datei.
- JPG-Dateien ignorieren fremde Daten am Ende:
- Ein JPEG-Decoder liest nur den Bildinhalt von vorne und stoppt, sobald er das Endemark (
FF D9
in Hex) erreicht. - Zusätzliche Daten am Ende werden ignoriert und stören die Anzeige nicht.
- Ein JPEG-Decoder liest nur den Bildinhalt von vorne und stoppt, sobald er das Endemark (
Es ist daher möglich, eine ZIP-Datei mit einer Bilddatei zu kombinieren, sodass die Bilddatei weiterhin sichtbar bleibt und die ZIP-Datei extrahiert werden kann. Dies wird erreicht, indem der Inhalt der Bilddatei und der ZIP-Datei mit dem cat
-Befehl in eine neue Datei umgeleitet wird.
Beispiel:
cat image.jpg archive.zip > combined.jpg
Die resultierende Datei combined.jpg
kann als normales Bild geöffnet werden. Um den Inhalt der ZIP-Datei zu extrahieren, benennt man die Datei in combined.zip
um und verwendet ein geeignetes Entpackungsprogramm. Diese Methode funktioniert mit verschiedenen Bildformaten wie JPG, PNG, GIF und BMP.
ZIP-Dateien mit PDF-Dateien kombinieren
Eine ähnliche Technik kann verwendet werden, um eine ZIP-Datei mit einer PDF-Datei zu kombinieren. Die resultierende Datei behält die Lesbarkeit der PDF-Datei und die Extrahierbarkeit der ZIP-Datei.
Beispiel:
cat document.pdf archive.zip > combined.pdf
Die Datei combined.pdf
kann in einem PDF-Reader normal geöffnet werden. Um die ZIP-Datei zu extrahieren, ändert man die Dateiendung in .zip
und verwendet ein Entpackungsprogramm.
ZIP-Dateien mit selbstextrahierenden Archiven kombinieren
Selbstextrahierende Archive (EXE-Dateien) können ebenfalls mit ZIP-Dateien kombiniert werden. Die resultierende EXE-Datei bleibt ausführbar, und die ZIP-Datei kann weiterhin extrahiert werden.
Beispiel:
cat installer.exe archive.zip > combined.exe
Die Datei combined.exe
kann wie gewohnt ausgeführt werden. Um die ZIP-Datei zu extrahieren, benennt man die Datei in combined.zip
um und verwendet unzip
oder ein anderes Entpack-Programm.
ZIP-Dateien mit MP3-Dateien kombinieren
Durch das Anhängen einer ZIP-Datei an eine MP3-Datei entsteht eine Datei, die sowohl als Audio abspielbar als auch als ZIP-Archiv extrahierbar ist. Dies ähnelt einer Form der Steganographie.
Beispiel:
cat song.mp3 archive.zip > combined.mp3
Die Datei combined.mp3
kann mit einem Audioplayer abgespielt werden. Um die ZIP-Datei zu extrahieren, benennt man die Datei in combined.zip
um und verwendet unzip
.
ZIP-Dateien mit MP4-Dateien kombinieren
Ähnlich wie bei MP3-Dateien können ZIP-Dateien an MP4-Videodateien angehängt werden. Die resultierende Datei bleibt als Video abspielbar, und die ZIP-Datei ist weiterhin extrahierbar.
Beispiel:
cat video.mp4 archive.zip > combined.mp4
Die Datei combined.mp4
kann mit einem Videoplayer abgespielt werden. Um die ZIP-Datei zu extrahieren, benennt man die Datei in combined.zip
um und verwendet unzip
.
Selbstextrahierende Archive mit mehreren Dateien
Selbstextrahierende Archive können mit ZIP-Dateien und anderen Dateiformaten wie PDF kombiniert werden. Die resultierende Datei bleibt ausführbar und kann das ZIP-Archiv entpacken und die PDF-Datei öffnen.
Beispiel:
cat installer.exe archive.zip > combined.exe
Die Datei combined.exe
kann ausgeführt werden. Um die ZIP-Datei extrahieren, benennt man die Datei in combined.zip
um und verwendet unzip
.
Multipart-Archive in einer Datei
Mehrteilige RAR-Archive können in einer einzigen Datei, z. B. einem Bild, versteckt werden. Das Bild bleibt sichtbar, und das mehrteilige Archiv kann extrahiert werden.
Beispiel:
cat image.jpg part1.rar part2.rar part3.rar > combined.jpg
Die Datei combined.jpg
kann als Bild betrachtet werden. Um das mehrteilige Archiv zu extrahieren, benennt man die Datei in combined.rar
um und verwendet unrar x combined.rar
. Falls das Entpackungsprogramm nur das erste RAR-Archiv erkennt, können die weiteren Teile manuell extrahiert werden.
Fazit
Die hier gezeigten Methoden nutzen die Tatsache, dass viele Dateiformate zusätzliche Daten am Ende der Datei ignorieren. Diese Techniken können für verschiedene Zwecke wie Steganographie, Softwareverteilung und kreative Dateimanipulationen verwendet werden. Die Flexibilität von Linux-Befehlen wie cat
ermöglicht es, Dateien auf einfache Weise zu kombinieren.