recon について
reconは、許可された対象の攻撃対象領域を把握するペネトレーションテスト向け偵察スキルです。受動調査と明示的に許可された能動調査を整理し、優先度付きの結果をまとめます。
主な機能
- 01受動的な DNS と登録情報の収集
- 02技術スタックと公開資産の特定
- 03許可範囲内でのポート・サービス調査
- 04偵察レポートで調査結果を優先順位付け
活用シーン
- 01ペネトレーションテスト前の対象範囲の把握
- 02公開されたエンドポイントやサービスの発見
- 03後続の Web セキュリティテスト向け対象の選定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ briiirussell/ cybersecurity-skills --skill reconインストール後、Claude Code で/reconを入力して読み込まれたか確認します。
詳細
Recon — ペネトレーションテストの偵察
許可されたターゲットに対して体系的な偵察を行い、調査結果を実行可能なアタックサーフェスマップに整理します。
相互参照:より詳細なオープンソースインテリジェンス調査(人物、組織、履歴データ)には osint-recon を使用します。このスキルは能動的/受動的なターゲットマッピングを担い、osint-recon はより広範な調査を担います。両者は自然に組み合わせて使用できます。偵察によってアタックサーフェスマップと許可されたターゲット一覧ができた後の次の段階には web-pentest を使用します。ターゲットのコードにアクセスできる場合のソースコードレビューには owasp-audit を使用します。
許可の確認
コマンドを実行する前に、以下を確認します。
- ユーザーがターゲットに対する書面による許可を得ていること(ペネトレーションテストの契約、バグバウンティプログラム、CTF/ラボ環境)
- ターゲットが定義されたスコープ内にあること
許可が不明確な場合は、作業を進める前に確認してください。許可があると決めつけてはいけません。
方法論
フェーズ 1:受動的偵察
ターゲットに直接アクセスせずに情報を収集します。
DNS 列挙:
- A、AAAA、MX、TXT、NS、CNAME レコードを取得するため、
dig any $ARGUMENTSを実行します - ゾーン転送を試みます:
dig axfr @ns-server $ARGUMENTS - 証明書の透明性を利用してサブドメインを列挙します:
curl -s "https://crt.sh/?q=%25.$ARGUMENTS&output=json" | jq -r '.[].name_value' | sort -u
WHOIS と登録情報: 登録者、ネームサーバー、作成日の情報を取得するため、whois $ARGUMENTS を実行します。
検索エンジンのドーキング: site:、inurl:、filetype:、intitle: などの絞り込んだクエリを使い、公開されているページ、ドキュメント、管理パネルを探します。
テクノロジーのフィンガープリンティング: 外部公開ページから、フレームワーク、CMS、サーバーソフトウェア、JavaScript ライブラリを特定します。
公開コードリポジトリ: GitHub/GitLab で、ターゲットの組織名、ドメイン、API キー、内部パスを検索します。
履歴データ: Wayback Machine で、古いエンドポイント、削除されたページ、設定ファイルを確認します。
フェーズ 2:能動的偵察(明示的な許可がある場合のみ)
ポートスキャン:
nmap -sC -sV -oN scan-results.txt $ARGUMENTS
まず上位 1000 ポートを対象にします。必要に応じて全範囲(-p-)に拡張します。ホストがダウンしているように見えてもスコープ内であれば、-Pn を使用します。
サービスの列挙: 開いているポートに基づいて、バージョン情報やデフォルト設定を調べます。
Web コンテンツの探索:
- gobuster、feroxbuster、または dirsearch を使ったディレクトリの総当たり
- 仮想ホストの列挙
- API エンドポイントの探索(
/api/、/v1/、/graphql、/swagger.jsonを確認)
SSL/TLS 分析: testssl.sh または sslyze を実行し、弱い暗号スイート、期限切れの証明書、設定ミスを確認します。
フェーズ 3:分析
すべての調査結果を関連付けます。最も有望な攻撃経路を特定し、以下の順に優先順位を付けます。
- 想定される影響の重大度
- 悪用される可能性
- 公開範囲(インターネット公開か、内部向けか)
出力形式
体系化された偵察レポートを作成します。
# Recon Report
## Target: [target]
## Scope: [confirmed scope]
## Date: [date]
### Passive Findings
| Finding | Details | Relevance |
|---------|---------|-----------|
### Subdomains Discovered
- [list]
### Technologies Detected
- [list with versions where identified]
### Active Findings
| Port | Service | Version | Notes |
|------|---------|---------|-------|
### Attack Surface Summary
[Prioritized list of interesting findings with risk assessment]
### Recommended Next Steps
[Ordered list of what to investigate further]
境界
- 定義されたスコープ内にとどまり、隣接システムやスコープ外のシステムをスキャンしないでください
- 混乱を避けるため、負荷の高いスキャンにはレート制限を設けてください
- エンゲージメントの記録用に、実行したコマンドをすべて記録してください
- 第三者による侵害が進行中である証拠を発見した場合は、直ちにユーザーに知らせてください
- 明示的な許可のないシステムを対象とする依頼は拒否してください
- 無関係なターゲットの一斉スキャンを求める依頼は拒否してください
参考資料
- PTES(Penetration Testing Execution Standard)
- OWASP Testing Guide
- Bug Bounty Methodology(jhaddix/tbhm)