
Konvertiere Shellcode in ✨ verschiedene ✨ Formate!
Bluffy ist ein Dienstprogramm, das in Experimenten verwendet wurde, um Antiviren-Produkte (statisch) zu umgehen, indem Shellcode in realistisch aussehende Datenformate umgewandelt wird.
Proof-of-Concept-Tools wie 0xBoku's Ninja_UUID_Runner und ChoiSG's UuidShellcodeExec inspirierten das ursprüngliche Konzept von Bluffy.
Bisher haben wir implementiert:
$ python3 bluffy.py -h
⣇⣿⠘⣿⣿⣿⡿⡿⣟⣟⢟⢟⢝⠵⡝⣿⡿⢂⣼⣿⣷⣌⠩⡫⡻⣝⠹⢿⣿⣷
⡆⣿⣆⠱⣝⡵⣝⢅⠙⣿⢕⢕⢕⢕⢝⣥⢒⠅⣿⣿⣿⡿⣳⣌⠪⡪⣡⢑⢝⣇
⡆⣿⣿⣦⠹⣳⣳⣕⢅⠈⢗⢕⢕⢕⢕⢕⢈⢆⠟⠋⠉⠁⠉⠉⠁⠈⠼⢐⢕⢽
⡗⢰⣶⣶⣦⣝⢝⢕⢕⠅⡆⢕⢕⢕⢕⢕⣴⠏⣠⡶⠛⡉⡉⡛⢶⣦⡀⠐⣕⢕
⡝⡄⢻⢟⣿⣿⣷⣕⣕⣅⣿⣔⣕⣵⣵⣿⣿⢠⣿⢠⣮⡈⣌⠨⠅⠹⣷⡀⢱⢕
⡝⡵⠟⠈⢀⣀⣀⡀⠉⢿⣿⣿⣿⣿⣿⣿⣿⣼⣿⢈⡋⠴⢿⡟⣡⡇⣿⡇⡀⢕
⡝⠁⣠⣾⠟⡉⡉⡉⠻⣦⣻⣿⣿⣿⣿⣿⣿⣿⣿⣧⠸⣿⣦⣥⣿⡇⡿⣰⢗⢄
⠁⢰⣿⡏⣴⣌⠈⣌⠡⠈⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣬⣉⣉⣁⣄⢖⢕⢕⢕
⡀⢻⣿⡇⢙⠁⠴⢿⡟⣡⡆⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣵⣵⣿
⡻⣄⣻⣿⣌⠘⢿⣷⣥⣿⠇⣿⣿⣿⣿⣿⣿⠛⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣷⢄⠻⣿⣟⠿⠦⠍⠉⣡⣾⣿⣿⣿⣿⣿⣿⢸⣿⣦⠙⣿⣿⣿⣿⣿⣿⣿⣿⠟
⡕⡑⣑⣈⣻⢗⢟⢞⢝⣻⣿⣿⣿⣿⣿⣿⣿⠸⣿⠿⠃⣿⣿⣿⣿⣿⣿⡿⠁⣠
⡝⡵⡈⢟⢕⢕⢕⢕⣵⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣶⣿⣿⣿⣿⣿⠿⠋⣀⣈⠙
⡝⡵⡕⡀⠑⠳⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠛⢉⡠⡲⡫⡪⡪⡣
Wandle Shellcode in ✨ verschiedene ✨ Formate um!
Geschrieben von:
~ Mez0
~ Michael Ranaldo
Verwendung: Bluffy [-h] -b -o -m
optionale Argumente:
-h, --help Zeigt diese Hilfemeldung an und beendet
-b , --bin Gibt die zu ladende Binärdatei an
-m , --mask Gibt die Maske für den Shellcode an
-x , --xor XORt die Nutzlast
-p , --preview Vorschau des erstellten Formats
-pp, --payload_preview Vorschau der Nutzlast vor der C-Formatierung
--list Listet alle verfügbaren Masken auf
Geschrieben von:
Die folgenden Komponenten müssen vor der Verwendung von Bluffy installiert sein:
sudo apt install python3.9
sudo pip3 install rich
Je nachdem, ob es auf Kali, Ubuntu 18, 19, 20 usw. ausgeführt werden soll, kann der Prozess zum Abrufen und Erstellen mit pcre2.8 unterschiedlich sein.
Bei uns auf Ubuntu wurde es entwickelt auf:
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 21.04
Release: 21.04
Codename: hirsute
Um libpcre2-8.a zu verknüpfen, musste die .a-Datei in folgendem Verzeichnis abgelegt werden:
/usr/lib/gcc/x86_64-w64-mingw32/10-win32
Was die Header- und Lib-Dateien betrifft, so wurde MSYS2 verwendet. Aber wenn Sie schlauer sind als wir, dann bauen Sie es einfach aus der Quelle für Mingw64: https://pcre.org/.
Der einfachste Weg, es zu beschaffen und zu installieren, ist daher die Ausführung der folgenden Befehle (nachdem Sie Ihre Architektur usw. überprüft haben):
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
Um eine Nutzlast zu erstellen, besorgen Sie sich Ihre Binärdatei. In diesem Beispiel haben wir calc.bin verwendet, das als Proof of Concept einfach calc.exe lädt. Da Bluffy nur versucht, statische Analysen durch Steganografie zu umgehen, indem es die Binärdatei in einer ansonsten harmlosen Datei versteckt, müssen Sie weitere Recherchen durchführen, um sicherzustellen, dass Ihre Nutzlast auch der dynamischen Erkennung entgeht.
Führen Sie bluffy aus, wählen Sie eine Maske Ihrer Wahl und geben Sie Ihre .bin-Datei an:
python ./bluffy.py -b calc.bin -m css -x
Überprüfen Sie Ihre Nutzlast und bauen Sie sie dann. Um Ihre Nutzlast zu bauen, kopieren Sie die von Bluffy erstellte .h-Datei, benennen Sie sie in css.c um, führen Sie make aus, um sie in eine ausführbare Datei zu bauen, und testen Sie sie dann mit dem enthaltenen Beispiele-Verzeichnis:
mv css.h examples/css/css.h
cd examples/css
make
Dies verwendet die enthaltene "main.c", um eine Windows-Ausführbare zu bauen. Testen Sie dies, um zu bestätigen. Wenn Sie ebenfalls calc.bin verwendet haben, sollten Sie von einem neuen Calc-Fenster begrüßt werden. Wenn ja, herzlichen Glückwunsch!
Weitere Details zur Verwendung von Bluffy und eine Schritt-für-Schritt-Erklärung, wie es funktioniert und wie die Ausgabe aussieht, finden Sie in unserem Blog.
Hier ist ein vollständiges Beispiel:
