
Конвертируйте shellcode в ✨ разные ✨ форматы!
Bluffy — это утилита, которая использовалась в экспериментах по обходу антивирусных продуктов (статически) путём форматирования шелл-кода в форматы данных, выглядящие реалистично.
Инструменты-доказательства концепции, такие как Ninja_UUID_Runner от 0xBoku и UuidShellcodeExec от ChoiSG, вдохновили первоначальную концепцию Bluffy.
На данный момент реализованы:
$ python3 bluffy.py -h
⣇⣿⠘⣿⣿⣿⡿⡿⣟⣟⢟⢟⢝⠵⡝⣿⡿⢂⣼⣿⣷⣌⠩⡫⡻⣝⠹⢿⣿⣷
⡆⣿⣆⠱⣝⡵⣝⢅⠙⣿⢕⢕⢕⢕⢝⣥⢒⠅⣿⣿⣿⡿⣳⣌⠪⡪⣡⢑⢝⣇
⡆⣿⣿⣦⠹⣳⣳⣕⢅⠈⢗⢕⢕⢕⢕⢕⢈⢆⠟⠋⠉⠁⠉⠉⠁⠈⠼⢐⢕⢽
⡗⢰⣶⣶⣦⣝⢝⢕⢕⠅⡆⢕⢕⢕⢕⢕⣴⠏⣠⡶⠛⡉⡉⡛⢶⣦⡀⠐⣕⢕
⡝⡄⢻⢟⣿⣿⣷⣕⣕⣅⣿⣔⣕⣵⣵⣿⣿⢠⣿⢠⣮⡈⣌⠨⠅⠹⣷⡀⢱⢕
⡝⡵⠟⠈⢀⣀⣀⡀⠉⢿⣿⣿⣿⣿⣿⣿⣿⣼⣿⢈⡋⠴⢿⡟⣡⡇⣿⡇⡀⢕
⡝⠁⣠⣾⠟⡉⡉⡉⠻⣦⣻⣿⣿⣿⣿⣿⣿⣿⣿⣧⠸⣿⣦⣥⣿⡇⡿⣰⢗⢄
⠁⢰⣿⡏⣴⣌⠈⣌⠡⠈⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣬⣉⣉⣁⣄⢖⢕⢕⢕
⡀⢻⣿⡇⢙⠁⠴⢿⡟⣡⡆⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣵⣵⣿
⡻⣄⣻⣿⣌⠘⢿⣷⣥⣿⠇⣿⣿⣿⣿⣿⣿⠛⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣷⢄⠻⣿⣟⠿⠦⠍⠉⣡⣾⣿⣿⣿⣿⣿⣿⢸⣿⣦⠙⣿⣿⣿⣿⣿⣿⣿⣿⠟
⡕⡑⣑⣈⣻⢗⢟⢞⢝⣻⣿⣿⣿⣿⣿⣿⣿⠸⣿⠿⠃⣿⣿⣿⣿⣿⣿⡿⠁⣠
⡝⡵⡈⢟⢕⢕⢕⢕⣵⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣶⣿⣿⣿⣿⣿⠿⠋⣀⣈⠙
⡝⡵⡕⡀⠑⠳⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠛⢉⡠⡲⡫⡪⡪⡣
Преобразуйте шелл-код в ✨ разные ✨ форматы!
Авторы:
~ Mez0
~ Michael Ranaldo
использование: Bluffy [-h] -b -o -m
необязательные аргументы:
-h, --help показать это справочное сообщение и выйти
-b , --bin Укажите bin-файл для загрузки
-m , --mask Укажите маску для шелл-кода
-x , --xor XOR-применить полезную нагрузку
-p , --preview Предварительный просмотр созданного формата
-pp, --payload_preview Предварительный просмотр полезной нагрузки перед форматированием C
--list Список всех доступных масок
Авторы:
Перед использованием Bluffy необходимо установить следующие компоненты:
sudo apt install python3.9
sudo pip3 install rich
В зависимости от того, будет ли он запускаться на Kali, Ubuntu 18, 19, 20 и так далее, процесс получения и сборки с pcre2.8 может отличаться.
Для нас на Ubuntu разработка велась на:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 21.04
Release: 21.04
Codename: hirsute
Чтобы слинковать libpcre2-8.a, файл .a должен быть помещён в:
/usr/lib/gcc/x86_64-w64-mingw32/10-win32
Что касается получения заголовочных и библиотечных файлов, использовался MSYS2. Но если вы умнее нас, то просто соберите из исходников для Mingw64: https://pcre.org/.
Таким образом, самый простой способ получить и установить — выполнить следующие команды (предварительно проверив архитектуру и т.д.):
sudo apt install mingw-64
sudo wget https://packages.msys2.org/package/mingw-w64-x86_64-pcre2?repo=mingw64 -P /usr/lib/gcc/x86_64-w64-mingw32/10-win32
Чтобы собрать полезную нагрузку, получите ваш бинарный файл. Для этого примера мы использовали calc.bin, который просто загружает calc.exe в качестве доказательства концепции. Поскольку Bluffy стремится обойти только статический анализ с помощью стеганографии, пряча двоичный код внутри внешне безобидного файла, вам потребуется провести дальнейшие исследования, чтобы ваша полезная нагрузка также обходила динамическое обнаружение.
Запустите bluffy, выбрав маску по своему усмотрению и указав ваш .bin-файл:
python ./bluffy.py -b calc.bin -m css -x
Проверьте вашу полезную нагрузку, затем соберите её. Чтобы собрать полезную нагрузку, скопируйте .h-файл, созданный bluffy, переименуйте его в css.c, выполните make для сборки в исполняемый файл, затем протестируйте с помощью прилагаемого каталога examples:
mv css.h examples/css/css.h
cd examples/css
make
Это использует прилагаемый "main.c" для сборки исполняемого файла Windows. Проверьте это, чтобы убедиться. Если вы также использовали calc.bin, вас должно встретить новое окно Calc. Если это так — поздравляем!
Для получения более подробной информации об использовании Bluffy и пошагового описания того, как это работает и как выглядит вывод, ознакомьтесь с нашим блогом.
Вот полный пример:
