Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
EDRPrison — 正当なWFPコールアウトドライバーを活用して、EDRエージェントがテレメトリーを送信するのを防ぐ | Kitploit
ツール/GitHubGitHub/senzee1984/edrprison
IDS/IPS回避ポストエクスプロイトネットワークセキュリティレッドチーミング敵対的攻撃
GitHubsenzee1984/edrprison

EDRPrison

正当なWFPコールアウトドライバーを活用して、EDRエージェントがテレメトリーを送信するのを防ぐ

リポジトリを見る
4794632年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

EDRPrison

共著者: @oops4git(https://github.com/oops4git)

EDRPrison は、正規の WFP コールアウトドライバである WinDivert を活用して、EDR システムを効果的に沈黙させます。Shutter、FireBlock、EDRSilencer などのツールから着想を得ており、このプロジェクトはネットワークベースの回避技術に焦点を当てています。先行ツールとは異なり、EDRPrison は組み込みの WFP のみに依存するのではなく、外部の正規 WFP コールアウトドライバをインストールして読み込みます。さらに、EDR プロセスやその実行ファイルと直接やり取りすることなく、ランタイムフィルタを動的に追加して、EDR プロセスからの送信トラフィックをブロックします。

要約すると、EDRPrison には以下の主要な特徴と機能があります。

  • 正規の WFP コールアウトドライバ: 正規の WFP コールアウトドライバを利用して、良性(ベニン)のプロファイルを維持しながら機能を拡張します。
  • EDR プロセス検出: 事前定義されたプロセス名に基づいて、実行中の EDR プロセスを検索します。
  • パケット識別: EDR プロセスから発信されたパケットを識別します。
  • 動的フィルタ追加: パケットの送信元プロセスに基づいて WFP フィルタを動的に追加します。
  • 非干渉アプローチ: EDR プロセスやその実行ファイルとの直接的なやり取りを回避し、ステルス性を確保して検出リスクを低減します。

詳細な技術情報については、以下の記事を参照してください: https://winslow1984.com/books/malware/page/edrprison-borrow-a-legitimate-driver-to-mute-edr-agent

コンポーネント

EDRPrison を正常に実行するには、昇格された特権が必要です。EDRPrison は以下の 3 つのコンポーネントで構成されています。

  • EDRPrison: メインプログラムとその依存ファイルです。初回実行時に WinDivert ドライバをインストールします。
  • WinDivert64.sys: 署名付き WFP コールアウトドライバです。
  • WinDivert.dll: WinDivert プロジェクトのコンポーネントです。

利点と改善点

EDRPrison は、先行ツールに対していくつかの拡張と改善を提供し、ネットワークベースの EDR 回避のための、より堅牢でステルス性の高いツールとなっています。

  1. EDRPrison は、EDR プロセスの実行ファイルに静的な WFP フィルタを追加する代わりに、パケットの送信元プロセスに基づいてランタイム WFP フィルタを動的に追加します。
  • EDR プロセスや EDR 実行ファイルへのハンドル取得を回避し、検出リスクと EDR システムへの干渉を低減します。
  • 正規の WFP コールアウトドライバを読み込むことで、EDRPrison は良性のプロファイルを維持しながら機能を拡張します。
  • 既知の問題

    1. 現在、EDRPrison は C# で書かれており、複数のファイルをディスク上に配置する必要があるため、ステルス性が損なわれます。メインプログラムを完全にメモリ内で実行できるように C++ で再実装し、ステルス性を高める計画です。
    2. プログラムの実行から、一部の EDR プロセスのネットワーク接続が最初にブロックされるまでの間に遅延があります。この遅延により、最初の数秒間にテレメトリがクラウドサーバへ送信される可能性があります。即時の傍受とブロックを保証するため、この問題の解決に取り組んでいます。

    テスト例

    利用可能なリソースの制約から、これまで物理サーバ上で Elastic Endpoint と Microsoft Defender for Endpoint (MDE) に対して EDRPrison をテストしました。

    Elastic Endpoint と MDE に関連するプロセスは、ソースコードにハードコードされています。テスト中、メインプログラムも WinDivert もセキュリティシステムに検出されませんでした。

    Mimikatz などの一般的なマルウェアサンプルをいくつかテストしました。インターネット接続がない場合でも、EDR システムはハッシュベースのシグネチャなどの基本的な検出機能を保持しているため、これらのサンプルは依然として検出される可能性があります。マルウェア実行後、パケット数が増加し、それらにアラートデータが含まれていることを示していました。

    image

    一部の検出はローカルで発生しますが、EDR パネルには表示されません。インターネット接続がない場合、EDR システムは機械学習やクラウドコンピューティングなどの高度な機能を活用して、より巧妙なマルウェア攻撃を防ぐことができません。

    image

    image

    他の EDR に対するテスト

    以下のコードスニペットを変更して、さらに多くの EDR プロセスをハードコードします。

    root@kitploit:~
            static void initData()
            {
                processDictionary.TryAdd("MsMpEng.exe", 1);
                processDictionary.TryAdd("MsSense.exe", 1);
                processDictionary.TryAdd("SenseIR.exe", 1);
                processDictionary.TryAdd("SenseNdr.exe", 1);
                processDictionary.TryAdd("SenseCncProxy.exe", 1);
                processDictionary.TryAdd("SenseSampleUploader.exe", 1);
                processDictionary.TryAdd("elastic-endpoint.exe", 1);
                processDictionary.TryAdd("elastic-agent.exe", 1);
            }
    

    検出と緩和策

    以下の方法を使用して、EDRPrison の使用を検出または緩和できます。ただし、環境によっては、これらの検出の一部が誤検知(FP)を引き起こす可能性があります。

    ドライバ読み込みイベント

    WinDivert ドライバがシステムにまだインストールされていない場合、EDRPrison は初回実行時にコールアウトドライバをインストールします。OS とテレメトリデータの両方がこのイベントを記録します。

    WinDivert ファイルの存在

    EDRPrison および WinDivert に依存する他のプログラムは、ディスク上に WinDivert64.sys と WinDivert.dll が存在する必要があります。これらのファイルを監視することで、そのようなプログラムの検出に役立ちます。

    WinDivert 使用検出ツール

    WinDivertTool などのツールは、現在 Windows フィルタリングプラットフォーム (WFP) を利用しているプロセスを検出できます。

    image

    EDR プロセスに対するパケット破棄/ブロックアクション

    Elastic には、セキュリティソフトウェアのプロセスに対するパケット破棄またはブロックアクションを識別できる検出 ルール があり、これは EDRPrison の存在を示す可能性があります。

    登録済み WFP プロバイダー、フィルタ、コールアウトの確認

    WFPExplorer ツールは、管理者がアクティブな WFP セッション、登録済みコールアウト、およびフィルタを確認するのに役立ちます。

    image

    image

    image

    image

    Adminless(管理者権限なし)

    将来の機能として、ドライバインストールに対する追加の保護を追加し、WinDivert などのドライバの不正使用に対するセキュリティをさらに強化する可能性があります。

    検出を回避するレッドチーム戦略

    レッドチームの観点から、環境のセキュリティ設定に応じて、前述の検出を回避するためにいくつかの戦略を採用できます。

    WinDivert の代替手段を探す

    環境内で WinDivert が悪意のあるものと見なされている場合、代替の署名付きオープンソースドライバを使用できます。これらの代替ドライバは、悪意のある使用の記録が少なく、パケットの傍受、再注入、その他の操作技術を引き続きサポートしている必要があります。

    インストール済みまたは組み込みの WFP コールアウトドライバを再利用する

    外部ドライバが承認なしでは許可されていない環境では、インストール済みまたは組み込みの WFP コールアウトドライバをリバースエンジニアリングすることは困難ですが、実行可能です。そのコールアウト関数を再利用することで、レッドチームは既存のドライバを活用できます。多くのセキュリティソフトウェアソリューションには、転用できる独自の WFP コールアウトドライバが含まれています。

    傍受したパケットに対するアクションを変更する

    傍受したパケットをブロックまたは破棄する代わりに、レッドチームはそれらをリダイレクトまたはプロキシ経由で転送できます。この方法は、パケットの破棄やブロックアクションに焦点を当てた検出ルールを回避しつつ、EDR プロセスに対する望ましい干渉を実現できます。

    クレジット

    以下のリソースは、私の研究において大いに刺激と助けを与えてくれました。すべての著者に感謝します:

    https://github.com/netero1010/EDRSilencer

    https://github.com/dsnezhkov/shutter

    https://www.mdsec.co.uk/2023/09/nighthawk-0-2-6-three-wise-monkeys/

    https://github.com/amjcyber/EDRNoiseMaker

    https://www.securityartwork.es/2024/06/17/edr-silencer-2/

    https://windowsir.blogspot.com/2024/01/edrsilencer.html

    https://github.com/TechnikEmpire/HttpFilteringEngine

    https://reqrypt.org/windivert.html

    https://learn.microsoft.com/en-us/defender-cloud-apps/network-requirements

    https://learn.microsoft.com/en-us/defender-endpoint/configure-network-connections-microsoft-defender-antivirus

    https://github.com/microsoft/windows-driver-samples/tree/main/network/trans/WFPSampler

    https://github.com/TechnikEmpire/CitadelCore

    https://github.com/TechnikEmpire/HttpFilteringEngine

    ツールをダウンロード