
laZzzyでラップされたPEバイナリから、シグネチャマッチングとRIP相対アドレス解決により、AES-CBC/XORで難読化されたシェルコードを実行やエミュレーションなしで静的に抽出・復号します。
laZzzyでラップされたPEバイナリから、動的実行、デバッグ、エミュレーションを必要とせずに暗号化されたシェルコードを抽出するための静的解析ツール。
laZzzy Dumpは、AES-CBC暗号化とXOR難読化を組み合わせて使用するオープンソースのシェルコードローダーであるlaZzzyでコンパイルされたバイナリから、シェルコードを静的に抽出することで解析を支援するマルウェア解析ツールです。
多段階のマルウェアチェーンを含むインシデントレスポンス調査では、laZzzyペイロードを手動で復号するのは面倒で時間がかかります。このツールは以下の手順でプロセスを自動化します:
laZzzyは以下を含む完全なWindows PE実行ファイルを生成します:
laZzzyによってコンパイルされたAESDecrypt関数には、認識可能な命令シーケンスが含まれています:
このツールはバイナリをスキャンしてこのパターンを探し、逆アセンブラを必要とせずに関数を特定します。
関数が見つかると、ツールはLEAおよびMOV命令からオペランドを抽出し、RIP相対アドレスを解決して以下を復元します:
抽出された資材は以下を使用して復号されます:
結果は、さらなる解析の準備が整った生のシェルコードです。
pip install pefile pycryptodome
./laZzzy_dump.py -n <path_to_lazzy_binary>
./laZzzy_dump.py -n malware.exe
ツールは以下を出力します:
<binary_path>_dumpedに出力[+] Processing malware.exe
[+] Found AESDecrypt function: Virtual Address:0x140026db0 File Offset:0x2db0
[+] Key:
[+] 0002f010 48 c2 f4 a1 12 34 56 78 9a bc de f0 11 22 33 44 |H..q...x......"3D|
[+] IV:
[+] 0002f020 55 66 77 88 99 aa bb cc dd ee ff 00 11 22 33 44 |Ufgw............"3D|
[+] XOR Key:
[+] 0002f030 aa bb cc dd ee ff 00 11 22 33 44 55 66 77 88 99 |......"3DUfw....|
[+] Writing shellcode to malware.exe_dumped
このツールは、さまざまなビルド構成とペイロードタイプを持つ、独立して生成された複数のlaZzzyサンプルに対して検証されています。シグネチャパターンは、これらのサンプル全体で誤検知なくAESDecrypt関数を正常に特定します。
このツールは、教育および許可されたセキュリティ研究目的でのみ提供されています。コンピュータシステムへの不正アクセスは違法です。所有しているシステム、またはテストの明示的な許可を得ているシステムでのみ使用してください。