3. 情報収集
3.1. 情報収集の目的
情報収集では攻撃を行うために必要な情報を集める。
集める情報はターゲットにより異なり、集めるべき情報は何かその時々にならないとわからない。 そのため情報収集は繰り返し行い、情報を常に深堀して調べることが重要となる。
攻撃に必要な情報は以下のようにして集める
- 自ら公開されている情報/意図せずに第三者が公開している情報から集める
- 直接ホストにアクセスする
- 検索エンジン/SNSを駆使する
- ソーシャルエンジニアリングを用いる
3.2. 情報収集の手法
情報収集の手法は受動的情報収集、能動的情報取集の大きく2つある。
手法 | 説明 | 法的準拠 |
---|---|---|
受動的情報収集 | 攻撃対象が提供している情報を収集 | ほとんどの場合は合法 |
能動的情報収集 | 攻撃対象に直接アクセス/コマンドを打ち込む | 状況によって非合法 |
またハッキングではOSINT(Open-Source Intelligence)と呼ばれる合法的に入手できる資料を調べて突き合わせる手法が情報収集の基本となる。
3.3. 公開情報の収集
3.3.1. 公開している情報
公開している情報の例としては以下のようなものがある。
- ホームページ/ブログ
- DNS情報/WHOIS情報
- ドメイン/ネットワーク
- 会社の所在地/役員・社員名
- 電話番号/連絡用メールアドレス
- 取引先情報
- IR/投資家向け情報
- HTML/画像などのメタファイル
- SNS
- フォロワー
- 発信内容
- その他の媒体
- メディアの記事(ニュースサイト、まとめサイトなど)
- 第3者の運営するWebサービス(ネット掲示板など)
- ナレッジデータベース(Wikipediaなど)
- 求職情報
3.3.1.1. 検索エンジンの活用
検索エンジンでの「AND検索」「OR検索」「NOT検索」「フレーズ検索」などの活用はもちろん、Googleの検索エンジンを利用する場合はGoogle Dorkと呼ばれる特殊検索クエリによる検索なども利用される。
GoogleDorkは特定のウェブサイトの特定のページやドキュメント、特定のファイル形式(PDF、DOC、XLSなど)、ディレクトリ、脆弱性などを見つけるために使用される。
参考: https://www.exploit-db.com/google-hacking-database ... Google Dorksでの使用に役立つ特殊検索クエリを紹介しているサイト
3.3.1.2. ソーシャルエンジニアリング
ソーシャルエンジニアリングは実際に関係者を装い情報を盗み出す手法。 パスワード入力の盗み見などのショルダーハッキングやごみ箱をあさって書類を盗み見ることなどが含まれる。
また、実際に物理的な移動を伴う場合や人物との接触なども含まれる。
3.4. ネットワークの情報収集
ネットワークの情報収集ではドメインやDNSサーバの情報、IPアドレスなどを取得する。
3.4.1. ドメインから得られる情報
ドメインからIPアドレスを調べるにはnslookup
コマンドなどで可能となる。
またWHOIS情報を取得する方法もある。
3.4.2. IPアドレスから得られる情報
IPアドレスはNICと呼ばれる団体が管理しており、そのドメイン傘下のJPNICが日本国内の.jp
を管理している。
WHOIS情報からは調べたサーバのIPアドレスを含むネットワーク範囲などを求めることができる。
JPNIC: https://www.nic.ad.jp/ja/whois/ja-gateway.html
ICANN Lookup:https://lookup.icann.org/en
3.5. サーバの情報収集
サーバへ直接アクセスするのはやり方によっては不正アクセスと認識される場合がある。 セキュリティの観点から直接サーバにアクセスすることは重要となる。
3.5.1. Ping/traceroute(tracert)
pingは疎通確認用のコマンドでtraceroute(tracert)は通信経路を調べられるコマンド。 traceroute(tracert)は接続経路を調べられるコマンド。
pingはICMPを利用する。 traceroute(tracert)はWindowsの場合はICMP、Linuxの場合はデフォルトではUDPが使用される。
3.5.2. コマンドを利用したネットワーク構成の推測
上記コマンドを駆使することでネットワーク構成の推測が行える。 ただし推測できるのは論理構成のみで物理構成は推測ができない
windowsとLinuxでの通信経路を調べる際に使用されるプロトコルの違いなどもその際に利用できる。
基本手順は以下の通り。
- traceroute/tracertでターゲットまでの経路を確認
- ターゲットホストとその1つ前のネットワークに注目
- その1つ前のネットワークのエッジ(最初のアドレス)内に境界ルータ/FWがある
- 各スキャンで得られるIPアドレスの情報(192.168.XXX.XXXや通常アドレスなどの構成)からネットワークやホストを推測する
- 1~4を様々なスキャンで繰り返す
3.5.2. ポートスキャン
ポートスキャンはサーバの提供するサービスのポートのどこが開いているかを探ること。 ポートの数は0~65535まであり、手動でやるのは得策ではない。(一般的にはWellknownPort(0~1023)を使用する) そのためツールの類を使ってスキャンを行う。 しかしポートスキャンをかけると特徴的なログが残るためサーバ管理者に攻撃やスキャンの兆候を知らせることになる。
ポートに対して接続を試みる方法としてはコネクトスキャンというものが存在する。 この手法は対象サーバにログが残るため検出されやすいという欠点がある。
ポートスキャンでは以下の内容が確認できる。
- 開いている/閉じているポート番号
- FWにアクセス制限されているポートの情報
- 開いているポートで稼働しているサービスに関する情報
- OSに関する情報
またスキャンの際に察知されないようにスキャンする方法はいくつかあり以下のようなものがある。
- SYNスキャン(ハーフオープンスキャン)
- TCPクローズドポートスキャン
- IPIDスキャン
3.5.3. サーバのフットプリンティング
サーバにおけるフットプリンティングはサーバで提供しているサービスのホスト情報を収集することを言う。 フットプリンティングを行うには開いているポートの情報とIPアドレスが必要となる。
フットプリンティングの方法は以下の通り
- 開いているポートにtelnet/netcatでアクセスを試みる(
telnet <IPアドレス> <ポート番号>
) - 返ってきたバナーの情報からサーバ/サービスのバージョン情報などを取得する
なおバナーがでないポートなどもある。 またtelnetのアクセスでバナーが返却されるサービスは以下の通り。
サービス | ポート |
---|---|
ftp | 21/tcp |
ssh | 22/tcp |
telnet | 23/tcp |
smtp | 25/tcp |
pop3 | 110/tcp |
またHTTPでの接続でバナーを表示する場合はtelnet接続後にHEAD / HTTP/1.0
入力後に改行を2回送信する必要。
HTTPSでの接続でバナーを表示する場合はopenssl s_client -host <IPアドレス> -port <ポート番号>
をtelnetの代わりにに入力しHTTPと同じ手法でアクセスする必要がある。
3.6. 脆弱性診断の情報収集
3.6.1. 脆弱性情報の入手先
脆弱性情報の公開もとには以下のようなものがある。
- 開発/販売ベンダーが公開している情報
- JVN/CVEなどの機関が公開している情報
- Exploit DBやRapid 7などのセキュリティ企業/団体が公開している情報
- 有志/ハッカにより公開している情報
3.6.2. CVE(Common Vulnerabilities and Exposures)
CVEは米国の非営利団体MIRTEが運営する共通脆弱性識別子というインシデントに固有番号を付けて管理する仕組み。 管理方法はCVE、CANの2種類がある。
例) CVE-2018-21003
- CVE ... 確定した脆弱性
- CAN ... 脆弱性の可能性
3.6.3. CVSS(Common Vulnerability Scoring System)
CVSSはFIRSTが推進する脆弱性評価システムのこと。 CVSSにより脆弱性の深刻度を同一基準化で定量的に比較することが可能となっている。
評価基準は以下の3つある。
- 基本評価基準 ... 脆弱性時代の特性評価
- 現状評価基準 ... 上記に配布パッチの効果を含めた評価
- 環境評価基準 ... ユーザへの影響度を含めた評価
共通脆弱性評価システムCVSS : https://www.ipa.go.jp/security/vuln/scap/cvss.html
共通脆弱性評価システム計算機 : https://jvndb.jvn.jp/cvss/ja/v31.html
基本評価基準
項目 | 内容 |
---|---|
攻撃元区分(AV) | ローカル / 隣接ネットワーク / ネットワーク / 物理 |
攻撃条件複雑度(AC) | 高 / 中 / 低 |
攻撃前認証認否(Au) | 複数 / 単一 / 不要 |
機密性への影響(C) | なし / 部分的 / 全面的 |
完全性への影響(I) | なし / 部分的 / 全面的 |
可用性への影響(A) | なし / 部分的 / 全面的 |
現状評価基準
項目 | 内容 |
---|---|
攻撃される可能性(E) | 未実証 / 実証可能 / 攻撃可能 / 容易に攻撃可能 |
利用可能な対策レベル(RL) | 正式 / 暫定 / 非公式 / なし |
脆弱性情報の信頼性(RC) | 未確認 / 未検証 / 確認済 |
環境評価基準
項目 | 内容 |
---|---|
緩和策後の攻撃元区分(MAV) | ローカル / 隣接ネットワーク / ネットワーク / 物理 |
緩和策後の攻撃条件複雑度(MAC) | 高 / 中 / 低 |
緩和策後の攻撃に必要な特権レベル(MPR) | 複数 / 低 / 高 |
緩和策後の利用者の関与(MUI) | 不要 / 要 |
緩和策後の影響の想定範囲(MS) | 変更なし / 変更あり |
機密性への要求度(CR) | なし / 部分的 / 全面的 |
完全性への要求度(IR) | なし / 部分的 / 全面的 |
可用性への要求度(AR) | なし / 部分的 / 全面的 |
3.6.4. NVD(National Vulnerability Database)
NVDは米国国立標準研究所(NIST)が管理する脆弱性データベース。 CVSSと呼ばれる危険度の採点があるのが特徴となっている。
3.6.5. JVN / JVN iPedia
日本国内の脆弱性管理基盤。JPCERT/CTTとIPAが共同運営している。 JVNとJVN iPediaは以下のような違いがある。
- JVN ... 早期周知
- JVN iPedia ... 蓄積と共有
3.6.6. Rapid 7 / Explot Database
Metasploitと呼ばれる脆弱性診断プラットホームのモジュールの検索と脆弱性検索が行えるデータベース
3.7. 情報収集ツール/サービス一覧
3.7.1. OSINTツール
OSINTで役立つWebサービスやツールを記載する。
名称 | URL | 分類 | 説明 |
---|---|---|---|
OSINT Framework | https://osintframework.com/ | Webサイト | OSINTツールの紹介ページ |
Google Hacking Database | https://www.exploit-db.com/google-hacking-database | Webサイト | Google Dorksでの使用に役立つ検索コマンドを紹介しているサイト |
Netcraft Site Report | https://sitereport.netcraft.com/ | Webサイト | Webサイトがどこのサーバーで管理されてるか調査・確認できるサービス |
Shodan.io | https://www.shodan.io/ | Webサイト | インターネットに公開されたデバイスの中からポートが開放されている機器を調べることのできるサイト |
Censys.io | https://search.censys.io/ | Webサイト | グローバルIPアドレスから該当サーバーで利用できるプロトコルを調査したり、サーバー証明書を検索することができる |
TinEye | https://tineye.com/ | Webサイト | ウェブ上で似た画像を特定しその情報や出典を調査できるサイト |
SPOKEO | https://www.spokeo.com/ | Webサイト | 人物情報を収集し提供するオンラインプラットフォーム |
Maltego | https://www.maltego.com/ | ソフトウェア | インターネット上の情報を収集して関連性を可視化するアプリ |
theHarvester | https://github.com/laramies/theHarvester | CLIツール | 主に電子メールアドレスやドメインに関連する情報を収集し組織や個人のデータを見つけることのできるツール |
Recon-ng | https://github.com/lanmaster53/recon-ng | CLIツール | ウェブ上から情報を収集し分析するためのツール。脆弱性評価や攻撃可能性の調査、組織や個人のプロファイリングなどで使用される。 |
SpiderFoot | https://github.com/smicallef/spiderfoot | CLIツール | インターネット上の情報を収集するツール。これで集めた情報はネットワークの脆弱性やリスクを評価するために使用される。 |
CREEPY | https://github.com/ilektrojohn/creepy | ソフトウェア | ソーシャルメディアを中心にインターネット上から個人の情報を収集するツール |
Metagoofil | https://github.com/opsdisk/metagoofil | CLIツール | ウェブ上からメタデータを収集するために使用されるツール。情報のリークや組織のデジタルフットプリントを評価するのに使用される。 |
FOCA | https://github.com/ElevenPaths/FOCA | CLIツール | ウェブサイトからメタデータを取得し組織や個人のプロファイリングするツール |
SKIPTRACER | https://github.com/xillwillx/skiptracer | CLIツール | 人物情報を収集して関連性を分析するツール |
その他の国内の情報取得に役立つサービス/情報源を以下に記載する。
名称 | URL |
---|---|
GoogleMaps | https://www.google.com/maps |
ネット電話帳 - 住所でポン! | https://jpon.xyz/ |
電話番号検索 | https://www.jpnumber.com/ |
ZipCode Japan | https://zipcode-jp.com/modules/zipcode/ |
3.7.2. ダークウェブ向けOSINTツール
ダークウェブ向けのOSINTツールは以下。
名称 | URL | 説明 |
---|---|---|
TorBot | https://github.com/DedSecInside/TorBot | .onionクローラとして動作しダークウェブ上から情報収集を行う |
DarkScrape | https://github.com/itsmehacker/DarkScrape | Torサイトでメディアリンクを見つけるためのOSINTツール |
FreshOnion | https://github.com/dirtyfilthy/freshonions-torscraper | 非表示サービスの発見などが行える |
Onion | https://github.com/k4m4/onioff | Deep Web URLを調査するために設計されたツール |
TorCrawl | https://github.com/james04gr/TorCrawl.py | Tor上の隠されたサービスをナビゲートとコード抽出に使用可能 |
Photon | https://github.com/s0md3v/Photon | ディープウェブのURLを探索するためのPythonベースの簡単なツール |
Hakrawler | https://github.com/hakluke/hakrawler | Web アプリケーションクローラ。Webアプリケーション内のエンドポイントを識別できる |
OSINT-SPY | https://github.com/SharadKumar97/OSINT-SPY | OSINTツール |
Gasmask | https://github.com/twelvesec/gasmask | ペネトレーションテスタ向けの包括的なOSINT情報収集ツール |
h8mail | https://github.com/khast3x/h8mail | 電子メールOSINTおよびパスワード侵害ハンティングツール |
Skiptracer | https://github.com/xillwillx/skiptracer | OSINTスクレイピングフレームワーク |
FinalRecon | https://github.com/thewhiteh4t/FinalRecon | Web偵察OSINTツール |
3.7.3. スキャニングツール
名称 | URL | 分類 | 説明 |
---|---|---|---|
ネットワーク系コマンド | - | CLIツール | ping,tracerouteなどのネットワーク系コマンド |
NetCat(コマンド) | https://github.com/opsdisk/metagoofil | CLIツール | TCP/UDP接続が行えるツール。Linux/Windowsに標準搭載されている。 |
NMap | https://nmap.org/man/ja/index.html | CLIツール | ポートスキャン用ツール |
3.7.4. 脆弱性情報源
脆弱性の情報を公開している情報源となるサイトを以下に記載する。
名称 | URL | 説明 |
---|---|---|
NVD | https://nvd.nist.gov/ | 脆弱性管理データの米国政府リポジトリ |
JVN | https://jvn.jp/ | 日本の全国的な脆弱性データベース |
CVE | https://cve.mitre.org/ | CVE(共通脆弱性識別子)に基づいた脆弱性のデータベース化したもの |
CVE List | https://www.cve.org/ | CVE List |
Exploit DB | https://www.exploit-db.com/ | 脆弱性エクスプロイト・アーカイブ |
Rapid 7 | https://www.rapid7.com/db/ | 脆弱性検索エンジン |
CX Security | https://cxsecurity.com/exploit/ | 最新のエクスプロイトに直接アクセスでき検索できるデータベース |
Vulnerability Lab | https://www.vulnerability-lab.com/ | エクスプロイトや PoC を備えた大規模な脆弱性データベース |
Packet Storm Security | https://packetstormsecurity.com/files/tags/exploit/ | 脆弱性や勧告の共有に特化したエクスプロイト コミュニティ |