Founding は、.bin、.exe、または .dll 形式のシェルコードを処理し、高度な難読化または暗号化の技術を適用して、洗練された実行手法を備えたステルス性の高いバイナリを生成するツールです。
機能
コア機能(すべてのコンパイルで適用)
- 動的 API ハッシュ化
検出回避のため、実行時に API 関数の一意なハッシュ値を生成します。 - IAT カモフラージュ
バイナリの正当性を高めるために、選択した Windows API 関数を呼び出します。 - 最小 CRT
Import Address Table を精密に制御するため、CRT ライブラリを削除します。 - ウォーターマーク
DOS Stub、Checksum、PE セクション、またはファイルオーバーレイにカスタムのウォーターマークを埋め込みます。 - リソースファイル
真正性のため、cleanmgr.exeに似たファイルプロパティを埋め込みます。 - プレアンブル 0xFC 0x48
静的解析を回避するため、シェルコードの先頭にxFCx48を付加します。
暗号化と難読化
- IPv4/IPv6/MAC/UUID 難読化をサポートします。
- XOR、RC4、AES 暗号化を提供します。
- 追加の難読化のためのペイロード・パディングを含みます。
- 実行ごとにランダムな暗号鍵を生成します。
ジェネレーターの種類
- Raw
.binペイロードを直接処理します。 - Donut
AMSI バイパスなしで Donut を使用して.binを作成します。 - Clematis
garble による難読化と圧縮を伴う.binのために Clematis を使用します。 - Powershell-donut
PS2EXE と Donut を使用して.exeを.binに変換します。
実行タイプ
- APC
非同期プロシージャコール(APC)で実行します。 - Early-Bird-Debug
リモートデバッグまたはサスペンドされたプロセスで APC を使用します。 - EnumThreadWindows
EnumThreadWindows のコールバック関数を活用します。 - Local-Mapping-Inject
サスペンドされたスレッドでローカルマッピングを実行します。 - Early-Cascade
ペイロード実行のためにntdll!SE_DllLoadedをフックします。 - Fibers
新しいスレッドを作成せずに実行コンテキストを切り替えます。 - Process-Hypnosis
デバッグされた子プロセスでペイロードを実行し、その後デタッチします。 - Tp-Alloc
スレッドプール API(TpAllocWait/TpSetWait)を使用してシェルコードをキューに入れます。 - Local-Hollowing
PE を複製し、サスペンドされたメインスレッドで実行します。
オプション機能
間接 Syscall
- Hells-Hall
オプションフラグを含め、すべての実装を間接 Syscall(HellsHall)に変更します。 - Syswhispers3
オプションフラグを含め、すべての実装を間接 Syscall(SysWhispers3)に変更します。
コンパイラ
- Clang-LLVM
静的解析を回避するために Clang-LLVM の難読化を使用します。
AMSI バイパス
- Amsi-Opensession
AmsiOpenSessionをパッチして無効な引数を返すようにします。 - Amsi-Scanbuffer
AmsiScanBufferをパッチして無効な引数を返すようにします。 - Amsi-Signature
AmsiSignatureをパッチして無効な文字列を返し、シグネチャ値を破損させます。 - Amsi-Codetrust
WldpQueryDynamicCodeTrustをパッチして無効な引数を返すようにします。
アンフック
- Unhooking-Createfile
CreateFileMappingAでマップされたntdll.dllから、すべての関数のフックを解除します。 - Unhooking-Knowndlls
KnownDlls ディレクトリのntdll.dllから、すべての関数のフックを解除します。 - Unhooking-Debug
新しいデバッグプロセスから新しい NTDLL をコピーし、ntdll.dllからすべての関数のフックを解除します。 - Hookchain
IAT を変更して関数呼び出しを迂回させ、呼び出しをインターセプトして処理できるようにします。
ETW バイパス
- Etw-Eventwrite
EDR テレメトリを無効化するため、EtwEventWriteFull、EtwEventWrite、EtwEventWriteExをパッチします。 - Etw-Trace-Event
EDR テレメトリを無効化するため、NtTraceEventをパッチします。 - Etw-pEventWriteFull
EDR テレメトリを無効化するため、プライベート関数EtwpEventWriteFullをパッチして無効なパラメータを返すようにします。
サンドボックス回避
- Api-Hammering
ランダムなファイルを作成し、ランダムデータを読み書きして、実行を 10 秒遅延させます。 - Delay-Mwfmoex
MsgWaitForMultipleObjectsExを使用して実行を 10 秒遅延させます。 - Fibonacci
フィボナッチ数を計算して実行を 10 秒遅延させます。 - Mouse-Clicks
20 秒間クリックを記録し、クリックが 1 回未満の場合はサンドボックス環境だと判断します。 - Resolution
サンドボックス環境向けに解像度をチェックします。 - Processes
システムで動作しているプロセスが 50 未満かを確認し、サンドボックス環境だと判断します。 - Hardware
プロセッサが 2 未満、RAM が 2GB 未満、マウントされた USB が 2 未満かを確認し、サンドボックス環境だと判断します。
ペイロード制御
- Check-Running
実行ファイルがすでに動作中かを確認し、動作中であれば重複実行を防止します。 - Self-Delete
実行中にペイロードが自己削除するようにします。削除に失敗した場合は、ファイル内容を削除してサイズを 0 バイトに減らします。
その他
- Dll
任意のエクスポート関数名(既定:runme)で DLL を作成し、バックグラウンドでrundll32を実行します。 - Dll-Stealthy
任意のエクスポート関数名(既定:runme)で、よりステルス性の高い DLL を作成します。 - Service
サービスとして実行される実行ファイルを作成します。 - Inflate
ランダムなポルトガル語の単語で実行ファイルを膨張させ、サイズを増やします。 - Sign
証明書で最終的な実行ファイルに署名します。 - No-Window
ターミナルウィンドウを開かずに実行します。 - No-Print
出力を一切表示せずに実行し、実装からすべてのprintfを削除します。 - Decoy
ペイロードと同時に実行されるデコイファイル(例:PDF)を埋め込みます。
ダウンロード&使用方法
翻訳元: https://meterpreter.org/founding-the-next-gen-loader-generator-for-advanced-evasion/
ソース: meterpreter.org