渗透测试之信息收集篇
文章目錄
- 前言:
- 一、域名信息收集:
- 1、Whois查詢:
- 2、備案信息查詢:
- 二、敏感信息收集:
- 1、Google Hacking語法:
- 2、FOFA網絡安全空間搜索:
- 3、Github信息泄露:
- 三、子域名收集:
- 1、子域名檢測工具:
- 2、利用搜索引擎發現子域:
- 3、通過在線工具搜集:
- 四、端口探測:
- 1、Nmap:
- 2、Masscan掃描工具:
- 3、在線網站:
- 常見的端口及其說明:
- 五、CMS指紋識別:
- 1、在線網站:
- 2、指紋識別工具:
- 3、CMS漏洞查詢:
- 六、查找真實IP:
- 1、什么是CDN:
- 2、如何判斷目標服務器使用了CDN:
- 3、如何尋找真實IP:
- 七、敏感目錄/文件收集:
- 1、dirsearch:
- 2、御劍后臺掃描:
- 八、社會工程學:
- 最后:
前言:
信息收集是進行滲透測試的第一步,也是非常重要的一步。正所謂 “知己知彼,方能百戰不殆”,因此在這個階段,我們要盡可能地收集目標組織的信息。
關于信息收集的重要性我在這學期的護網行動中深有體會,一開始找不到目標資產,一度以為沒有資產信息,后來轉變了思路才發現原來資產有這么多。因此通過篇文章來系統的總結下信息收集的大致內容和常用方法,話不多說,開干。 (? ?_?)?
一、域名信息收集:
首先,在得到一個目標的域名后,我們要做的第一件事就是去獲取域名的注冊信息,即該域名的DNS服務器信息和注冊人的個人信息等。
域名信息收集的常用方法有以下幾種:
1、Whois查詢:
Whois是一個標準的互聯網協議,可用于查詢域名是否被注冊,以及注冊域名的詳細信息(如域名所有人、域名注冊商等)。通過Whois查詢得到注冊人的姓名和郵箱信息對測試個人站點非常有用,因為我們可以通過搜索引擎和社交網絡挖掘出域名所有人的很多信息。對中小站點而言,域名所有人很可能就是管理員。
使用方法:
1、通過在線網站:
站長之家:https://whois.chinaz.com/
阿里云域名信息查詢:https://whois.aliyun.com
2、通過kali自帶的whois查詢工具:
也可以在windows下安裝使用 下載鏈接,安裝方法可以參考這篇文章:鏈接,安裝完成后使用方法和kali的一樣。
2、備案信息查詢:
網站備案是根據國家法律法規規定,需要網站的所有者向國家有關部門申請的備案,這是國家信息產業部對網站的一種管理,為了防止在網上從事非法的網站經營活動的發生。主要針對國內網站,如果網站搭建在其他國家,則不需要進行備案。
常用的查詢網站有:
ICP備案查詢:http://icp.chinaz.com/
天眼查:https://beian.tianyancha.com/
二、敏感信息收集:
面對某些安全做得很好的目標,直接通過技術層面很難完成滲透測試。在這種情況下,可以利用搜索引擎對目標暴露在互聯網上的關聯信息進行搜集。例如:數據庫文件、SQL注入、服務配置信息,甚至是通過Git找到站點泄露源代碼,以及Redis等未授權訪問、Robots.txt等敏感信息,從而達到滲透目的。
收集敏感信息的常用方法:
1、Google Hacking語法:
Google Hack是指使用Google、百度等搜索引擎對某些特定網站主機漏洞(通常是服務器上的腳本漏洞)進行搜索,以達到快速找到漏洞主機或特定主機的漏洞的目的。
對于普通的用戶而言,Google只是一款強大的搜索引擎,而對于滲透人員而言,它可能是一款絕佳的黑客工具。正因為Google的檢索能力強大,我們可以構造特殊的關鍵字語法來搜索互聯網上的的相關敏感信息。
常用語法:
Site:找到與指定網站有聯系的URL。例如輸入“Site:family.chinaok.com”。所有和這個網站有聯系的URL都會被顯示。Intitle:搜索網頁標題中包含有特定字符的網頁。例如輸入“intitle: cbi”,這樣網頁標題中帶有cbi的網頁都會被搜索出來。Inurl:搜索包含有特定字符的URL。例如輸入“inurl:cbi”,則可以找到帶有cbi字符的URL。Intext:搜索網頁正文內容中的指定字符,例如輸入“intext:cbi”。這個語法類似我們平時在某些網站中使用的“文章內容搜索”功能。Filetype:搜索指定類型的文件。例如輸入“filetype:cbi”,將返回所有以cbi結尾的文件URL。這些就是Google的常用語法,也是Google Hack的必用語法。雖然這只是Google語法中很小的部分,但是合理使用這些語法將產生意想不到的效果。
例:當我們想獲取一些政府網站的后臺頁面時,可通過構關鍵字 site:gov.cn intext:后臺管理來實現搜集,意思是搜索網頁正文中含有“后臺管理”并且域名后綴是 gov.cn的網站。
可以看到利用Google Hacking語法搜索,可以很高效地得到我們想要的信息,還可以用它來收集數據庫文件、SQL注入、配置信息、源代碼泄露、未授權訪問和robots.txt等敏感信息。(更詳細的Google Hacking語法介紹可以看這篇文章:傳送門)
接下來介紹另一款資產信息搜集神器:fofa
2、FOFA網絡安全空間搜索:
鏈接:https://fofa.so/
FOFA網絡安全空間搜索 是專為滲透人員設計的一款搜索引擎,其相對于Google 的知名度相對低了一些,但是對于滲透人員這是款信息收集的神器。用途大致和Google一樣,就不多介紹了。
來簡單說下其查詢語法:
官方上給的很清楚,這里簡單演示下如何使用:
需要注意,在fofa中,多條件查詢是用&&和||來連接的,什么意思就不解釋了。
例:查找一些后臺管理且地點在杭州的資產信息:構造語法:title ="后臺管理"&&city="Hangzhou
還可以查找指定開放的端口網站,例:查找開放了3389 端口的后臺管理系統:port="3389"&&title="后臺管理"
篇幅有限,更多騷操作可以看這篇文章:https://www.anquanke.com/post/id/84865
3、Github信息泄露:
GitHub作為一款應用最廣的開源代碼平臺,給程序員提供了很多便利,但如果使用不當,比如將包含了賬號密碼、密鑰等配置文件的代碼上傳了,導致攻擊者能發現并進一步利用這些泄露的信息,就是一個典型的GitHub敏感信息泄露漏洞,再如開發人員在開發時,常常會先把源碼提交到github,最后再從遠程托管網站把源碼pull到服務器的web目錄下,如果忘記把.git文件刪除,就造成此漏洞。利用.git文件恢復網站的源碼,而源碼里可能會有數據庫的信息。
很多網站及系統都會使用pop3和smtp發送來郵件,不少開發者由于安全意識不足會把相關的配置文件信息也放到Github上,這時配合我們的Google搜索語法,就能把這些敏感信息給找出來了。
site:Github.com smtp site:Github.com smtp @qq.com site:Github.com smtp @126.com site:Github.com smtp @163.com site:Github.com smtp @sina.com.cn例:
可以看到,很容易就能得到這些敏感數據信息。
獲取數據庫信息泄露:
site:Github.com sa password site:Github.com root password三、子域名收集:
子域名也就是二級,是指頂級域名下的域名。如果目標的網絡規模比較大,直接從主域入手顯然是很不理智的,因為一般其主域都是重點防護區域,這種情況下可以選擇“曲線滲透”,即先進入目標的某個子域,然后再想辦法迂回接近真正的目標。
搜集目標子域常用的方法有以下這幾種:
1、子域名檢測工具:
Layer子域名挖掘機:
- Layer子域名挖掘機使用很簡單,直接輸入域名就可以進行掃描,它的顯示界面也很全面,有域名、解析IP、Web服務器和網站狀態,使用起來非常方便,強推這個工具!
subDomainsBrute:
-
是一款基于python語言開發的,高并發的DNS暴力枚舉工具,可以用于二級域名收集。支持Python3.5+和Python2.7,推薦使用Python3.5+以上版本。
-
Python3環境下運行需 安裝aiodns庫。(aiodns環境 Kali自帶,推薦在Kali下使用,windows下aiodns環境很難安裝😣)
掃描的速度很快,完成后會輸出一個文件:
2、利用搜索引擎發現子域:
我們同樣可以利用Google語法 來搜索子域名,假如想要獲得qq的子域名,可構造關鍵詞:“site:qq.com”
不得不說,Google是真的好用!👍
3、通過在線工具搜集:
幾個好用的在線網站:
1、DNSdumpster:https://dnsdumpster.com/
2、子域名爆破:https://phpinfo.me/domain/
使用非常方便,而且速度 “很快啊”。
四、端口探測:
在滲透測試中,哪些端口是開放的,對于滲透測試員尤為重要。通過掃描服務器開放的端口可以獲得該服務器上存在的服務,從而可以對其進行精準打擊。
1、Nmap:
說起端口掃描,那就不得不說Nmap這款工具,Nmap是被專業人員廣泛使用的一款功能全面的端口掃描工具。強烈推薦!
基本使用:
最簡單的使用就是:nmap 域名/ip 就可以掃描出端口的開放信息:
可以看到服務器 80、443等端口是開放的。
還可以使用命令:nmap -p 端口 IP(域名),判斷ip是否開放指定端口:
可以看到 B站 80端口是開放的,8080是關閉的。更多nmap騷操作請看這篇文章:傳送門
2、Masscan掃描工具:
Masscan號稱是最快的互聯網端口掃描器,最快可以在六分鐘內掃遍互聯網。而且,masscan更加靈活,它允許自定義任意的地址范和端口范圍。
由于使用工具通常會在目標網站留下痕跡,接下來提供一種在線網站探測方法。
3、在線網站:
因為使用工具通常會在目標網站留下痕跡,因此推薦幾個在線的端口掃描網站:
站長工具(老熟人了):http://tool.chinaz.com/port/
ThreatScan在線網站:https://scan.top15.cn/web/portscan
🆗,知道了這些,端口的信息收集是不成問題了,但作為一個測試人員只知道如何掃描是不夠的,還應知道開放端口所對應的服務,下面簡單列舉下:
常見的端口及其說明:
遠程連接服務端口:
文件共享服務端口:
Web應用服務端口:
郵件服務端口:
網絡常見協議端口:
特殊服務端口:
五、CMS指紋識別:
CMS(Content Management System)又稱為整站系統或文章系統,用于網站內容管理。用戶只需要下載對應的CMS軟件包,完成部署搭建,就能直接利用CMS。
因為各類CMS都有其獨特的結構命名規則和特定的文件內容,因此可以利用這些內容來判斷一個CMS類型信息,這就叫CMS指紋識別。
在滲透測試中,對目標站點進行指紋識別是很有必要的,如果識別出目標站點對應的CMS,則可以查找與該CMS相關的漏洞,方便對目標的進一步的滲透。
常見的CMS有:
-
門戶:dedecms(織夢)、phpcms、帝國cms
-
博客:WordPress、zblog、emlog
-
社區:Discuz、PHPWind
-
商城:shopex、ECShop
下面介紹幾款經典的識別工具。
1、在線網站:
1、在線cms指紋識別:http://whatweb.bugscaner.com/look/
2、云悉指紋識別:http://www.yunsee.cn/info.html
2、指紋識別工具:
常用的本地工具有:御劍Web指紋識別、大禹CMS識別程序等。下面簡單演示下御劍這款工具使用:
下載鏈接:
右鍵添加域名/IP。
可以看到成功解析到了域名,這款工具速度還可以,而且支持自定義關鍵字和正則匹配兩種模式、使用起來還可以。缺點就是目前指紋的配置庫偏少。
3、CMS漏洞查詢:
對于查詢到的CMS,可以在漏洞庫網站查詢對應的漏洞,進行進一步的滲透。推薦兩個好用的漏洞庫:
1、烏云漏洞庫:https://wooyun.x10sec.org/
例:對織夢CMS進行漏洞查詢:
2、安全客漏洞庫:https://www.anquanke.com/vul
六、查找真實IP:
說到查找真實IP,需要先知道什么是CDN?
1、什么是CDN:
CDN全稱 Content Delivery Network,即內容分發網絡。指一種通過互聯網連接的電腦網絡系統,利用最靠近每位用戶的服務器,更快、更可靠地將音樂、圖片、視頻、應用程序及其他文件發送給用戶,來提供高性能、可擴展性及低成本的網絡內容傳遞給用戶。
因此,如果目標服務器使用了CDN服務,那么我們直接查詢到的IP并不是真正的目標服務器的IP,而是一臺離你最近的目標節點的CDN服務器,這就導致了我們沒法直接得到目標服務器的真實IP。
2、如何判斷目標服務器使用了CDN:
我們可以直接ping目標域名,通過返回的域名可以判斷是否為真實ip,我們來ping百度官網看一下:
可以看到,ping的解析域名發生了改變,不再是 “www.baidu.com”了,出現這種就代表大概率使用了CDN。這時直接訪問 ping出來的域名或ip是無服務的,因為這臺服務器只是做了數據轉接,并沒有web服務。
我們再來ping一下域名:“baidu.com”
可以看到,這次的解析域名沒有改變,這時訪問 ip:39.156.66.14,發現也可以直接訪問的到,出現這種情況說明 baidu.com域名可能并沒有使用CDN,ip 39.156.66.14就有可能是真實ip。
還可以使用在線網站進行檢測,這里推薦一些很好用的網站:
1、全球Ping測試:https://www.wepcc.com
2、17CE:https://www.17ce.com
3、站長之家ping檢測(沒錯又是它):http://ping.chinaz.com/
3、如何尋找真實IP:
1、子域名查找法:
因為CDN和反向代理是需要成本的,有的網站只比較常用的域名使用cdn或反向代理,所以可以通過通過查找子域名來查找網站的真實IP。
2、 查詢主域:
很多網站只對 www域名使用了cdn,禿域名不使用,為的是在維護網站時更方便,不用等cdn緩存。所以可以試著把目標網站的www去掉,ping一下看ip是不是變了,這個上面的百度 baidu.com就是這樣的。
3、查看域名歷史解析:
可能目標之前沒有使用CDN,所以可能會存在使用 CDN 前的記錄。通過平臺以前收集到的ip與域名綁定歷史記錄進行查詢。
4、通過郵件服務器:
一般的郵件系統都在內部,沒有經過CDN的解析,通過目標網站用戶注冊或者RSS訂閱功能,查看郵件,尋找郵件頭中的郵件服務器域名IP,ping這個郵件服務器的域名,就可以獲得目標的真實IP(必須是目標自己內部的郵件服務器,第三方或者公共郵件服務器是沒有用的)。
5、從國外訪問:
國內的CDN往往只對國內用戶的訪問加速,而對國外的訪問就不一定了。此時我們使用國外的主機直接訪問可能就能獲取到真實P。
七、敏感目錄/文件收集:
在滲透測試中,探測Web目錄結構和隱藏的敏感文件是一個必不可少的環節,從中可以獲取網站的后臺管理、文件上傳等重要頁面,甚至可能掃描出網站的源代碼。
目錄掃描工具有非常多種,如:御劍后臺掃描工具、wwwscan命令行工具、dirb命令工具、dirbuster掃描工具;其原理大致相同,都是對網站進行暴力枚舉掃描,下面介紹下個人覺得非常好用的工具:
1、dirsearch:
dirsearch是一個功能強大,且非常經典的工具,基于python開發,旨在暴力掃描頁面結構,包括網頁中的目錄和文件。下載鏈接
使用方法:-u url -e 開發語言(可以不指定語言,即 *)
2、御劍后臺掃描:
這款工具是一款可視化的程序,支持用戶自定義的字典,用起來比較方便。
八、社會工程學:
信息收集的最高境界大概就是社會工程學了,社會工程學(Social Engineering)是一種通過人際交流的方式獲得信息的非技術滲透手段。社會工程學在滲透測試中起著不小的作用,利用社會工程學,攻擊者可以從一名員工的口中挖掘出本應該是秘密的信息。
社會工程學協助滲透測試的例子數不勝數,滲透某個網站遇到困難時,給網站的呼叫人員打電話,往往能解決很多問題。此外,許多服務器的登錄密碼與該服務器的管理者有關,密碼總是有個人痕跡,因此利用社會工程學獲得服務器管理者的信息后,進行服務器滲透測試要簡單得多。
最后:
俗話說“滲透的本質也就是信息收集”,信息收集的深度,直接關系到滲透測試的成敗。在信息收集階段應盡可能多的獲取目標站點的各種信息,可大大提高滲透測試的成功率。🆗,關于信息收集的總結到這里就結束了,以后發現新的好用的東西會接著補充,如果本文有哪些不對的地方,歡迎各位大佬補充更正🤞?。
參考文章:
https://www.freebuf.com/articles/web/215182.html
https://cloud.tencent.com/developer/article/1685126
https://www.anquanke.com/post/id/84865
https://www.cnblogs.com/H4ck3R-XiX/p/12489218.html
https://www.freebuf.com/articles/web/215182.html
https://blog.csdn.net/weixin_42320142/article/details/102679143
https://www.anquanke.com/post/id/163348
總結
以上是生活随笔為你收集整理的渗透测试之信息收集篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: XML外部实体注入漏洞——XXE简单分析
- 下一篇: 从CSRF原理到CMS漏洞利用