PlumberKit — Windows Named Pipes 攻撃/診断ツールキット
概要
PlumberKit は、Windows の名前付きパイプ(Named Pipes)に関連した技術を学び、実験するために作られた PowerShell スクリプトのコレクションです。作者は「Windows Pipes」のエクスプロイト手法を学ぶ過程で、EDR に検出されにくい実装を目指してスクリプトを作成したと明記しています。読みやすい PowerShell で書かれ、Windows 10/11 上での動作確認がなされており、現状は PlumberKit-depose.ps1、PlumberKit-keeker.ps1、PlumberKit-twins.ps1 の3本を収録。今後機能追加やツールの拡張が予定されている開発途上のツールキットです。
リポジトリの統計情報
- スター数: 6
- フォーク数: 0
- ウォッチャー数: 6
- コミット数: 7
- ファイル数: 4
- メインの言語: PowerShell
主な特徴
- Windows 名前付きパイプを利用する PowerShell スクリプト群(ペネトレーションテスト向け)
- EDR(Kaspersky v.12)での動作確認があると明記
- 軽量かつスクリプトベースで容易に動作検証が可能
- 将来的な拡張を見据えた設計・学習用リポジトリ
技術的なポイント
PlumberKit が扱う「Windows Pipes(名前付きパイプ)」は、プロセス間通信(IPC)の一形態であり、正規の OS 機能を利用するため検出が困難になり得ます。攻撃的なユースケースでは、パイプを介した権限の奪取(Impersonation)、ハンドルの継承やリダイレクトを利用したコード実行、プロセス間での認証・トークン受け渡しといったテクニックが用いられます。PowerShell 実装では、.NET や P/Invoke を使って CreateNamedPipe、ConnectNamedPipe、ImpersonateNamedPipeClient、SetNamedPipeHandleState 等の API を呼び出すことが多く、スクリプト内でバッファ処理や時間待ち、非同期接続の扱いを組み合わせることで安定した IPC を構築します。
EDR 回避の観点では、PlumberKit の作者は「EDR にブロックされない」ことを目標にしており、これには以下のような方針が考えられます:外部バイナリを落とさず PowerShell のみで完結させる(ファイルレス)、正規 API 呼び出しを利用して監視検知のシグネチャを回避、低ノイズな動作(短時間で大きな異常イベントを発生させない)、および標準的なプロセス・権限コンテキストで動作するなど。しかし、これらは EDR のルール次第で容易に検出され得るため、防御側はパイプ作成・接続・インパーソネーションの挙動を監査する必要があります。
具体的には、次の観点が注目点です:名前付きパイプの命名規則(ドメインやサービス名を模倣するものは怪しい)、パイプのセキュリティ記述子(不適切に緩い DACL はリスク)、Impersonate 系 API の呼び出し頻度、PowerShell が CreateNamedPipe 等の低レベル API を呼ぶパターン、異常に短い遅延での大量接続。PlumberKit のスクリプトは学習・検証向けであり、攻撃に転用可能な技術を示すため、セキュリティ担当者はこれを用いた検査・ルール検証を行うことで防御の強化が可能です。
推奨される検知・緩和策としては、Sysmon の拡張ルール(パイプ操作の監視)、EDR の振る舞い検知ルール強化、プロセスインジェクションや IMpersonate の異常な組み合わせのアラート化、堅牢な DACL ポリシー適用などが挙げられます。PlumberKit はこうした検出ルールのテストケースとしても有用です。
プロジェクトの構成
主要なファイルとディレクトリ:
- PlumberKit-depose.ps1: file
- PlumberKit-keeker.ps1: file
- PlumberKit-twins.ps1: file
- README.md: file
まとめ
Windows の名前付きパイプを題材にした学習・検証向け PowerShell ツールで、EDR 回避や検出ルールのテストに有用。
リポジトリ情報:
- 名前: PlumberKit
- 説明: 説明なし
- スター数: 6
- 言語: PowerShell
- URL: https://github.com/CVEshnik/PlumberKit
- オーナー: CVEshnik
- アバター: https://avatars.githubusercontent.com/u/222045552?v=4
READMEの抜粋:
PlumberKit
introduction
While learning about “Windows Pipes” exploitation, I decided to create several scripts that would not be blocked by EDR, for use in penetration testing. The scripts have been tested on Windows 10/11 operating systems, with Kaspersky Endpoint Security v.12 acting as the EDR. Currently, there are only 3 scripts, but I plan to expand “PlumberKit” in the future by adding new tools …