
Converti shellcode in ✨ diversi ✨ formati!
Bluffy è un'utilità utilizzata in esperimenti per bypassare i prodotti antivirus (staticamente) formattando shellcode in formati di dati dall'aspetto realistico.
Strumenti proof-of-concept, come 0xBoku di Ninja_UUID_Runner e ChoiSG di UuidShellcodeExec, hanno ispirato il concetto iniziale per Bluffy.
Finora, abbiamo implementato:
$ 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
Scritto da:
I seguenti elementi devono essere installati prima di utilizzare Bluffy:
sudo apt install python3.9
sudo pip3 install rich
A seconda che venga eseguito su Kali, Ubuntu 18, 19, 20 e così via, il processo per ottenere e compilare con pcre2.8 potrebbe essere diverso.
Per noi su Ubuntu, è stato sviluppato su:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 21.04
Release: 21.04
Codename: hirsute
Per collegare libpcre2-8.a, il file .a doveva essere incluso all'interno di:
/usr/lib/gcc/x86_64-w64-mingw32/10-win32
Per quanto riguarda l'ottenimento dei file header e lib, è stato utilizzato MSYS2. Ma se sei più intelligente di noi, allora fallo direttamente dalla sorgente per Mingw64: https://pcre.org/.
Il modo più semplice per acquisire e installare è eseguire i seguenti comandi (dopo aver ricontrollato la tua architettura ecc.):
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
Per costruire un payload, ottieni il tuo file binario. Per questo esempio, abbiamo usato calc.bin, che carica semplicemente calc.exe come prova di concetto. Poiché Bluffy cerca solo di eludere l'analisi statica usando la steganografia, nascondendo il binario all'interno di un file altrimenti innocuo, dovrai fare ulteriori ricerche per assicurarti che il tuo payload eluda anche il rilevamento dinamico.
Esegui bluffy, scegliendo una maschera a tua scelta e fornendo il tuo file .bin:
python ./bluffy.py -b calc.bin -m css -x
Controlla il tuo payload, poi costruiscilo. Per costruire il tuo payload, copia il file .h creato da bluffy, rinominalo css.c, esegui make per compilarlo in un eseguibile, quindi testalo usando la directory di esempi inclusa:
mv css.h examples/css/css.h
cd examples/css
make
Questo utilizzerà il file "main.c" incluso per costruire un eseguibile Windows. Testalo per confermare. Se hai usato anche calc.bin, dovresti essere accolto da una nuova finestra di Calc che si apre. Se è così, congratulazioni!
Per maggiori dettagli sull'uso di Bluffy e una guida su come funziona e come appare l'output, dai un'occhiata al nostro blog.
Ecco un esempio completo:
