なぜ情報収集を行うのか?#
情報収集の目的は、侵入対象の正確な情報を取得し、対象組織の運営方法を理解し、最適な攻撃ルートを特定することです。そして、これらはすべて静かに行われるべきであり、相手にあなたの存在や意図を察知させてはいけません。
侵入テストの最も重要な段階の一つが情報収集です。侵入テストを開始するために、ユーザーは対象ホストに関する基本情報を収集する必要があります。== ユーザーが得る情報が多ければ多いほど、侵入テストの成功率が高くなります ==。
情報収集の分類#
- パッシブ情報収集:== 第三者のサービスを利用して対象にアクセスする ==:Google 検索、Shodan 検索、その他の総合ツール。パッシブ情報収集は、できるだけ多くの関連情報を対象から収集することを指します。
- アクティブ情報収集:== 対象ホストやウェブサイトを直接スキャンする ==。アクティブな方法では、より多くの情報を取得できます。対象システムは操作情報を記録する可能性があります。
主要に収集する情報は?#
IP リソース | サーバー情報 | ウェブサイト情報 | 人的リソース |
---|---|---|---|
実際の IP | OS の種類とバージョン | CMS | ドメイン所有者、登録業者 |
サブサイト情報 | 開放ポート | WAF | 電話番号 |
C クラスホスト | x | ウェブミドルウェア | メール |
x | x | 開発言語 | 様々なプライバシー |
x | x | データベース | x |
x | x | API、特定ファイル | x |
情報収集方法#
1. 実際の IP#
01、実際の IP かどうかの判断#
実際の IP について話す前に、まず
CDN
技術について簡単に紹介します。CDN の日本語名は == コンテンツ配信ネットワーク == で、ネットワークの安定性と高速な伝送を保証するために、ウェブサービスプロバイダーはネットワークの異なる位置にノードサーバーを設置し、CDN 技術を通じてネットワークリクエストを最適なノードサーバーに分配します。
- オンラインサイトの確認
ウェブマスター用ツール:http://ping.chinaz.com/
愛站網:https://ping.aizhan.com/
== 異なる応答 IP が複数ある場合、それは CDN が存在する可能性を示しています ==。
- nslookup
ドメイン名解決に対応する複数の IP アドレスが返される場合、ほとんどの場合 CDN を使用しています。
02、実際の IP を見つける方法(CDN を回避)#
1. サブドメイン IP を探す#
サブドメインは、メインサイトと同じサーバーまたは同じ C クラスネットワークにある可能性があり、サブドメインの IP 情報を調べることでメインサイトの実際の IP 情報を判断するのに役立ちます。
下記の ==4. サブドメイン情報収集 == を参照してください。
2. 過去の DNS 解決情報を確認#
IP とドメイン名のバインドの履歴を確認し、==CDN を使用する前の記録 == が存在する可能性があり、== 現在の CDN 解決 IP に含まれていない IP を分析すれば ==、==CDN 加速がない時の実際の IP である可能性があります ==。
- viewdns.info DNS 履歴記録サイトで、数年間の変更記録を記録しています。

-
securitytrails.com 大規模な DNS 履歴データベースで、数年間にわたって使用された IP やデータセンター情報を調べることができ、非常に驚くべきです。(アカウント登録が必要です)
構文domain:baihe.com type:A
検索フィールドにウェブサイトのドメイン名を入力し、Enter キーを押すだけで、「履歴データ」が左側のメニューに表示されます。
- cloudflare のアドバイス
==A、AAAA、CNAMEまたはMXレコードがあなたのオリジナルIPを指す場合、あなたのオリジナルIPが露出します。
==
したがって、ドメイン名に対応する DNS 解決記録を確認できます。
3. 海外のホストを利用して直接探査#
もう一つの方法は、海外のホストがない場合、公開された多地点 ping サービスを利用することです。多地点 ping サービスには海外の探査ノードがあり、== 海外ノードの ICMP 応答情報を利用して実際の IP 情報を判断できます ==。
- 海外ノード ping アドレス
http://www.webkaka.com/Ping.aspx
4. 相手から送られたメールを基に、メールサーバーの IP を調べる#
- RSS メール購読、ほとんどのウェブサイトは sendmail を備えており、私たちにメールを送信します。この時、メールソースコードを確認すると、サーバーの実際の IP が含まれています。
- 目標システムに送信機能がある場合、通常はユーザー登録 / パスワード回復などの場所で、登録確認、確認コードなどのシステムから送信されたメールを通じてメールの原文を確認することで送信者の IP アドレスを確認できます。
- DNS のMX レコード(上記の第 2 小点を参照)
5. 証明書の確認#
原理は、IP の 443 ポートに clienthello を送信し、相手が返す serverhello に SSL 証明書が含まれており、SSL 証明書の ==commonname にドメイン情報 == があります。これにより、この IP を解決するドメインを知ることができます。したがって、より正確に言うと、IP の 443 ポートはドメインを露出する可能性があります。
https://search.censys.io/#で過去の証明書を確認
構文
parsed.names: 4399.com and tags.raw: trusted
有効な証明書のみを表示するクエリパラメータは:tags.raw:trusted

Censys は、上記の検索条件に一致するすべての標準証明書を表示します。これらの証明書はスキャン中に見つかりました。
適当に一つの証明書を押すと

6.zmap を使用してターゲット IP セグメント 80 のバナー情報を取得#
ランダムに 10000 の IP の 80 ポートをスキャン
zmap -B 10M -p 80 -n 10000 -o results.csv
得られた IP をループして curl でバナーを表示
for i in `zmap -B 10M -p 80 -n 10000`;do curl -s -I "$i" >> out1;done
その後、ターゲットドメイン名の == 同じバナー == に一致する IP が実際の IP です。
7. ドメイン名の微調整#
以前 CDN を使用していたときの習慣で、WWW ドメインのみ CDN を使用し、裸ドメインは使用しないようにしていました。これは、ウェブサイトを維持する際に便利で、CDN キャッシュを待つ必要がないためです。したがって、ターゲットウェブサイトの www を削除して ping して、IP が変わるかどうかを確認します。
8. ソーシャルエンジニアリング#
ターゲットウェブサイトの管理者の CDN アカウントを取得した場合、CDN の設定内でウェブサイトの実際の IP を見つけることができます。
2. サブサイト情報収集#
サブサイトは、攻撃対象と == 同じサーバー上の異なるウェブサイト == であり、攻撃対象に脆弱性がない場合、サブサイトの脆弱性を探し、サブサイトを攻撃し、その後権限を昇格させてサーバーの最高権限を取得することができます。
- nmap でポートをスキャン
nmap -sV -p- 実際のip -v -oN xxx.txt
- オンライン確認サイト
3.C クラス情報収集#
C クラスホストは、== ターゲットサーバーと同じ C クラスネットワーク == のサーバーを指します。攻撃対象の C クラス生存ホストは情報収集の重要な情報であり、多くの企業の内部サーバーは同じ C クラスネットワーク内に存在する可能性があります。
- nmap
nmap -sn 実際のIP/24 -v -oN xxx.txt
-n (ドメイン名解決を使用しない)
Nmap に発見したアクティブ IP アドレスに対して逆引きドメイン名解決を決して行わないように指示します。DNS は一般的に遅いため、これにより事がより迅速に進むことができます。
- Google を利用して、構文:site:125.125.125.*
4. サブドメイン情報収集#
01、サブドメインブルートフォースツール#
- ==AllinOne== https://github.com/shmilylty/OneForAll
Python で書かれたツールで、OneForAll は Python 3.6.0 以上のバージョンで実行する必要があります。OneForAll はデフォルトパラメータで正常に実行されると、results ディレクトリに対応する結果を生成します。
使用前に依存関係をインストールしてください。pip install -r requirements.txt
python3 oneforall.py --target example.com run
python3 oneforall.py --targets ./example.txt run
- JSFinder 下記の ==8.06== を参照
- ESD (GitHub からダウンロード可能ですが、私が使用したときにエラーが出ました)
# 単一ドメインをスキャン
esd -d qq.com
- subfinder(GitHub からダウンロード、Go 言語が必要)
subfinder -d hackerone.com
httpx
と組み合わせて使用することで、稼働中の http サーバーを見つけることができます(httpx は Go 言語で書かれたものです)。
echo 4399.com | subfinder -silent | httpx -ip > subdomain_list
httpx --silentはドメインのみを出力します。

02、オンライン確認サイト#
- == 検索エンジンでサブドメインを発見 ==
百度検索エンジン
site:baidu.com
Google検索エンジン
site:baidu.com
https://fofa.info/
https://www.shodan.io/
https://x.threatbook.com/v5/mapping
https://www.dnsdb.io/zh-cn/ 使いやすいが多く使うと会員が必要
baidu.com type:A
を入力

5. OS の種類とバージョンを判断する#
- nmap
nmap -O 192.168.88.21
-
ウェブサイトの URL が大文字小文字に敏感かどうか(敏感でない場合は Windows、逆に Linux)
-
Windows の TTL 値は一般的に 128(または > 100)、Linux は 64 です。
6. ウェブサイト所有者情報収集#
辞書作成に役立ちます。
01、whois#
whois(「Who is」と発音され、略語ではありません)は、ドメインの IP や所有者などの情報を照会するための転送プロトコルです。簡単に言えば、whois は、ドメインがすでに登録されているかどうか、また登録されたドメインの詳細情報(== ドメイン所有者、ドメイン登録業者 ==)を照会するためのデータベースです。whois を通じてドメイン情報を照会します。初期の whois 照会は主にコマンドラインインターフェースで存在しましたが、現在はオンライン照会ツールがいくつか登場し、異なるデータベースに一度に照会できます。ウェブインターフェースの照会ツールは、依然として whois プロトコルを使用してサーバーに照会リクエストを送信し、コマンドラインインターフェースのツールは、システム管理者によって広く使用されています。whois は通常、TCPプロトコルの 43 ポートを使用します。各ドメイン/IP の whois 情報は、対応する管理機関によって保存されています。
== 各ドメインまたは IP の WHOIS 情報は、対応する管理機関によって保存されています ==。例えば、.com で終わるドメインの WHOIS 情報は.com ドメイン運営者の VeriSign によって管理され、中国の国トップレベルドメイン.cn は CNNIC によって管理されています。
02、社会工学#
現在、ターゲットの同僚から情報を得たと仮定します。例えば、ターゲットの本名、連絡先、勤務時間などです。* 優れた社会工学者は、前後の情報を整理、分類、フィルタリングして、巧妙に準備された罠を構築します。これにより、ターゲットが自ら罠にかかることができます。*
03、公式サイトに保存された個人情報#
一般的に、企業は公式の連絡先を公式サイトに掲載しており、関連する連絡先を通じてメール情報や電話情報を収集できます。
04、求人情報収集#
求人サイトの求人情報や求職履歴書には、大量の人員関連情報が含まれています。求人情報には、求人企業の関連電子メール、電話番号などの情報が含まれ、求職履歴書には求職者の名前、電話番号、電子メール、職歴など非常に詳細な個人情報が含まれています。求人サイトにセキュリティの脆弱性が存在する場合、求職者の履歴書が漏洩する可能性があります。
05、ICP 备案情報#
企業情報
、备案审核时间
を知る
https://beian.miit.gov.cn/#/Integrated/index
06、露出位置#
上記の第 2 点には同様の効果があります。
- 単一証明書情報を確認
07、企業情報を調べる#
08、メール情報を取得#
09、その他#
(1)ウェブ上でユーザー名を直接探す(一般的にメールなどがあるため、ここでユーザー名を取得できます。会社名や数字に基づいて相応の辞書を生成します)
(2)Google 構文を利用して、xlsx などを検索したり、直接この会社に関連するものを検索したりすると、ユーザー名が出てくる可能性があります。
(3)GitHub でこの会社を探して、何か漏洩がないか確認します。
(4)求人サイトで面接官などが電話番号やユーザー名を漏洩する可能性があるため、電話番号を基にユーザー名を調べます。
(5)会社の構造図を検索し、リーダーがいる場合はメモします。
(6)公式アカウント、Weibo などのソーシャルメディアを利用して会社の情報を検索します。
(7)百度画像(これは運次第ですが、時にはウェブ検索で多くの結果が出てしまうため、直接百度画像を見てユーザー名が出てくる可能性があります。フィルタリングが非常に迅速で、以前の攻防の際に番号を見つける必要があったときに思いついた方法ですが、番号がぼやけていて見えにくいです)。
(8)一般的なユーザー名の辞書を収集します。
7. CMS の識別#
ウェブサイトコンテンツ管理システム、つまり Content Management System の略で、CMS です。ウェブサイトコンテンツ管理システムは、多くの == テンプレートベースの優れたデザイン == を持ち、== ウェブサイトの開発速度を加速し、開発コストを削減 == することができます。ウェブサイトコンテンツ管理システムの機能は、テキスト処理に限らず、画像、Flash アニメーション、音声ストリーム、画像や電子メールアーカイブも処理できます。ウェブサイトコンテンツ管理システムは、一般的なブログプログラム、ニュース発表プログラムから、総合的なウェブサイト管理プログラムまで、広範な呼称です。
01、手動識別#
- == ページのフッターに CMS が露出する可能性があります ==
power by ...
- ==robots.txt ファイル ==
特定のパス
を通じて、この CMS を判断します。
- == レスポンスヘッダー情報 ==
cookie部分
- == ウェブサイトのバックエンド ==
ウェブサイトのバックエンドログインインターフェースにも、CMS の特徴的なコードがあります。
- URL ルーティングに基づいて、wp-admin などを判断します。
02、フィンガープリンティングツール#
主な開発思路:リクエストを確立し、ウェブコンテンツを取得し、正規表現でキーワードをマッチさせて CMS タイプを識別します。
- ==chrome 拡張 -- Wappalyzer==

