Bluffyは、シェルコードを現実的なデータ形式にフォーマットすることで、アンチウイルス製品を(静的に)バイパスする実験で使用されたユーティリティです。
0xBoku氏のNinja_UUID_RunnerやChoiSG氏のUuidShellcodeExecなどの概念実証ツールが、Bluffyの初期コンセプトに影響を与えました。
現在までに、以下を実装しています:
$ 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
作成者:
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.exeをロードするだけのcalc.binを使用しました。Bluffyはステガノグラフィを使用して静的分析を回避することのみを目的としており、バイナリを無害なファイル内に隠すため、ペイロードが動的検出も回避できるようにするには、さらなる調査が必要です。
bluffyを実行し、任意のマスクを選択して.binファイルを指定します:
python ./bluffy.py -b calc.bin -m css -x
ペイロードを確認し、それからビルドします。ペイロードをビルドするには、Bluffyが作成した.hファイルをコピーし、css.cにリネームし、makeを実行して実行可能ファイルにビルドし、付属のexamplesディレクトリを使用してテストします:
mv css.h examples/css/css.h
cd examples/css
make
これにより、付属の"main.c"を使用してWindows実行可能ファイルがビルドされます。テストして確認してください。同じくcalc.binを使用した場合、新しい電卓ウィンドウが開きます。そうなれば、おめでとうございます!
Bluffyの使用方法や動作、出力の詳細については、ブログをご覧ください。
以下は完全な例です:
