はじめに
『実践Webペネトレーションテスト』を読み進めていて、2章の「偵察」を読んだのでまとめます。
(最近、不正アクセス関連のニュースが多いため、興味が出てきており読んでます)
偵察には2種類ある
まず大前提として、偵察は大きく2つ(アクティブ・パッシブ)に分けられるということが初知りでした。
アクティブ
対象のサーバーに実際にリクエストを送って、生きているか・どう反応するかを確認する方法です。
- 直接アクセスするので、対象側の運用担当者に検知される可能性がある
- 実際の環境にて無許可でやると普通に危ない(不正アクセスになりうる)
- テストの許可を取った範囲でのみ実施するものらしい
パッシブ
ネット上にすでに公開されている情報をもとに調べる方法です。
- 対象に直接アクセスしないので検知されない
- 公開情報(DNS、証明書ログ、SNS、コードリポジトリなど)を丹念に拾い集めていくイメージ
アクティブ偵察のツール
dirsearch
Webサーバー上のエンドポイントを、辞書リストを使って総当たりで探してくれるツールです。便利な反面、リクエストを大量に送るとサーバーに負荷をかけてしまうので、範囲を絞って短時間で終わらせる配慮が必要、という注意点が書かれていました。
wpscan
WordPress専用の脆弱性スキャナー。
既知の脆弱性があれば教えてくれるらしいです
CloudHunter
対象サイトが利用しているクラウドストレージ(S3バケットなど)の一覧を出してくれるツール。
ただし出てきた結果が本当に対象と関連しているかは、自分で精査する必要があるとのことでした。
nmap
言わずと知れたポートスキャナー。
TCP・UDP両方のポートスキャンができる。よく聞くやつです。
パッシブ偵察のツール
amass
Censys、CTログ(証明書の透明性ログ)、SecurityTrails(ドメイン収集サービス)など、複数の情報源をまとめて調べてくれる統合ツールです。
subfinder
サブドメインの探索に特化したツール。対象ドメインの「隠れた」サブドメインを見つけることで、攻撃対象領域(アタックサーフェス)を広げていくイメージです。
Google検索(Google Dorking)
inurl: や intext: などの検索演算子を使って、対象に関する情報を効率的に探す手法。いわゆるGoogleハッキングというやつで、公開されているのに見落とされがちな情報を拾えるのが面白いところでした。
GitHub
アクティビティタブや、間違えて機密情報をコミットしてしまった痕跡などから情報を探るという話。
ちょっとした補足ではいっていた、Githubにシークレットをpushしちゃったときの対処法が勉強になりました。
dive
コンテナイメージの中身を調べて、脆弱性をチェックしてくれるツール。(初知りでした)
章の内容にプラスして調べてみた: Shodan / Censys / CTログ
本の中でCensysとCTログという単語が出てきたので、自分なりにもう少し掘り下げて調べてみました。
Shodan
インターネットに接続されているデバイス(サーバー、ルーター、監視カメラ、産業制御システムなど)を検索できる、いわゆる「IoT検索エンジン」です。バナー情報やオープンポート、稼働しているサービスの情報などを収集していて、対象組織がどんな機器をネットに晒しているかを非侵襲的に確認できるらしい(怖い)
Censys
Shodanと似た立ち位置のサービスで、インターネット全体をスキャンして得られたホストや証明書の情報をデータベース化しています。amassが情報源の1つとして使っていたのもこのCensysでした。ホスト単位だけでなく、証明書ベースで検索できるのが特徴的だと感じました。
CTログ(Certificate Transparency)
SSL/TLS証明書が発行されると、その記録が公開ログ(CTログ)に残る仕組みです。
これは本来、不正な証明書発行を検知するための仕組み。
学んでみて感じたこと
まだ2章を読んだだけなので理解が浅い部分もあると思いますが、自分の頭の整理を兼ねてまとめてみました。
興味を持った方はぜひ読んでみてください!
(気が向いたら3章以降も勉強になったことをまとめていこうかと思います)