Hello there, ('ω')ノ
全体の流れ(高レベル)
- スコープ理解:どのドメイン・サブドメイン・APIが対象かを確定する。
- 持続的リコン(Persistent Recon):低ノイズで継続的に情報を集め、変化を検知する。
- アセット発見 → 脆弱性スキャニング → 手動検証:自動ツールで「高い可能性」を洗い出し、人手で確証を取る。
- 報告(Responsible Disclosure):再現手順、影響範囲、緩和案を整理して提出。
1) リコン(何を探すか/なぜ継続するのか)
狙い:表に出ていないサブドメイン・移転中のサービス・新しく追加されたAPIエンドポイントなど、他人が見落としがちな「隙」を見つける。
使う代表ツール(自動化で大量に検出):Amass, Subfinder, Assetfinder, httpx。これらを組み合わせることで、パッシブ(既存DBや公開情報)→アクティブ(実際のHTTP応答)へと段階的に絞り込む。
ハッカー視点での具体的発想:
- 「新しいサブドメインが追加された瞬間を捉えたい」 → cronやCIで低頻度の自動実行を設定し差分を監視する。
- 「公開情報では出ないDNSレコードを掘りたい」 → WHOIS・CRT(証明書)・OSINTを突き合わせる。
(※ツールの出力は“調査対象の確認”で用い、実際に攻撃を行うためではなく脆弱性候補の洗い出しに使う)
2) 脆弱性スキャン(自動化で「高信号」だけ拾う)
狙い:手作業で全域を探すのは非現実的。まずは自動で「高確度の候補」をピックアップする。 代表ツール:Nuclei, Nikto, Dalfox, SQLMap。Nucleiはテンプレートで素早く大量検査ができ、DalfoxはXSS自動検出の助けになる。
なぜこの流れか(戦略):
- 自動スキャンは「網羅性」が強みだが誤検知も多い → 優先度付け(スコアリング)して手動で確証を取る。
- カスタムテンプレート(プログラム特有の挙動)を書けると、一気に差別化できる。
3) Web向け攻撃検証(手動で狙いを深める)
狙い:IDOR、認証バイパス、ビジネスロジック欠陥など、自動では見落とされがちな論理的欠陥を突く。
代表ツール/拡張:Burp Suite (+ Turbo Intruder, Autorize, JS Miner), FFUF, GF (Grep patterns), x8 (SSRF/open redirect)。これらは「ユニークな角度で入力を投げ、応答差分を検出する」ために使う。
具体的にハッカーは何を考えるか:
- 「このAPIはIDとユーザーIDを別々に管理してるか?」 → パラメータを入れ替えてレスポンスや権限の差を観察する(IDORチェック)。
- 「同じ操作を高頻度で行うと状態が変わるか?」 → レース条件を疑ってTurbo Intruderなどで繰り返し試す。
- 「JSで動的に組み立てられるエンドポイントはどこか?」 → JSを解析して隠れたAPIを見つける(下記参照)。
注意:ここで「どう攻めるか」を詳述することは避ける。目的は“検証の考え方”と“ツールの使い所”を伝えること。
4) JavaScript / ソース解析(フロントの中に秘密がある)
狙い:公開されるJSにハードコードされた鍵、内部API、フラグメントされたロジックが隠れていることが多い。
代表ツール:LinkFinder, JSParser, SecretFinder, Burp JS Miner, Semgrep。JSを走査して「敏感なエンドポイント」「ベアラートークン」「内部パラメータ」を検出する。
ハッカーの流れ:
- 静的にJSを取得 → 文字列やfetch/axios呼び出しを検索。
- 見つかった候補を手動で叩き、実際にどんなレスポンスが返るかを確認。
- 必要ならトークンの扱い方や認証フローを追って、より深い論理欠陥(例:認可チェックが抜けているパス)を探る。
5) APIテストと認証周り(最も儲けどころ)
狙い:APIのBOLA(Broken Object Level Authorization)、JWTの不備、レート制限の弱さは被害が大きい。
代表ツール:Postman/Insomnia, Kiterunner, Burp + Repeater/Intruder, JWT Tools。APIの挙動をじっくり観察して「誰が何を参照できるか」を突き詰める。
戦術的アドバイス(ハッカー思考の詰め合わせ)
- ニッチを作る:全部やろうとせず、得意分野(SSRF、モバイル、API等)を極める。
- 持続的監視:ターゲットは変化する。低ノイズで定期実行し、差分を検出する仕組みを持つ。
- 自動化と創造性の併用:ツールは“刃”であって“頭”ではない。ツール出力をどう解釈し仮説に落とすかが本質。
まとめ(学習ロードマップ)
- まずはリコンを自動化してアセットを確定する。
- 自動スキャンで高信号を拾い、手動でロジックの穴を検証する。
- JS・APIの深掘りで高価値な欠陥を見つける。
- 常に「変化を監視」し、ツールに頼りすぎず自分の仮説力を磨くことが最強の武器になる。
Best regards, (^^ゞ