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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Trawler — インシデントレスポンダーが潜在的な敵対者の永続化メカニズムを発見するのに役立つPowerShellスクリプト。 | Kitploit
ツール/GitHubGitHub/joeavanzato/trawler
防御ツール永続化メカニズムフォレンジックデジタルフォレンジックインシデントレスポンス
GitHubjoeavanzato/trawler

Trawler

インシデントレスポンダーが潜在的な敵対者の永続化メカニズムを発見するのに役立つPowerShellスクリプト。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Windowsの永続化を浚う

これは何ですか?

Trawlerは、Windowsホスト上の侵害の可能性を示す指標(IOC)を発見するために設計されたPowerShellスクリプトです。主に、スケジュールタスク、サービス、レジストリ変更、スタートアップ項目、バイナリ変更などを含む永続化メカニズムに焦点を当てています。

現在、TrawlerはMITREやAtomic Red Teamで特に挙げられている永続化手法のほとんどを検出でき、定期的にさらなる検出が追加されています。

主な機能

  • さまざまな永続化手法(後述)についてWindows OSをスキャン
  • MITREテクニックと調査開始メタデータを含むCSV出力
  • 分析と修復のガイダンスドキュメント(https://github.com/joeavanzato/Trawler/wiki/Analysis-and-Remediation-Guidance)
  • 各検出に対する動的リスク割り当て
  • Windows 10/Server 2012|2016|2019|2022にわたる一般的なWindows構成のための組み込み許可リスト(ノイズ低減)
  • ランタイム時に動的許可リストとして使用するために、'ゴールデン'エンタープライズイメージ(スナップショット)から永続化メタデータを取得
  • ドライブ再ターゲットによるマウントされたディスクイメージの分析

使用方法

管理者権限のPowerShellまたはcmdプロンプトからtrawler.ps1をダウンロードして実行するだけです。検出結果はコンソールに表示されると同時に、現在の作業ディレクトリにCSV('detections.csv')として書き込まれます。生成されたCSVには、検出名、ソース、リスク、メタデータ、および関連するMITREテクニックが含まれます。

または、管理者権限のPowerShellターミナルから次のワンライナーを使用します。

root@kitploit:~
iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/joeavanzato/Trawler/main/trawler.ps1'))

一部の検出には、デフォルトのWindows構成(10/2016/2019/2022)からのノイズを除去するための組み込み許可リストがあります(予想されるスケジュールタスク、サービスなど)。もちろん、攻撃者がこれらを直接ハイジャックし、デフォルトのOSプロセスとして詳細に偽装することは常に可能です。巧妙な敵対者に対処する際は、複数の分析・検出方法を使用するよう注意してください。

追加の検出の例やアイデアがあれば、関連する技術的詳細や参照とともにIssueまたはPRを遠慮なく提出してください。コードベースは現在少し乱雑ですが、時間をかけて整理される予定です。

また、明らかな誤検出を特定した場合は、GitHubでIssueまたはPRを開いてお知らせください。その主な原因は、非標準のCOM、サービス、またはタスクである可能性が高いです。

CLIパラメータ

root@kitploit:~
-scanoptions : Tab-through for possible detections and select a sub-set using comma-delimited terms (eg. .\trawler.ps1 -scanoptions Services,Processes) or skip to do all detections
-quiet : Suppress Detection output to console
-snapshot : Path to a previous trawler JSON output to use as an allow-list.
-outpath : Define a custom file-path for saving detection output to (defaults to "$PSScriptRoot\detections.csv")
-drivetarget : Define the variable for a mounted target drive (eg. .\trawler.ps1 -targetdrive "D:") - (defaults to local system)
-daysago : Define how many 'days back' we want to take into consideration for time-based detections (defaults to 45)
-hashmode : Define which hashing algorithm we want to use for supported detections - supports sha1, md5 or sha256 (defaults to sha1)
-evtx : Enable creation of Event Log Source and Writing of Detections to Application event log under Source=trawler with EID=9001 (default is disabled)

PersistenceSniperとの違いは何ですか?

PersistenceSniperは素晴らしいツールです。これまでも頻繁に使用してきましたが、これらのユーティリティにはいくつかの重要な違いがあります。

  • trawlerは(現時点では)ローカルユーティリティです。ただし、ループでラップしてWinRM/PowerShellセッションを使用してリモートホストで実行することも簡単にできます。
  • trawlerは、多くの「ノイジー」な検出に対して許可リストを実装しており、Windowsのデフォルト構成(10/2016/2019/2022)から予想される検出を除去するのに役立ちます。これらは常に更新されています(PSも同様に行っています)。
    • PersistenceSniperは(大部分において)許可リストを一切含んでいないため、サービス、スケジュールタスク、一般的なCOM DLLスキャンなどの項目を考慮する際に、より多くのノイズが発生します。
  • trawlerの出力は簡略化されています。各検出に対して、検出名、リスク、ソース、MITREテクニック、メタデータのみが提供され、アナリストの永続化ハンティングの取り組みを迅速に開始できるようにします。これは諸刃の剣です。
  • 多くのチェックで正規表現を使用して、スキャンしたファイル内容、レジストリ値など、さまざまな重要な領域で「不審な」キーワードやパターンを検出します。これにより柔軟性は向上しますが、誤検出率が高くなる可能性もあります。
  • trawlerは「ドライブ再ターゲット」をサポートしており、解析マシンにマウントされたデッドボックスをチェックできます。

全体として、これらのツールは非常に似ていますが、問題に対してわずかに異なるアプローチを取っています。PersistenceSniperはすべての情報をアナリストに提供してレビューさせるのに対し、Trawlerは返される結果を敵対者の永続化メカニズムである可能性が高いものだけに制限しようとします。そのため、敵対者が許可リストに登録された項目を完全に模倣した場合、trawlerでは偽陰性が発生する可能性があります。

例として、PersistenceSniperは「安全でない」Windowsサービスをすべて返しますが、trawlerは特定の検出ルールに一致するものだけを返します。

環境へのチューニング

Trawlerはスナップショットから許可リストを読み込むことをサポートしています。これには2つの手順が必要です。

  1. 環境内のサーバーを代表する「ゴールデンイメージ」で '.\trawler.ps1 -snapshot' を実行します。完了すると、標準の 'detections.csv' に加えて 'snapshots.csv' というファイルが生成されます。
  2. このファイルは、他のホストでtrawlerを実行する際の入力として使用でき、データは各該当検出の許可リストとして動的に読み込まれます。
    1. '.\trawler.ps1' -loadsnapshot "path\to\snapshot.csv"

以上です。これにより、関連するすべての検出がスナップショットファイルを許可リストとして使用し、ノイズを低減し、ベースイメージに発生した可能性のある変更を特定します。

(許可リストはほとんどのチェックに実装されていますが、すべてではありません。現在も積極的に実装中です。)

ドライブ再ターゲット

調査中、アナリストはイメージ化されたWindowsデバイスを表す新しいドライブをマウントすることがよくあります。Trawlerは、'-drivetarget' パラメータを使用して、これらのマウントされたドライブをスキャンすることを部分的にサポートするようになりました。

実行時に、Trawlerはファイルベースのアーティファクトをチェックするために一時的なスクリプトレベルの変数を再ターゲットし、さらに 'ANALYSIS_' というプレフィックスが付いたHKLM/HKUの下にある関連レジストリハイブ(HKLM\SOFTWARE、HKLM\SYSTEM、NTUSER.DAT、USRCLASS.DAT)をロードしようとします。また、スクリプト完了時にこれらの一時的にロードされたハイブをアンロードしようとします。

例として、NTFSファイルシステム('F:\Test\Windows'、'F:\Test\User' など)を含む 'F:\Test' のような場所にイメージがマウントされている場合、以下のようにtrawlerを呼び出すことができます。

root@kitploit:~
.\trawler.ps1 -drivetarget "F:\Test"

trawlerは対象のドライブからレジストリハイブファイルをロードしようとするため、UNCパスをライブのリモートデバイスにマッピングしても機能しないことに注意してください。システムロックによりそれらのファイルにアクセスできません。ライブのリモートデバイスを処理するアプローチに取り組んでいますので、お楽しみに。

ドライブ再ターゲット時に検査されないもの

  • 実行中のプロセス
  • ネットワーク接続
  • 'Phantom' DLL
  • WMIコンシューマ(作業中)
  • BITSジョブ(作業中)
  • 証明書解析(作業中)

他のほとんどのチェックは、レジストリハイブまたはファイルベースのアーティファクトの読み取りに完全に基づいているため(または組み込みのコマンドレットを使用する代わりにタスクXMLを直接読み取るなど変換可能であるため)、正常に機能します。

ドライブ再ターゲット時のチェックの制限については、GitHub Wikiでより詳しく説明されます。

サンプル画像

検査対象

  • スケジュールタスク
  • ユーザー
  • サービス
  • 実行中のプロセス
  • ネットワーク接続
  • WMIイベントコンシューマ(コマンドライン/スクリプト)
  • スタートアップ項目の発見
  • BITSジョブの発見
  • Windowsアクセシビリティ機能の変更
  • PowerShellプロファイルの存在
  • Office TrustedDocuments
  • 信頼できる場所からのOfficeアドイン
  • SilentProcessExitモニタリング
  • WinlogonヘルパーDLLハイジャック
  • イメージファイル実行オプションハイジャック
  • RDPシャドウイング
  • リモートセッションのUAC設定
  • プリントモニターDLL
  • LSAセキュリティおよび認証パッケージのハイジャック
  • タイムプロバイダーDLL
  • プリントプロセッサDLL
  • ブート/ログオンActive Setup
  • ユーザー初期化ログオンスクリプトのハイジャック
  • スクリーンセーバー実行ファイルのハイジャック
  • Netsh DLL
  • AppCert DLL
  • AppInit DLL
  • アプリケーションシム
  • COMオブジェクトハイジャック
  • LSA通知ハイジャック
  • 'Office test' の使用
  • Office GlobalDotName の使用
  • ターミナルサービスDLLハイジャック
  • 自動ダイヤルDLLハイジャック
  • コマンドAutoRunプロセッサの悪用
  • Outlook OTMハイジャック
  • トラストプロバイダーハイジャック
  • LNKターゲットスキャン(不審な用語、複数の拡張子、複数のEXE)
  • 実行中のプロセスにロードされた'Phantom' Windows DLL名(例:未署名のWptsExtensions.dll)
  • 重要なOSディレクトリの未署名EXE/DLLのスキャン
  • 引用符なしサービスパスハイジャック
  • PATHバイナリハイジャック
  • 一般的なファイル関連付けハイジャックと不審なキーワード
  • 不審な証明書のハンティング
  • GPOスクリプトの発見/スキャン
  • NLP開発プラットフォームDLLオーバーライド
  • AeDebug/.NET/スクリプト/プロセス/WERデバッグ置き換え
  • エクスプローラー 'Load'
  • Windows Terminal startOnUserLogin ハイジャック
  • アプリパスの不一致
  • サービスDLL/ImagePathの不一致
  • GPO拡張DLL
  • 潜在的なCOMハイジャック
  • 非標準LSA拡張
  • DNSServerLevelPluginDllの存在
  • Explorer\MyComputerユーティリティハイジャック
  • ターミナルサービスInitialProgramチェック
  • RDPスタートアッププログラム
  • Microsoftテレメトリコマンド
  • 非標準AMSIプロバイダー
  • インターネット設定LUIエラーDLL
  • PeerDist\Extension DLL
  • ErrorHandler.CMDチェック
  • 組み込み診断DLL
  • MiniDumpAuxiliary DLL
  • KnownManagedDebugger DLL
  • WOW64互換性レイヤーDLL
  • EventViewer MSCハイジャック
  • アンインストール文字列スキャン
  • PolicyManager DLL
  • SEMgrウォレットDLL
  • WERランタイム例外ハンドラ
  • HTMLヘルプ(.CHM)
  • リモートアクセスツールのアーティファクト(ファイル、ディレクトリ、レジストリキー)
  • ContextMenuHandler DLLチェック

TODO

  • GitHub Wikiの各検出に分析/修復ガイダンスを追加(進行中)
  • ブラウザ拡張機能の分析(?)
  • RID Hijacking [https://www.ired.team/offensive-security/persistence/rid-hijacking][https://pentestlab.blog/2020/02/12/persistence-rid-hijacking/]
  • PowerAutomateチェック
  • ShadowPad指標 [https://www.secureworks.com/research/shadowpad-malware-analysis, https://www.hexacorn.com/blog/2023/02/25/beyond-good-ol-run-key-part-141/]
  • OBSスタートアップスクリプトスキャン [https://www.hexacorn.com/blog/2023/04/14/beyond-good-ol-run-key-part-142/]
  • SQL Server管理アドイン [https://www.hexacorn.com/blog/2019/09/28/beyond-good-ol-run-key-part-117/]
  • AutoPlayハンドラ検査 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\Handlers]
  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\Pending\SPReviewEnabler
  • OCSetup [https://www.hexacorn.com/blog/2019/11/09/beyond-good-ol-run-key-part-122/]
  • https://hijacklibs.net/# の追加機会を確認
  • https://www.wietzebeukema.nl/blog/hijacking-dlls-in-windows の追加機会を確認
  • https://silentrunners.org/launchpoints.html の追加機会を確認

評価されたMITREテクニック

以下の中には、当然ながら他のものよりも検出されるものがあることに注意してください。例えば、考えられるすべてのレジストリ変更を検出しているわけではなく、特定のキーの明らかな変更を検査し、他のテクニックが適用できない場合は汎用的なMITREテクニック「Modify Registry」を使用しています。COMハイジャックなどの他の項目については、該当するレジストリセクションのすべてのエントリを検査し、「既知の正常」パターンと照合して、未知または不一致の値を浮かび上がらせることで、その特定のテクニックに対してより完全な検出範囲を実現しています。

  • T1037: ブートまたはログオンの初期化スクリプト
  • T1037.001: ブートまたはログオンの初期化スクリプト: ログオンスクリプト(Windows)
  • T1037.005: ブートまたはログオンの初期化スクリプト: スタートアップ項目
  • T1055.001: プロセスインジェクション: ダイナミックリンクライブラリインジェクション
  • T1059: コマンドおよびスクリプトインタプリタ
  • T1071: アプリケーション層プロトコル
  • T1098: アカウント操作
  • T1112: レジストリの変更
  • T1053: スケジュールタスク/ジョブ
  • T1136: アカウントの作成
  • T1137.001: Officeアプリケーションの起動: Officeテンプレートマクロ
  • T1137.002: Officeアプリケーションの起動: Office Test
  • T1137.006: Officeアプリケーションの起動: アドイン
  • T1176: ブラウザ拡張機能
  • T1197: BITSジョブ
  • T1505.005: サーバーソフトウェアコンポーネント: ターミナルサービスDLL
  • T1543.003: システムプロセスの作成または変更: Windowsサービス
  • T1546: イベントトリガー実行
  • T1546.001: イベントトリガー実行: デフォルトのファイル関連付けの変更
  • T1546.002: イベントトリガー実行: スクリーンセーバー
  • T1546.003: イベントトリガー実行: WMIイベントサブスクリプション
  • T1546.007: イベントトリガー実行: NetshヘルパーDLL
  • T1546.008: イベントトリガー実行: アクセシビリティ機能
  • T1546.009: イベントトリガー実行: AppCert DLL
  • T1546.010: イベントトリガー実行: AppInit DLL
  • T1546.011: イベントトリガー実行: アプリケーションシム
  • T1546.012: イベントトリガー実行: イメージファイル実行オプションインジェクション
  • T1546.013: イベントトリガー実行: PowerShellプロファイル
  • T1546.015: イベントトリガー実行: COMオブジェクトハイジャック
  • T1547.002: ブートまたはログオンの自動起動実行: 認証パッケージ
  • T1547.003: ブートまたはログオンの自動起動実行: タイムプロバイダー
  • T1547.004: ブートまたはログオンの自動起動実行: WinlogonヘルパーDLL
  • T1547.005: ブートまたはログオンの自動起動実行: セキュリティサポートプロバイダー
  • T1547.009: ブートまたはログオンの自動起動実行: ショートカットの変更
  • T1547.012: ブートまたはログオンの自動起動実行: プリントプロセッサ
  • T1547.014: ブートまたはログオンの自動起動実行: Active Setup
  • T1553: トラストコントロールの無効化
  • T1553.004: トラストコントロールの無効化: ルート証明書のインストール
  • T1556.002: 認証プロセスの変更: パスワードフィルターDLL
  • T1564.006: アーティファクトの隠蔽: 仮想インスタンスの実行
  • T1574: 実行フローのハイジャック
  • T1574.007: 実行フローのハイジャック: PATH環境変数によるパスインターセプト
  • T1574.009: 実行フローのハイジャック: 引用符なしパスによるパスインターセプト

参考文献

このツールは、素晴らしいInfoSecコミュニティなしには存在しませんでした。以下に、私が使用した最も注目すべき参考文献を示します。

  • PersistenceSniper
  • MITRE ATT&CK
  • Persistence Info GitHub
  • Hexacorn - Persistence Series
  • IRED
  • PayloadsAllTheThings

その他の参考文献

  • https://twitter.com/Laughing_Mantis/status/1645268114966470662
  • https://shellz.club/posts/a-novel-method-for-bypass-ETW/
  • https://pentestlab.blog/2023/03/20/persistence-service-control-manager/
  • https://ristbs.github.io/2023/02/15/hijack-explorer-context-menu-for-persistence-and-fun.html
  • https://pentestlab.blog/2022/02/14/persistence-notepad-plugins/
ツールをダウンロード
  • Office AI.exeの存在
  • Notepad++プラグイン
  • MSDTCレジストリハイジャック
  • ナレーターDLLハイジャック(MSTTSLocEnUS.DLL)
  • 不審なファイルロケーションチェック
  • BootVerificationProgramチェック
  • DiskCleanupHandlerチェック
  • 低整合性分離チェック
  • 不審な名前のインストール済みソフトウェア
  • Directory Services Restore Modeステータス
  • サービスコントロールマネージャーセキュリティ記述子の変更
  • Windows Subsystem for Linux VM
  • ブラウザ拡張機能の分析