mcpField
P
pentest

pentest

github.com/wyattowalshセキュリティ544 回インストール8 週間前に更新
リポジトリ

pentest について

Pentestは、許可されたペネトレーションテストの計画と報告を支援するスキルで、署名済みROEに基づく範囲確認を必須とします。セキュリティ担当者向けに段階別チェックリストと構造化された指摘を作成し、攻撃そのものは実行しません。

主な機能

  1. 01許可と範囲のフェイルクローズ確認
  2. 02フェーズ別テストプレイブック
  3. 03シグナルから手法への振り分け
  4. 04構造化された指摘の検証と報告
  5. 05読み取り専用の環境・ポリシー確認

活用シーン

  1. 01許可済みのWeb・API評価を計画
  2. 02検知シグナルをテストプレイブックへ振り分け
  3. 03指摘をスキーマに照らして検証
  4. 04エンゲージメントの指摘をまとめて報告

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/wyattowalsh/agents --skill pentest

インストール後、Claude Code で/pentestを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

evals/
evals.json
references/
external-runners.md
external-skill-index.manifest.json
findings-schema.md
methodology-router.md
osint.md
references/playbooks/
api-authz.md
api-graphql.md
api.md
binary-mobile.md
binary.md
blockchain.md
cloud-iam.md
cloud.md
internal.md
llm-prompt.md
llm.md
mobile-static.md
mobile.md
network-services.md
network.md
osint-corporate.md
osint.md
post-exploit.md
recon.md
report.md
web-auth.md
web-injection.md
web.md
wireless.md

詳細

ペンテスト

許可された攻撃セキュリティ業務向けの統合スキルです。スコープによって制限された計画、チェックリスト、構造化された所見を作成します。C2やウェブシェルを同梱したり、自律的にエクスプロイトを実行したりすることはありません。

**対象範囲:**事前承認済みのペネトレーションテストの方法論とレポート作成です。許可されていないテスト、マルウェア/C2運用、デプロイ前の静的監査(security-scanner)、または合成CTF専用のパズル(ctf-*)には使用しません。

標準用語

用語定義
ROE実施規則 — 対象、日程、連絡先、禁止行為を定めた署名済みの承認文書です
スコープゲートあらゆる偵察、Web、API、OSINTの攻撃計画に先立って必須となる scope_check.py のパスです
対象署名済みROEに明示的に記載されたホスト、URL、CIDR、またはアプリケーションです
フェーズscripts/phases.py で定義された業務の段階です。各段階で有効なスコープゲートが必要です
トリアージmethodology-router.md を介して、シグナルを標準プレイブックと任意の外部スキルに振り分けます
外部インデックスマニフェストと lookup_external_slug.py を介した計画用ロック pentest-external-skill-index.json です
所見深刻度、証拠、修正の指針を含む、疑わしい問題の構造化JSONレコードです
プレイブックreferences/playbooks/ から読み込むチェックリスト形式の方法論です。計画のみを対象とします
統合参照資料とオペレーターのコンテキストから組み立てる、エージェント作成の計画/チェックリスト/レポートです
外部ランナーオペレーターが手動で実行する任意のサードパーティ製CLI(例:Strix)です。このスキルは攻撃ツールをインストールも実行もしません
フェイルクローズスコープが不足、期限切れ、または対象がスコープ外の場合、すべての攻撃計画を拒否します

ティアの境界

ティアスキル使用する場面ROE必須攻撃を実行する
静的監査security-scannerデプロイ前のSAST、シークレット、依存関係、コンプライアンスのヒューリスティック検査いいえいいえ — 読み取り専用のコードスキャン
許可済みペンテストpentest(このスキル)署名済みの契約に基づく稼働中のアプリ/APIはいいいえ — 計画/チェックリストのみ。承認済みツールはオペレーターが実行します
CTF/ラボctf-*隔離されたチャレンジ用マシン、トレーニング用フラグ、合成脆弱性ラボいいえ(代わりにラボポリシーが必要)指定されたラボのスコープ内のみ

振り分けルール:

  • 「マージ前にリポジトリのシークレット/CVEをスキャンして」→ security-scanner
  • 「許可なくこのサイトをハッキングして」→ 拒否 — ROEがないため、計画も行いません
  • 「このHTB/CTFのマシンを攻略して」→ **ctf-***スキル — 本番環境のペンテストではありません
  • 「staging.example.comについて署名済みのROEがあります」→ スコープゲートを通過した後に pentest

