| name | pentest-executor |
| description | ペネトレーションテストを対話的に実行するスキル。認可確認(Authorization Gate)→カテゴリ選択(Methodology, Reconnaissance, Scanning, VulnerabilityScanning, WebAppTesting, APITesting, PasswordAttacks, Exploitation, PrivilegeEscalation, ActiveDirectory, PostExploitation, WirelessAttacks, NetworkAttacks, SocialEngineering, CloudPentesting, MobileAppTesting, ContainerK8s, BinaryExploitation, OWASPTop10, Reporting, EmailSecurity, DatabaseAttacks, VPNRemoteAccess の全23カテゴリ)→ツール選択→コマンド実行→発見記録(Finding)→レポート生成をステップバイステップで進行。スコープ/除外チェック・ガードレール付き。「ペンテスト実行」「pentest」「侵入テスト」「脆弱性診断」「セキュリティテスト」「pentest executor」で発火。 |
Pentest Executor スキルを読み込みました。対話的にペネトレーションテストを実行します。
このスキルは references/ ディレクトリ内の実務リファレンス(23カテゴリ・24,000行超)をナレッジベースとして、認可確認→カテゴリ選択→ツール選択→コマンド実行→発見記録→レポート生成を一貫して行います。
A. Authorization Gate — 全実行の前提条件
コマンド実行前に必ず認可情報を確認すること。これを省略してはならない。
AskUserQuestion で以下を確認し、target_context として保持する:
確認項目
| 項目 | 説明 | 例 |
|---|
| ターゲット | テスト対象のドメイン/IP/CIDR | example.com, 192.168.1.0/24 |
| スコープ | テスト範囲(含む対象) | *.example.com, ポート1-65535 |
| 除外対象 | テストしてはならない対象 | prod-db.example.com, DoS系テスト |
| テスト種別 | Black Box / Gray Box / White Box | Gray Box(認証情報あり) |
| テスト期間 | 開始日〜終了日 | 2026-03-11 〜 2026-03-15 |
| 制約事項 | 禁止行為・特別条件 | DoS禁止、営業時間外のみ |
| 認可根拠 | 書面/口頭/契約番号 | 「契約書 #PT-2026-001 に基づく」 |
確認フロー
1. AskUserQuestion でターゲットとスコープを質問
2. AskUserQuestion でテスト種別と制約を質問
3. 入力情報を target_context としてまとめて表示し、最終確認
4. ユーザーが承認したら実行フェーズへ進む
target_context フォーマット(以降のコマンドで変数置換に使用):
TARGET: [ドメイン/IP]
SCOPE: [範囲]
EXCLUDE: [除外]
TYPE: [Black/Gray/White]
PERIOD: [期間]
CONSTRAINTS: [制約]
認可が不明確な場合は「認可の証拠が確認できないため、実行できません」と明示して停止する。
B. Category Selection
AskUserQuestion (multiSelect: true) で実行カテゴリを選択させる。
カテゴリ一覧(PTESベースのフェーズ順 = 番号順)
| フェーズ | # | カテゴリ | 概要 |
|---|
| 計画 | 01 | Methodology | PTES, OSSTMM, NIST SP800-115, MITRE ATT&CK |
| 偵察 | 02 | Reconnaissance | OSINT・サブドメイン列挙・DNS調査 |
| 分析 | 03 | Scanning | ネットワーク/ポートスキャン |
| 分析 | 04 | VulnerabilityScanning | 脆弱性スキャナ・Webスキャナ |
| 攻撃 | 05 | WebAppTesting | SQLi・XSS・ディレクトリ探索 |
| 攻撃 | 06 | APITesting | REST/GraphQL/gRPC/WebSocket・JWT攻撃・OWASP API Top 10 |
| 攻撃 | 07 | PasswordAttacks | クラック・ブルートフォース |
| 攻撃 | 08 | Exploitation | Metasploit・ペイロード生成 |
| 後処理 | 09 | PrivilegeEscalation | Linux/Windows権限昇格 |
| 後処理 | 10 | ActiveDirectory | AD攻撃・Kerberos・横展開 |
| 後処理 | 11 | PostExploitation | 永続化・データ収集・Exfiltration・痕跡消去 |
| 専門 | 12 | WirelessAttacks | Wi-Fi攻撃・WPA/WPA2 |
| 専門 | 13 | NetworkAttacks | MITM・スニッフィング |
| 専門 | 14 | SocialEngineering | フィッシング・SE |
| 専門 | 15 | CloudPentesting | AWS/Azure/GCP |
| 専門 | 16 | MobileAppTesting | Android/iOS診断・Frida・objection・MobSF |
| 専門 | 17 | ContainerK8s | コンテナエスケープ・K8s RBAC攻撃・レジストリ |
| 専門 | 18 | BinaryExploitation | リバースエンジニアリング・BOF・ROP・pwntools |
| 横断 | 19 | OWASPTop10 | OWASP Top 10 (2021) |
| 報告 | 20 | Reporting | レポート構成・リスク評価・修正提案 |
| 企業インフラ | 21 | EmailSecurity | SPF/DKIM/DMARC検証・Exchange/M365攻撃・SMTP診断 |
| 企業インフラ | 22 | DatabaseAttacks | MSSQL/Oracle/PostgreSQL/MySQL/NoSQL固有攻撃 |
| 企業インフラ | 23 | VPNRemoteAccess | SSL VPN/IPSec/RDP/SSH診断・既知CVE |
選択肢の構成
AskUserQuestion の options:
- 全カテゴリ順次実行 — 番号順(01→02→...→23)で全て実行
- 計画フェーズ (01-Methodology) — テスト方法論の選定
- 偵察フェーズ (02-Recon) — まず情報収集から
- 分析フェーズ (03-Scan, 04-VulnScan) — ポート/脆弱性スキャン
- 攻撃フェーズ (05-Web, 06-API, 07-Pass, 08-Exploit) — 脆弱性の実証
- 後処理フェーズ (09-PrivEsc, 10-AD, 11-PostExploit) — 権限昇格・横展開・永続化
- 専門フェーズ (12-Wireless, 13-Network, 14-SE, 15-Cloud, 16-Mobile, 17-Container/K8s, 18-Binary) — 特化領域
- 横断チェック (19-OWASP) — OWASP Top 10 準拠確認
- 企業インフラフェーズ (21-Email, 22-Database, 23-VPN/RemoteAccess) — メール・DB・リモートアクセス
- 報告フェーズ (20-Reporting) — レポート生成
※ multiSelect: true なので、ユーザーは複数選択または「Other」でカテゴリ番号を直接指定できる。
フェーズ選択後、そのフェーズに含まれるカテゴリを順番に実行する。
C. Execution Flow Per Category — スキルの中核
各カテゴリについて以下のサイクルを回す:
Step 1: リファレンス読み込み
Read で references/XX-Name.md を読み込む(1カテゴリずつ)
- リファレンスパス: スキルベースディレクトリからの相対パス
references/XX-Name.md
Step 2: ツール選択
リファレンス内の「ツール一覧」比較表をユーザーに提示し、AskUserQuestion で使用ツールを選択させる。
提示フォーマット:
[カテゴリ名] で使用するツールを選択してください:
1. [ツール名A] — [1行説明]
2. [ツール名B] — [1行説明]
3. [ツール名C] — [1行説明]
Step 3: 対話的コマンド実行
選択されたツールのリファレンスセクションから、コマンドを1つずつ提示して実行する。
コマンド提示のルール:
- 変数置換: コマンド内の
<target>, <domain>, <ip> 等を target_context の値で置換
- 説明: コマンドが何をするか1-2行で説明
- 確認: ユーザーの承認を得てから Bash で実行(自動実行は禁止)
- 出力分析: 実行結果を解析し、重要な発見(開いているポート、脆弱性、認証情報等)をハイライト
- 次のアクション選択: AskUserQuestion で以下から選択
次のアクション:
1. 次のステップへ進む
2. 発見事項を記録する (Finding)
3. オプションを変更して再実行
4. 次のツールへ進む
5. 次のカテゴリへ進む
コマンド実行時の注意:
- 出力が大きい場合は重要部分を抽出して表示
- エラーが出た場合はトラブルシューティングを提案
- ツールがインストールされていない場合はインストールコマンドを提示(macOS: Homebrew優先)
Step 4: カテゴリ完了サマリー
カテゴリの全ツール完了後(またはユーザーがスキップ時):
## [カテゴリ名] 完了サマリー
### 実施内容
- [ツール名]: [何を実行したか]
- ...
### 発見事項
- F-001: [タイトル] (深刻度)
- F-002: [タイトル] (深刻度)
### 次カテゴリへの引き継ぎ情報
- 発見されたホスト: [一覧]
- 開放ポート: [一覧]
- 検出された脆弱性: [一覧]
カテゴリ間データフロー
前カテゴリの出力を次カテゴリのターゲット情報として自動提案する:
19-OWASP(横断的チェック)
↕
02-Recon (ドメイン/IP発見) → 03-Scan (ポート/サービス特定) → 04-VulnScan (CVE検出)
↓ ↓
05-WebApp / 06-API / 07-Password → 08-Exploit
↓
09-PrivEsc → 10-AD → 11-PostExploit
↓
12-18 専門領域(対象環境に応じて選択)→ 20-Reporting
19-OWASP は特定フェーズの後段ではなく、Web/API テストを中心に全フェーズに横断的に適用する観点。
具体例:
- 02-Recon でサブドメイン
admin.example.com (10.0.0.5) を発見 → 03-Scan で nmap 10.0.0.5 を自動提案
- 03-Scan でポート 443/tcp (HTTPS) を検出 → 05-WebApp で
https://admin.example.com をターゲットに自動設定
- 04-VulnScan で Web アプリの脆弱性を検出 → 05-WebApp / 06-API で詳細テストを提案
- 04-VulnScan で CVE-2024-XXXX を検出 → 08-Exploit で該当エクスプロイトモジュールを提案
- 08-Exploit で初期アクセス獲得 → 09-PrivEsc で権限昇格、11-PostExploit で永続化・データ収集を提案
- 03-Scan でコンテナ環境を検出 → 17-ContainerK8s でコンテナエスケープ・K8s攻撃を提案
D. Finding Tracking — 発見事項の記録
記録タイミング
ユーザーが「発見事項を記録する」を選択した時、または明らかな脆弱性を検出した時に提案する。
記録フォーマット
assets/finding-template.md のテンプレートに従い、以下を記録する:
## F-[連番3桁]: [タイトル]
| 項目 | 内容 |
|------|------|
| ID | F-[連番3桁] |
| 日付 | [実行日] |
| カテゴリ | [XX-Name] |
| ツール | [ツール名] |
| 深刻度 | Critical / High / Medium / Low / Informational |
| CVSS | [スコア] ([ベクタ文字列]) |
| CWE | CWE-XXX |
| 対象 | [host:port or URL] |
### 説明
[脆弱性の技術的説明]
### 証拠
[実行コマンドと出力]
### 影響
[攻撃者が悪用した場合の影響]
### 修正提案
- **短期対策**: [即時対応]
- **長期対策**: [根本対応]
深刻度の判定基準
| 深刻度 | CVSS | 条件 |
|---|
| Critical | 9.0-10.0 | リモートから認証なしで任意コード実行、データ全件漏洩 |
| High | 7.0-8.9 | 認証バイパス、権限昇格、重要データ漏洩 |
| Medium | 4.0-6.9 | 情報漏洩(限定的)、DoS、設定不備 |
| Low | 0.1-3.9 | 軽微な情報漏洩、推奨設定の欠如 |
| Informational | 0.0 | セキュリティ改善の推奨事項 |
進捗管理
TaskCreate で発見事項の追跡タスクを作成し、修正確認まで管理する。
E. Report Generation — レポート生成
生成タイミング
- 全カテゴリ完了後に自動提案
- ユーザーが任意のタイミングで要求した時
レポート構成
references/20-Reporting.md のレポート構成ガイド(構成例・品質チェック・再テスト・提出後フォローを含む)を参照し、以下の構成で生成する:
# ペネトレーションテスト報告書
## 1. エグゼクティブサマリー
- テスト概要(1段落)
- 重要な発見事項(Critical/High のみ箇条書き)
- 全体的なセキュリティ評価(A〜F)
## 2. テスト概要
- 対象: [target_context から]
- 期間: [target_context から]
- 種別: [Black/Gray/White]
- 手法: [実施したカテゴリ一覧]
- 使用ツール: [全ツール一覧]
## 3. 発見事項詳細
### 3.1 Critical
[F-XXX の詳細]
### 3.2 High
[F-XXX の詳細]
### 3.3 Medium
[F-XXX の詳細]
### 3.4 Low / Info
[F-XXX の詳細]
## 4. リスクマトリクス
| 深刻度 | 件数 | 対応優先度 |
|--------|------|-----------|
| Critical | X件 | 即時対応 |
| High | X件 | 1週間以内 |
| Medium | X件 | 1ヶ月以内 |
| Low | X件 | 次回メンテ |
| Informational | X件 | 推奨 |
## 5. 修正提案サマリー
[全発見事項の修正提案を優先度順に一覧]
## 6. 付録
- A. 詳細スキャン結果
- B. ツールバージョン一覧
- C. テスト実施ログ
出力
ファイルとして pentest-report-YYYY-MM-DD.md をカレントディレクトリに生成する。
F. Guard Rails — 安全装置
必須ルール
- 認可確認: セクションAのAuthorization Gateを通過しない限り、一切のコマンドを実行しない
- コマンド単位の確認: すべてのコマンドはユーザー承認後に実行する。自動実行は禁止
- スコープ境界チェック: target_context の SCOPE/EXCLUDE と照合し、スコープ外のターゲットへのコマンドは実行を拒否する
- 出力の機密管理: 発見された認証情報・トークン等はレポートでマスク処理を提案する
禁止事項
| 禁止行為 | 理由 |
|---|
| 無確認でのコマンド実行 | 意図しない攻撃の防止 |
| スコープ外への攻撃 | 法的リスク |
| DoS/DDoS の実行 | 明示的許可がない限り禁止 |
| 本番環境への破壊的操作 | データ損失リスク |
| 発見した認証情報の悪用 | 倫理的境界 |
環境対応
| 環境 | 対応 |
|---|
| macOS | Homebrew でのインストールコマンドを優先提示。Linux専用ツールは代替手段を提案 |
| root/sudo | sudo 実行時は「root権限で実行します」と警告表示 |
| Docker | コンテナ内実行が推奨されるツール(Metasploit等)はDocker runコマンドも提示 |
| ツール未インストール | which [tool] で確認し、未インストール時はインストール手順を提示 |
エラーハンドリング
- ツールがタイムアウトした場合: タイムアウト値の調整を提案
- 権限エラー: 必要な権限と取得方法を提示
- ネットワークエラー: 接続確認コマンドを提示(ping, traceroute)
- ツールのバージョン不一致: 必要バージョンとアップデート方法を提示