- よく使われるツールには
CMSeek
があります。
03、オンライン CMS 識別サイト#
http://whatweb.bugscaner.com/look/
8. ウェブミドルウェアの識別#
- レスポンスヘッダー
- エラーメッセージに基づいて判断
- デフォルトページに基づいて判断
9. インターネット資産収集#
歴史的な脆弱性情報、GitHub ソースコード情報漏洩、SVN ソースコード情報、漏洩したクラウドファイル情報などを含みます。
01、歴史的な脆弱性情報#
Google で該当するソフトウェアの脆弱性を検索します。
02、GitHub ソースコード情報漏洩#
GitHub はオープンソースおよびプライベートソフトウェアプロジェクトのホスティングプラットフォームで、多くの人が自分のコードをプラットフォームにアップロードすることを好みます。== 攻撃者はキーワードを使用して検索することで ==、== ターゲットサイトに関する機密情報 == を見つけることができ、さらにはウェブサイトのソースコードをダウンロードすることもできます。
開発者が git をバージョン管理として使用する際、ディレクトリ内にリポジトリを初期化すると、.git
という名前の隠しフォルダが生成され、このフォルダにはリポジトリのすべてのバージョンなどの情報が保存されます。== サーバーが.git
フォルダをウェブディレクトリに置いた場合 ==、攻撃者は.git
フォルダ内の情報を利用してアプリケーションのすべてのソースコードを取得する可能性があります。
- GitHub 構文検索
in:name | vue in "jquery" を含むリポジトリの名前に一致します。 |
---|---|
in:description | vue in,description 名前または説明に "vue" を含むリポジトリに一致します。 |
in:readme | vue in 自己紹介ファイルに "vue" が言及されているリポジトリに一致します。 |
repo:owner/name | repo/blog 特定のリポジトリ名に一致します。 |
検索構文の詳細は
https://github.com/FrontEndGitHub/FrontEndGitHub/issues/4を参照してください。
- GitHack、ソースコードを取得
A `.git` folder disclosure exploit
03、バックアップサイトの圧縮ファイル#
ディレクトリスキャンを試みて取得します。
04、SVN#
.svn/entries ファイルを利用して、サーバーのソースコード、SVN サーバーのアカウントパスワードなどの情報を取得できます。さらに深刻な問題は、SVN が生成する.svn ディレクトリには、.svn-base で終わるソースコードファイルのコピーも含まれており(低バージョン SVN では text-base ディレクトリ、高バージョン SVN では pristine ディレクトリ)、サーバーがこのような拡張子を解析しない場合、ハッカーは直接ファイルのソースコードを取得できます。
詳細は
https://cloud.tencent.com/developer/article/1376492を参照してください。
- ソースコード復元ツール
SvnExploit支持SVN源代码泄露全版本Dump源码
05、DNS 情報漏洩#
A、MX レコード漏洩
06、インターフェース漏洩#
07、その他の機密ファイル#
使用している CMS を確認し、その CMS のディレクトリ構造に基づいてスキャンします。
CMS を使用していない場合は、一般的な機密ファイル名の辞書を使用してスキャンします。例えば:
- robots.txt
- crossdomain.xml
- sitemap.xml
- xx.tar.gz
- xx.bak
- phpinfo
08、クラウドストレージ検索#
凌風云検索
小白盤検索
大力盤検索
小不点検索(微盤)
百度網盤クローリングオープンソースツール
09、脆弱性に基づく情報漏洩#
Google で該当するミドルウェアの情報漏洩を検索します。
10. WAF 識別#
WAF 機能
画像を見て WAF を探します。
https://blog.csdn.net/weixin_46676743/article/details/112245605
ツール
- WAFW00f
または、手動で誤った URI や SQL 文、XSS を入力して WAF アラートをトリガーできるか確認します。
- nmap -p 80 --script http-waf-detect.nse 4399.com
11、ポートスキャン#
全ポートスキャン方法
nmap は速度が遅い
nmap -sV -Pn -p- 1.1.1.1 -oX result.xml
masscan は速度が速いが、時には不正確です。
masscan --open --banners -p- 1.1.1.1 --rate 1000 -oX result.xml
一般的なポート脆弱性情報表
ポート番号 | サービス | 攻撃方法 |
---|---|---|
21/22/69 | ftp/tftp | ブルートフォース、スニッフィング、バッファオーバーフロー、バックドア |
22 | ssh | ブルートフォース、28 のバックスペース |
23 | telnet | ブルートフォース、スニッフィング |
25 | smtp | メール偽造、ブルートフォース |
53 | dns | DNS ゾーン転送、DNS ハイジャック、DNS キャッシュポイズニング、DNS 詐欺、DNS トンネリング防火壁 |
67/68 | dhcp | ハイジャック、詐欺 |
110 | pop3 | ブルートフォース |
139 | samba | ブルートフォース、未承認、リモートコード実行 |
143 | imap | ブルートフォース |
161 | snmp | ブルートフォース |
389 | ldap | インジェクション、未承認 |
512/513/514 | linux r | rlogin を直接使用 |
873 | rsync | 未承認 |
1080 | socket | ブルートフォース、内部侵入 |
1352 | lotus | ブルートフォース、弱いパスワード、情報漏洩(ソースコード) |
1433 | mssql | ブルートフォース、インジェクション |
1521 | oracle | ブルートフォース、インジェクション、TNS リモートポイズニング |
2049 | nfs | 不適切な設定 |
2181 | zookeeper | 未承認 |
3306 | mysql | ブルートフォース、インジェクション、サービス拒否 |
3389 | rdp | ブルートフォース、シフト後のバックドア |
4848 | glassfish | ブルートフォース、コンソールの弱いパスワード、認証バイパス |
5000 | sybase/db2 | ブルートフォース、インジェクション |
5432 | postgreSQL | ブルートフォース、弱いパスワード、インジェクション、バッファオーバーフロー |
5632 | pcanywhere | サービス拒否、コード実行 |
6379 | redis | 未承認、ブルートフォース、弱いパスワード |
7001 | weblogic | 逆シリアル化、コンソールの弱いパスワード、コンソールに webshell をデプロイ |
8069 | zabbix | リモートコマンド実行 |
8080-8090 | web | 一般的な web 攻撃、ブルートフォース、ミドルウェアの脆弱性、CMS のバージョン脆弱性 |
9090 | websphere | ブルートフォース、コンソールの弱いパスワード、逆シリアル化 |
9200/9300 | elasticsearch | リモートコード実行 |
11211 | memcached | 未承認 |
27017 | mongoDB | ブルートフォース、未承認 |
12. ディレクトリスキャン#
-
gobuster https://github.com/OJ/gobuster
-
dirsearch https://github.com/maurosoria/dirsearch
13.APP 情報収集#
14. その他の情報収集手段#
- 知乎
- 贴吧
- ソーシャルエンジニアリングデータベース
- telegram
任意のメールを送信 http://tool.chacuo.net/mailanonymous と https://emkei.cz/
一時的なメール http://www.yopmail.com/
メールプールグループ http://veryvp.com/
情報収集を防ぐ方法#
ウェブサイト管理者が自分のウェブサイトがハッカーによる前期情報収集を避けたい場合、ウェブページの特徴情報を変更することができます。
(1)ウェブページの表示情報を変更する(ウェブページテンプレート、技術サポート、キーワード、バージョン情報、バックエンドログインモジュール情報など)
(2)ウェブページのパス情報を変更する(/robots、/admin など)
(3)ウェブページの情報を個性的に変更し、ウェブページのパス情報をピンインの略称や個性的な方法で隠すことができます。例えば、/admin を /a8min に変更することができます。