
Convertissez du shellcode en ✨ différents ✨ formats !
Bluffy est un utilitaire qui a été utilisé dans des expériences pour contourner (statiquement) les produits antivirus en formatant du shellcode dans des formats de données d'apparence réaliste.
Des outils de preuve de concept, tels que Ninja_UUID_Runner de 0xBoku et UuidShellcodeExec de ChoiSG, ont inspiré le concept initial de Bluffy.
Jusqu'à présent, nous avons implémenté :
$ python3 bluffy.py -h
⣇⣿⠘⣿⣿⣿⡿⡿⣟⣟⢟⢟⢝⠵⡝⣿⡿⢂⣼⣿⣷⣌⠩⡫⡻⣝⠹⢿⣿⣷
⡆⣿⣆⠱⣝⡵⣝⢅⠙⣿⢕⢕⢕⢕⢝⣥⢒⠅⣿⣿⣿⡿⣳⣌⠪⡪⣡⢑⢝⣇
⡆⣿⣿⣦⠹⣳⣳⣕⢅⠈⢗⢕⢕⢕⢕⢕⢈⢆⠟⠋⠉⠁⠉⠉⠁⠈⠼⢐⢕⢽
⡗⢰⣶⣶⣦⣝⢝⢕⢕⠅⡆⢕⢕⢕⢕⢕⣴⠏⣠⡶⠛⡉⡉⡛⢶⣦⡀⠐⣕⢕
⡝⡄⢻⢟⣿⣿⣷⣕⣕⣅⣿⣔⣕⣵⣵⣿⣿⢠⣿⢠⣮⡈⣌⠨⠅⠹⣷⡀⢱⢕
⡝⡵⠟⠈⢀⣀⣀⡀⠉⢿⣿⣿⣿⣿⣿⣿⣿⣼⣿⢈⡋⠴⢿⡟⣡⡇⣿⡇⡀⢕
⡝⠁⣠⣾⠟⡉⡉⡉⠻⣦⣻⣿⣿⣿⣿⣿⣿⣿⣿⣧⠸⣿⣦⣥⣿⡇⡿⣰⢗⢄
⠁⢰⣿⡏⣴⣌⠈⣌⠡⠈⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣬⣉⣉⣁⣄⢖⢕⢕⢕
⡀⢻⣿⡇⢙⠁⠴⢿⡟⣡⡆⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣵⣵⣿
⡻⣄⣻⣿⣌⠘⢿⣷⣥⣿⠇⣿⣿⣿⣿⣿⣿⠛⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣷⢄⠻⣿⣟⠿⠦⠍⠉⣡⣾⣿⣿⣿⣿⣿⣿⢸⣿⣦⠙⣿⣿⣿⣿⣿⣿⣿⣿⠟
⡕⡑⣑⣈⣻⢗⢟⢞⢝⣻⣿⣿⣿⣿⣿⣿⣿⠸⣿⠿⠃⣿⣿⣿⣿⣿⣿⡿⠁⣠
⡝⡵⡈⢟⢕⢕⢕⢕⣵⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣶⣿⣿⣿⣿⣿⠿⠋⣀⣈⠙
⡝⡵⡕⡀⠑⠳⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠛⢉⡠⡲⡫⡪⡪⡣
Convert shellcode into ✨ different ✨ formats!
Written by:
~ Mez0
~ Michael Ranaldo
usage: Bluffy [-h] -b -o -m
optional arguments:
-h, --help show this help message and exit
-b , --bin Specify bin file to load
-m , --mask Specify the mask for the shellcode
-x , --xor XOR the payload
-p , --preview Preview the created format
-pp, --payload_preview Preview the payload prior to C formatting
--list List all the available masks
Écrit par :
Les éléments suivants doivent être installés avant d'utiliser Bluff :
sudo apt install python3.9
sudo pip3 install rich
Selon qu'il soit exécuté sur Kali, Ubuntu 18, 19, 20, etc., le processus d'obtention et de compilation avec pcre2.8 peut être différent.
Pour nous sur Ubuntu, cela a été développé sur :
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 21.04
Release: 21.04
Codename: hirsute
Afin de lier libpcre2-8.a, le fichier .a devait être inclus dans :
/usr/lib/gcc/x86_64-w64-mingw32/10-win32
Pour obtenir les fichiers d'en-tête et de bibliothèque, MSYS2 a été utilisé. Mais si vous êtes plus malins que nous, faites-le simplement à partir des sources pour Mingw64 : https://pcre.org/.
La manière la plus simple d'acquérir et d'installer est donc d'exécuter les commandes suivantes (après avoir vérifié votre architecture, etc.) :
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
Pour construire une charge utile, obtenez votre fichier binaire. Pour cet exemple, nous avons utilisé calc.bin, qui charge simplement calc.exe comme preuve de concept. Comme Bluffy cherche uniquement à contourner l'analyse statique à l'aide de la stéganographie, en cachant le binaire dans un fichier par ailleurs anodin, vous devrez effectuer des recherches supplémentaires pour vous assurer que votre charge utile échappe également à la détection dynamique.
Exécutez bluffy, en choisissant un masque de votre choix et en fournissant votre fichier .bin :
python ./bluffy.py -b calc.bin -m css -x
Vérifiez votre charge utile, puis construisez-la. Pour construire votre charge utile, copiez le fichier .h créé par bluffy, renommez-le css.c, exécutez make pour le compiler en exécutable, puis testez à l'aide du répertoire d'exemples inclus :
mv css.h examples/css/css.h
cd examples/css
make
Cela utilisera le "main.c" inclus pour construire un exécutable Windows. Testez-le pour confirmer. Si vous avez également utilisé calc.bin, vous devriez voir apparaître une nouvelle fenêtre Calc. Si c'est le cas, félicitations !
Pour plus de détails sur l'utilisation de Bluffy et une présentation de son fonctionnement et de l'apparence du résultat, consultez notre blog.
Voici un exemple complet :