スコープゲート(必須)

偵察、Web、API、OSINT、または任意の拡張フェーズモード(network、cloud、mobile、wireless、llm、internal、binary、blockchain、post-exploit)の前に:

  1. オペレーターから --target、--roe-file、および要求された --phase を取得します。
  2. 次を実行します:
uv run python scripts/scope_check.py \
  --target "<host-or-url>" \
  --roe-file "<path-to-roe.json>" \
  --phase "<mode>"
  1. JSONの標準出力を解析します。ok が false、または終了コードが0以外の場合は 停止します。 deny_reason を提示し、修正方法を確認するために references/scope-and-roe.md を読み込みます。
  2. スコープ結果の engagement_id、phase、allowed_phases をセッションノートに記録します。
  3. 現在のセッションでスコープゲートを通過していない場合、プレイブック、外部ランナー、または攻撃を示唆するコマンドに進んではいけません。

空または不完全なスコープ要求(ROEを指定せずに対象を指定、対象を指定せずにROEを指定、期限切れのROE、スコープ外のホスト)は、フェイルクローズで拒否されます。

ディスパッチ

$ARGUMENTSモードアクション
doctordoctorscripts/doctor.py を実行 — スキルのアセットとポリシーの準備状況を確認
scope <target>scope--roe-file、--target、--phase を指定して scripts/scope_check.py を実行し、ROE による制限がある場合は restricted_phases を表示
triage <signal>triagereferences/methodology-router.md を読み込み、シグナル → プレイブック + 外部スラッグに対応付け
recon <target>reconスコープゲート → references/playbooks/recon.md
web <target>webスコープゲート → references/playbooks/web.md(必要に応じてインジェクション/認証プレイブックも参照)
api <target>apiスコープゲート → references/playbooks/api.md
osint <target>osintスコープゲート → references/playbooks/osint.md(ROE に従いパッシブのみ)
network <target>networkスコープゲート → references/playbooks/network.md
cloud <target>cloudスコープゲート → references/playbooks/cloud.md
mobile <target>mobileスコープゲート → references/playbooks/mobile.md
wireless <target>wirelessスコープゲート → references/playbooks/wireless.md(明示的な ROE が必要)
llm <target>llmスコープゲート → references/playbooks/llm.md
internal <target>internalスコープゲート → references/playbooks/internal.md
binary <target>binaryスコープゲート → references/playbooks/binary.md
blockchain <target>blockchainスコープゲート → references/playbooks/blockchain.md
post-exploit <target>post-exploitスコープゲート → references/playbooks/post-exploit.md(明示的な ROE がある場合のみ)
validatevalidatescripts/check.py を実行し、findings JSON をスキーマと照合して検証
reportreportscripts/findings_emit.py のパターンを使ってセッションの調査結果を集約
help または (空)helpモード、スコープゲート、ティアの境界、参照インデックスを表示
認識できない入力—明確化を求め、許可があるものと見なさない

モード:doctor

読み取り専用の環境およびポリシーチェックです。攻撃的な操作は行いません。

  1. 実行:uv run python scripts/doctor.py --format json
  2. スキルがグローバルにインストールされている場合は、WAGENTS_REPO_ROOT に agents クローンのパスを設定し、 repo-root とロックインデックスのチェックで planning/research-lock/ を解決できるようにします。
  3. チェック結果を ok、warn、fail ごとに分類して提示します。
  4. forbidden-tooling が fail の場合は停止します。オペレーターがリクエストから C2/ウェブシェルへの参照を 削除するまで、このスキルをエンゲージメントで使用できません。
  5. オペレーターから任意の CLI について質問された場合に限り、references/external-runners.md を読み込みます。

モード:scope

ほかの攻撃的なモードを実行する前に、認可を検証します。

  1. --target、--roe-file、--phase が必要です。いずれかが不足している場合は、それらを指定せずに scope_check.py を実行して拒否 JSON を生成し、必須フィールドを説明します。
  2. 許可された場合:engagement_id、phase、allowed_phases、restricted_phases、 expires_at、およびスコープ内のターゲットとの一致を要約します。
  3. 拒否された場合:deny_reason を示し、プレイブックは読み込みません。

モード:triage

