attack-patterns-reference について
attack-patterns-referenceは、WebやWordPressで観測された挙動を分類し、検証スキルへ導くセキュリティテスト用カタログです。パターン自体を脆弱性の発見とみなさず、初期シグナルと検証済みの影響を区別するために使います。
主な機能
- 01Webシグナルを検証スキルに対応付け
- 02WordPress、CORS、XML-RPCのパターンを収録
- 03攻撃経路候補の前提条件を提示
- 04証拠とネガティブコントロールを重視
活用シーン
- 01テスト前の偵察結果の分類
- 02WordPressのシグナルに応じた後続スキルの選択
- 03攻撃経路候補を評価する前の前提条件確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ uphiago/ recon-skills --skill attack-patterns-referenceインストール後、Claude Code で/attack-patterns-referenceを入力して読み込まれたか確認します。
同梱ファイルreferences/p-patterns.md
詳細
攻撃パターンのリファレンス
このカタログでは、観測された Web および WordPress の挙動を、それらの検証を担当するスキルに対応付けています。パターン ID はナビゲーション用のラベルです。悪用可能性、深刻度、発生頻度、または攻撃経路が確認済みであることを示すものではありません。
使用するタイミング
- 集中的なテストを行う前に、偵察の結果を分類する必要がある場合。
- 複数の検証済みの挙動が、攻撃経路の候補となる場合。
- WordPress、CORS、XML-RPC、ソースコード漏えい、または公開サービスの兆候に対して、担当する検証手順が必要な場合。
このカタログを、スキャナーの検出結果リストや、担当スキルの検証セクションの代わりとして使用しないでください。
前提条件
- 認可されたターゲットと、現在のスコープ上の制約。
- 分類対象の観測内容を記録した証拠。
- 選択した後続スキルに必要なツールと ID。
実行方法
- 観測された挙動に最も近いパターンを特定します。
- 表に記載されている担当スキルを開きます。
- そのスキルの前提条件と副作用を確認します。
- 仮説を反証できる、最小限の検証とネガティブコントロールを実行します。
- 結果を、観測済み、推定、確認済み、または未テストとして記録します。
手順
一般的な Web パターン
| パターン | 初期兆候 | 担当スキル |
|---|---|---|
| WordPress ユーザー情報の露出 | REST または author ルートがユーザーメタデータを返す | wp-mass-recon |
| 認証情報付き CORS | 信頼されていないオリジンが認証情報付きで反映される | cors-credential-wordpress |
| XML-RPC メソッド | プロトコルに準拠した system.listMethods の応答 | xmlrpc-exploitation |
| XML-RPC SSRF | pingback.ping が制御下のコールバックに到達する | xmlrpc-exploitation |
| 公開登録 | 登録が有効になっている | wp-mass-recon |
| プラグインの攻撃対象領域 | REST 名前空間、アセット、またはバージョンマーカー | wordpress-plugin-hunt |
| ステージング環境との差異 | 本番以外のホストで制御が弱くなっている | staging-subdomain-hunt |
| エラーログの公開 | 応答に実際のアプリケーションエラーが含まれる | error-log-mining |
| PHPInfo の露出 | PHP 設定ページにアクセスできる | phpinfo-to-rce |
| ソースまたはバックアップの漏えい | 応答にリポジトリ、設定、またはデータベースの内容が含まれる | source-leak-hunt |
| JavaScript 内のシークレット候補 | バンドルに認証情報のような値が含まれる | js-secrets-extraction |
| 公開サービス | HTTP 以外のサービスまたは管理サービスにインターネットから到達できる | port-service-discovery |
詳細なパターンの説明については、references/p-patterns.md を参照してください。
CORS のバリエーション
| バリエーション | 初期兆候 | 必要な検証 |
|---|---|---|
| 認証情報付きのオリジン反映 | 信頼されていないオリジンと ACAC: true | 認証情報付きのブラウザーで、非公開データを読み取れる |
| Null オリジンの信頼 | ACAO: null と ACAC: true | サンドボックス化されたブラウザーで、非公開データを読み取れる |
| 認証情報なしのワイルドカード | ACAO: * | 応答がすでに公開されているかどうかを確認する |
| 認証情報付きプリフライト | OPTIONS がオリジン、メソッド、ヘッダーを受け入れる | 実際のリクエストが成功し、ブラウザーが応答を公開する |
| 認証ルートの CORS | 保護されたルートに CORS ヘッダーが現れる | 承認済みのセッションで、保護されたデータを読み取れる |
| プラグイン固有の CORS | 1 つのプラグイン名前空間のみがオリジンを受け入れる | 応答に保護されたデータが含まれるか、認可されたテストアクションが実行される |
| 環境固有の CORS | ステージング環境と本番環境でポリシーが異なる | 認可された環境で影響を実証する |
| サードパーティーの許可リスト | 外部サービスのオリジンが 1 つ信頼されている | そのオリジンを制御できること、および保護されたデータにアクセスできることを確認する |
攻撃経路の候補
以下は組み合わせのテンプレートであり、確認済みの所見ではありません。
| 経路 | 検証が必要な前提条件 |
|---|---|
| CORS から保護データの読み取り | 承認済みセッション、信頼されていないオリジン、ブラウザーで読み取り可能な非公開レスポンス |
| XML-RPC SSRF からクラウドメタデータへのアクセス | 制御可能なコールバック、到達可能なメタデータサービス、利用可能な二次的影響 |
| オープン登録からアップロード | 承認済みのテスト用アカウント、アップロード可能なロール、実行可能なファイルパス |
| 露出したログからアカウントへのアクセス | 有効な認証情報、承認済みの ID、有効な認証制御 |
| ステージング環境の露出から本番環境への影響 | 共有された信頼境界、再利用可能なシークレットまたはデプロイパス、明示的なスコープ |
すべての前提条件を個別に検証した後にのみ、cross-attack-chains を使用してください。
注意点
- 過去の発生頻度は、現在のターゲットに関する証拠ではありません。
- 製品名、バージョン、ステータスコード、ヘッダーだけでは、影響を証明できません。
- すべてのリクエストを受け入れるルートにより、機密性の高いパスが到達可能に見えることがあります。
- 公開クライアント識別子や意図的に公開された API は、それだけで認証情報や認可の不備とは限りません。
- パターンの前提条件は、製品やプラグインのバージョンによって変わります。
- 攻撃経路には、最も不確かな手順の不確実性が引き継がれます。
検証
- すべてのパターンを、取得したリクエストとレスポンスの証拠に照らし合わせてください。
- 結果を公開動作や一般的な動作と区別できるよう、ネガティブコントロールを実行してください。
- CORS の影響を確認するにはブラウザーを使用してください。ヘッダーだけでは不十分です。
- ブラインド SSRF には制御されたコールバックを使用してください。プロトコルステータスだけでは不十分です。
- CVE に関連付ける前に、コンポーネントと前提条件を正確に確認してください。
- スコープ内で再現した影響のみを報告してください。
コメント
Markdown 対応