為什麼要做資訊收集?#
情報搜集的目的是獲取滲透目標的準確資訊,以了解目標組織的運作方式,確定最佳的攻擊路線,而這一切應當悄無聲息地進行,不應讓對方察覺到你的存在或分析出你的意圖。
滲透測試最重要的階段之一就是資訊收集。為了啟動滲透測試,用戶需要收集關於目標主機的基本資訊。== 用戶得到的資訊越多,滲透測試成功的概率也就越高 ==。
資訊收集的分類#
- 被動資訊收集:== 利用第三方的服務對目標進行訪問 ==:Google 搜索、Shodan 搜索、其他綜合工具,被動資訊收集是指盡可能多地收集與目標相關的資訊。
- 主動資訊收集:== 通過直接掃描目標主機或者網站 ==,主動方式能獲取更多的資訊,目標系統可能會記錄操作資訊。
主要收集哪些資訊?#
IP 資源 | 伺服器資訊 | 網站資訊 | 人力資源 |
---|---|---|---|
真實 IP | 操作系統類型和版本 | CMS | 域名所有人、註冊商 |
旁站資訊 | 開放端口 | WAF | 手機號碼 |
C 段主機 | x | Web 中間件 | 郵箱 |
x | x | 開發語言 | 各種隱私 |
x | x | 資料庫 | x |
x | x | API、特定文件 | x |
資訊收集方法#
1. 真實 IP#
01、判斷是否真實 IP#
談到真實 IP,先簡單介紹一下什麼是
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 前的記錄 ==,然後 == 分析哪些 IP 不在現在的 CDN 解析 IP 裡面 ==,就 == 有可能是沒有加 CDN 加速時的真實 IP==。
- viewdns.info DNS 歷史記錄網站,記錄了幾年內的更改記錄。

-
securitytrails.com 龐大的 DNS 歷史數據庫,我試了下可以查出幾年內網站用過的 IP、機房資訊等,非常可怕。(需要註冊帳號才能使用)
語法domain:baihe.com type:A
只需在搜索字段中輸入網站域名,然後按 Enter 鍵即可,這時 “歷史數據” 就可以在左側的菜單中找到。
- cloudflare 的忠告
==A、AAAA、CNAME 或 MX 記錄指向您的源站,將暴露您的原始 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 的 banner 資訊#
隨機掃描 10000 個 IP 的 80 端口。
zmap -B 10M -p 80 -n 10000 -o results.csv
循環得到的 IP,用 curl 打印出 banner。
for i in `zmap -B 10M -p 80 -n 10000`;do curl -s -I "$i" >> out1;done
然後匹配到目標域名的 == 相同 banner==,那個 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
谷歌搜索引擎
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. 判斷操作系統類型和版本#
- nmap
nmap -O 192.168.88.21
-
網站 url 對大小寫是否敏感(不敏感是 windows,反之 linux)
-
windwos 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)利用公眾號,微博等社交軟體搜索公司的資訊。
(7)百度圖片(這個看運氣了,有時候網頁搜出來太多了,直接看看百度圖片,有可能出現用戶名,篩選起來也很快,是我在之前某次攻防中需要找到一個編號的時候想到了,但是編號打碼太模糊了看不清楚)。
(8)找一下常用用戶名的字典進行收集。
7. 識別 CMS#
網站內容管理系統,即 Content Management System,英文縮寫是 CMS。網站內容管理系統具有許多 == 基於模板的優秀設計 ==,== 可以加快網站開發的速度和減少開發的成本 ==。網站內容管理系統的功能並不只限於文本處理,它也可以處理圖片、Flash 動畫、聲像流、圖像甚至電子郵件檔案。網站內容管理系統其實是一個很廣泛的稱呼,從一般的博客程序,新聞發布程序,到綜合性的网站管理程序都可以被稱為內容管理系統。
01、手工識別#
- == 頁尾處可能暴露 cms==
power by ...
- ==robots.txt 文件 ==
通過特定路徑
,判斷此 CMS。
- == 響應頭資訊 ==
cookie處
。
- == 網站後台 ==
網站的後台登錄介面也有建站 cms 的特徵碼。
- 根據 URL 路由判斷,如 wp-admin。
02、指紋識別工具#
主要開發思路:request 建立連接 --- 獲取網頁內容 --- 利用正則表達式匹配關鍵字 --- 識別 CMS 類型。
- ==chrome 擴展 -- Wappalyzer==

- 常用的工具有
CMSeek
。
03、在線 CMS 識別網站#
http://whatweb.bugscaner.com/look/
8. 識別 Web 中間件#
- 響應頭。
- 根據報錯資訊判斷。
- 根據默認頁面判斷。
9. 互聯網資產收集#
包括歷史漏洞資訊、GitHub 源代碼資訊泄漏、SVN 源代碼資訊、泄漏網盤文件資訊等。
01、歷史漏洞資訊#
google 搜相應的軟體漏洞。
02、GitHub 源代碼資訊泄漏#
GitHub 是一個面向開源及私有軟體項目的托管平台,很多人喜歡把自己的代碼上傳到平台托管。== 攻擊者通過關鍵詞進行搜索 ==,可以找到 == 關於目標站點的敏感資訊 ==,甚至可以下載網站源碼。
開發者在使用 git 作為版本控制時,在一個目錄中初始化一個倉庫以後,會在這個目錄下產生一個名叫 .git
的隱藏文件夾,這個文件夾裡面保存了這個倉庫的所有版本等一系列資訊。== 如果伺服器將.git
文件夾放在了 web 目錄下 ==,就可能導致攻擊者利用.git
文件夾內的資訊獲取應用程序所有源代碼。
- github 語法搜索
in:name | vue in 匹配其名稱中含有 "jquery" 的倉庫。 |
---|---|
in:description | vue in,description 匹配其名稱或說明中含有 "vue" 的倉庫。 |
in:readme | vue in 匹配其自述文件中提及 "vue" 的倉庫。 |
repo:owner/name | repo/blog 匹配特定倉庫名稱,比如:用戶為 biaochenxuying 的 blog 項目。 |
搜索語法詳情看
https://github.com/FrontEndGitHub/FrontEndGitHub/issues/4
- GitHack,拉取源碼。
03、備份站點壓縮包#
目錄掃描嘗試獲取。
04、SVN#
可以利用.svn/entries 文件,獲取到伺服器源碼、svn 伺服器帳號密碼等資訊)更嚴重的問題在於,SVN 產生的.svn 目錄下還包含了以.svn-base 結尾的源碼文件副本(低版本 SVN 具體路徑為 text-base 目錄,高版本 SVN 為 pristine 目錄),如果伺服器沒有對此類後綴做解析,黑客則可以直接獲得文件源碼。
詳情
https://cloud.tencent.com/developer/article/1376492
- 源碼還原工具
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 | 爆破、shift 後門 |
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 | memcacache | 未授權 |
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。