
オフェンシブC#ツール集
これは、運用時に使用するために私が作成した C# ツールと POC のコレクションです。各プロジェクトは外部ライブラリを使用しないように設計されています。各プロジェクトの .SLN を Visual Studio で開き、「Release」としてコンパイルしてください。
| プロジェクト | 説明 | 最小 .NET バージョン |
|---|---|---|
| AbandonedCOMKeys | 使用されていない COM キー (特に InprocServer32) を列挙します。永続化に有用で、場合によっては欠落した場所に書き込み、rundll32.exe -sta {CLSID} で呼び出すことができます。この手法は、@bohops によるこの記事で参照されています。 | 4.0 |
| COMHunter | WMI を使用してシステム上の LocalServer32 および InProc32 キーに設定されている COM サーバーを列挙します | 4.0 |
| CredPhisher | CredUIPromptForWindowsCredentials WinAPI 関数を使用して、現在のユーザーに資格情報の入力を促します。ユーザーに表示されるメッセージテキストを指定する引数をサポートしています。 | 3.5 |
| DriverQuery | システム上のドライバーの詳細を収集し、オプションで Microsoft によって署名されていないもののみを検索するフィルターをかけます | 3.5 |
| EncryptedZIP | ディレクトリまたはファイルを圧縮し、その後、指定されたキーを使用して AES256 CFB で ZIP ファイルを暗号化します。このアセンブリは、RtlZeroMemory を使用してメモリからキーを消去します。付属の Decrypter プログラムを使用してアーカイブを復号してください。 | 3.5 |
| ETWEventSubscription | WMI イベントサブスクリプションに似ていますが、Windows イベントトレーシング (ETW) を活用します。システム上でイベントが発生したとき (現在は、ユーザーがログインしたとき、または指定されたプロセスが開始されたとき) に、DoEvil() メソッドが実行されます。 | 4.6 |
| GPSCoordinates | 位置情報サービスが有効な場合、システムの GPS 座標 (現在 1km 以内の精度) を追跡します。現在は Windows 10 で動作しますが、すべてのバージョン 7 以上をカバーすることを目指しています。 | 4.0 |
| HijackHunter | ターゲットの PE ヘッダーを解析して、ハイジャックされやすいリンクされた DLL を見つけます。検出された各ハイジャックの機会に対する理由と悪用テクニックを提供します | 4.0 |
| HookDetector | 現在のプロセスでフックされたネイティブ API 関数を検出し、EDR の存在を示します | 4.0 |
| ImplantSSP | システム上にユーザーが提供した Security Support Provider (SSP) DLL をインストールします。これはシステム起動時に LSA によって読み込まれます。DLL は SpLsaModeInitialize をエクスポートする必要があります。 Install-SSP (by @mattifestation) に触発されました。 | 3.5 |
| InspectAssembly | ターゲットの .NET アセンブリの CIL を検査し、デシリアライザーへの呼び出しや .NET リモーティングの使用を確認して、潜在的な権限昇格のトリアージを支援します。 | 4.0 |
| JunctionFolder | Vault 7 のリークで説明されているように、Windows アクセサリのスタートアップフォルダにジャンクションフォルダを作成します。起動時またはユーザーがディレクトリを参照したときに、参照された DLL が verclsid.exe によって medium integrity で実行されます。 | 3.5 |
| MockDirUACBypass | モックの信頼されたディレクトリ C:\Windows \System32\ を作成し、自動昇格する Windows 実行可能ファイルをモックディレクトリに移動します。適切な関数をエクスポートするユーザー提供の DLL がドロップされ、実行可能ファイルが実行されると、DLL が読み込まれて high integrity で実行されます。この手法は @ce2wells によって発見され、この記事で概説されています。 | 3.5 |
| PhantomService | 組み込みの Windows ツールでは簡単に削除できない非 ASCII サービスを検索して削除します。 参考 | 4.0 |
| SessionSearcher | 接続されているすべてのドライブを検索して PuTTY 秘密鍵と RDP 接続ファイルを見つけ、関連する詳細を解析します。 SessionGopher (by @arvanaghi) に基づいています。 | 4.0 |
| UnquotedPath | System32/SysWow64 にない引用符で囲まれていないサービスパスのリストを出力し、そこに PE を埋め込むことができます。 ATT&CK リファレンス | 3.5 |