すべての上流リポジトリを読み込まずに、調査手法の詳細度に応じて振り分けます。

  1. $ARGUMENTS からシグナルを解析します(例:sqli、xss、kerberos、llm-injection)。
  2. references/methodology-router.md を読み込み、重複排除テーブルから正規スラッグを特定します。
  3. 一致する references/playbooks/*.md のセクションを読み込みます(一度に 1 ファイル)。
  4. オペレーターが上流資料の詳細な本文を求めた場合に限り、scripts/lookup_external_slug.py で install_command を提示します。
  5. 隔離: EXT-084 のエントリは検査専用です。自動インストールは決して行いません。

モード:recon

認可後の攻撃対象領域の計画策定のみを行います。

  1. スコープゲートを通過します(スコープゲートを参照)。
  2. スコープ結果の allowed_phases に recon が含まれていることを確認します。
  3. references/playbooks/recon.md を読み込みます(パッシブの場合は references/osint.md も読み込みます)。
  4. 段階的な計画を作成します。アセットインベントリの仮説、DNS/WHOIS/証明書に関する観点、 技術フィンガープリンティング用のオペレーターが実行できるコマンドを含めます。このスキルのスクリプトから それらを実行してはいけません。
  5. オペレーターから証拠が提示された後に限り、計画上のチェックポイントをドラフトの調査結果として出力します。

モード:web

Web アプリケーションテストの計画のみです。

  1. スコープゲートを通過し、allowed_phases に web が含まれていることを確認します。
  2. references/playbooks/web.md を一度に1セクションずつ読み込みます。
  3. OWASP カテゴリーに対応付けた優先順位付きテストチェックリストを作成します — スキルスクリプトではエクスプロイトペイロードを実行しません。
  4. オペレーターが報告した確認済みの問題ごとに、findings_emit.py で出力します(エンゲージメントに所見を紐付ける場合は、現在のスコープゲート結果から --scope-json を渡します)。

モード:api

API セキュリティテストの計画のみです。

  1. スコープゲートを通過し、allowed_phases に api が含まれていることを確認します。
  2. references/playbooks/api.md を読み込みます。
  3. 認証、認可、入力検証、レート制限、BOLA のテストマトリクスを作成します。
  4. オペレーター向けに OpenAPI/GraphQL の検出手順を示します。バンドルされたスクリプトから稼働中のターゲットにアクセスすることはありません。

モード:osint

パッシブなオープンソースインテリジェンスの計画のみです。

  1. スコープゲートを通過し、allowed_phases に osint が含まれていることを確認します。
  2. references/osint.md を読み込みます。
  3. ROE の prohibited_actions を遵守します — ソーシャルエンジニアリング、嫌がらせ、スコープ外の第三者データ収集は禁止です。
  4. オペレーター向けに、情報源リスト、クエリテンプレート、検証手順を出力します。

モード:post-exploit

ROE で明示的に許可されている場合に限り、ポストエクスプロイトの計画のみを行います。

  1. スコープゲートを通過し、allowed_phases に post-exploit が含まれていることを確認します(スコープ JSON の restricted_phases を参照してください)。
  2. references/playbooks/post-exploit.md を読み込みます。
  3. 封じ込めに配慮した永続化/横展開の計画マトリクスを作成します — バンドルされたスクリプトから C2 のインストールコマンドやインプラントを実行したり、実際にエクスプロイトを行ったりすることはありません。
  4. C2/Havoc/Sliver/Cobalt Strike のスキルインストールは拒否します。上流の参照情報は文書のみに限定します。

モード:validate

スキルと所見を決定論的に検証します。

  1. 次を実行します:uv run python scripts/check.py
  2. アドホックな所見 JSON を検証する場合は、references/findings-schema.md と照合します。
  3. 検証状況を報告します。ROE やターゲットは変更しません。

モード:report

セッションレポートを作成します。

  1. エンゲージメント中に出力された所見を収集します(JSON Lines または配列)。
  2. 各レコードを references/findings-schema.md に照らして検証します。
  3. 重大度別にグループ化し、スコープのメタデータ(engagement_id、target、ROE ハッシュ)を含めます。
  4. オペレーター提供のメモを正規化する場合は、scripts/findings_emit.py --aggregate を使用します。
  5. エグゼクティブサマリーには、承認の根拠と、禁止事項を遵守したことを明記する必要があります。

モード:help

  1. ディスパッチテーブル、スコープゲートの手順、ティア境界テーブルを表示します。
  2. 参照ファイルと、参照するタイミングのガイダンスを一覧表示します。
  3. このスキルは Strix やその他のランナーをインストールしないことを伝えます — references/external-runners.md を参照してください。
ヘルプ (空)

ディスパッチテーブル、スコープゲートの手順、ティア境界、参照インデックスを表示します。次の例を提示します。

/pentest help
/pentest doctor
/pentest scope staging.example.com
/pentest recon staging.example.com
/pentest web https://staging.example.com/app
/pentest api https://staging.example.com/api
/pentest osint staging.example.com
/pentest validate
/pentest report

参照ファイルインデックス

参照ファイルは一度に1つだけ読み込みます。すべての参照ファイルを事前に読み込まないでください。

ファイル内容読み込むタイミング
references/scope-and-roe.mdROE の形式、スコープゲートのポリシー、拒否理由スコープが拒否された場合、または ROE に関する質問がある場合
references/findings-schema.mdJSON 所見のフィールドと重大度のルール所見の出力または検証時
references/methodology-router.mdシグナル → プレイブック → スラッグの簡潔なルーティングtriage または深度のルーティング時
references/external-skill-index.manifest.jsonplanning-lock の完全なインデックスへのポインターオペレーターが上流の本文を求めた場合
references/playbooks/*.mdフェーズおよび手法のチェックリスト(22 ファイル)スコープゲート通過後、該当するフェーズに応じて
references/osint.mdパッシブ OSINT テンプレート(旧インデックス)スコープゲート通過後の recon または osint 時
references/provenance.md統合元、ハイブリッドリポジトリ、C2 禁止ポリシー手法に関する質問または監査証跡が必要な場合
references/external-runners.md任意の外部 CLI(Strix など)— インストールは行いませんオペレーターがツールについて尋ねた場合

スクリプト

スクリプト実行するタイミング
scripts/phases.pyVALID_PHASES の SSOT(scope/findings がインポートします)
scripts/scope_check.py攻撃計画を立てる前に必ず実行します。ROE がない場合はフェイルクローズします
scripts/doctor.pydoctor モード、またはエンゲージメント前の準備状況確認
scripts/findings_emit.py構造化された findings JSON(スキーマ v1.1)を出力または集約します
scripts/lookup_external_slug.pyplanning lock からシグナル/スラッグのインストールメタデータを解決します
scripts/validate_external_index.pyplanning-lock インデックスポリシーのメンテナーチェック
scripts/check.pyvalidate モード、または CI/スキルのメンテナンス

重要なルール

  1. 最初にスコープゲートを通す — scope_check.py に合格するまで、recon、web、api、osint の計画を立ててはいけません
  2. フェイルクローズ — --target または --roe-file がない場合は、直ちに拒否します
  3. スクリプトで攻撃を実行しない — 同梱の Python は計画、検証、JSON 処理のみを行います
  4. C2 や webshell を同梱しない — インプラント、リバースシェル、マルウェアのステージングに関する依頼は拒否します
  5. 許可のないテストを行わない — 署名済み ROE がない場合は、security-scanner(静的解析)に誘導するか、拒否します
  6. CTF はペネトレーションテストではない — 合成ラボでの作業は ctf-* スキルに誘導します
  7. ツールを実行するのはオペレーターのみ — オペレーター向けにコマンドを提示します。スキルのスクリプトはターゲットを調査しません
  8. ROE のフェーズを尊重する — フェーズが allowed_phases に含まれていない場合は、プレイブックを拒否します
  9. prohibited_actions を尊重する — 禁止されている場合は、DOS、ソーシャルエンジニアリング、本番データの持ち出しを行いません
  10. 構造化された findings — findings_emit.py と references/findings-schema.md を使用します
  11. 一度に読み込むリファレンスは1つ — 段階的に情報を開示します
  12. 詳細なチェックリストの前に計画を提示する — オペレーターが侵襲的な手順を実行する前に承認を得ます
  13. 有効な認証情報を保存しない — findings とレポートではシークレットをマスキングします
  14. 外部ランナーは任意 — external-runners.md に記載します。Strix を自動インストールしてはいけません
  15. ROE は読み取り専用 — スクリプトは ROE ファイルを検証しますが、承認の作成や変更は行いません

コメント