寫在前面的廢話:最近要給一些新人做培訓,整理些東西,算不上什么太高端的內容,只是簡單的整理下了,我覺得對於小白的話也還算是干貨。在烏雲水了幾年,算不上什么大神水平,最近生活費緊張,現在打算在FreeBuf上混點FB幣,補貼開銷hhhhh 第一次在FB上發文章,水平有限,寫錯的地方還望告訴我,大牛勿噴,謝謝
什么是信息收集:
收集滲透目標的情報是最重要的階段。如果收集到有用的情報資料的話,可以大大提高對滲透測試的成功性。收集滲透目標的情報一般是對目標系統的分析,掃描探測,服務查點,掃描對方漏洞,查找對方系統IP等,有時候滲透測試者也會用上“社會工程學”。滲透測試者會盡力搜集目標系統的配置與安全防御以及防火牆等等。
內容概要
網站及服務器信息
搜索引擎
Google Hacking
社交網站
第三方未公開數據
網站及服務器信息:
whois
whois是用來查詢域名的IP以及所有者等信息的傳輸協議。簡單說,whois就是一個用來查詢域名是否已經被注冊,以及注冊域名的詳細信息的數據庫(如域名所有人、域名注冊商)。在whois查詢中,注冊人姓名和郵箱信息,通常對於測試個人站點非常有用,因為我們可以通過搜索引擎,社交網絡,挖掘出很多域名所有人的信息。而對於小站點而言,域名所有人往往就是管理員。
例如下面 whois www.sysorem.xyz 查看www.sysorem.xyz這個域名的注冊信息
DNS服務器查詢
除了whois查詢之外,我們還可以通過host命令來查詢dns服務器,
格式:
host 命令
[-aCdlriTwv]
[-c class]
[-N ndots]
[-t type]
[-W time]
[-R number]
[-m flag]
hostname [server]
查詢域名服務器
從圖中可以看到有3個dns服務器,分別為:
dns1.hdu.edu.cn
dns2.hdu.edu.cn
dns2.hdu.edu.cn
DNS記錄類型=>在買了域名后IDC的那個后台里,添加解析記錄的地方就能看到
例如查詢A記錄,即查IP,如圖
域名枚舉
在得到主域名信息之后,如果能通過主域名得到所有子域名信息,再通過子域名查詢其對應的主機IP,這樣我們能得到一個較為完整的信息。
使用fierse工具,可以進行域名列表查詢:fierce -dns domainName
除fierse之外,dnsdict6、dnsenum、dnsmap都可以進行域名枚舉。
反向地址解析
我們經常使用到得DNS服務器里面有兩個區域,即“正向查找區域”和“反向查找區域”,正向查找區域就是我們通常所說的域名解析,反向查找區域即是這里所說的IP反向解析,它的作用就是通過查詢IP地址的PTR記錄來得到該IP地址指向的域名.
由於在域名系統中,一個IP地址可以對應多個域名,因此從IP出發去找域名,理論上應該遍歷整個域名樹,但這在Internet上是不現實的。為了完成逆向域名解析,系統提供一個特別域,該特別域稱為逆向解析域in-addr.arpa。這樣欲解析的IP地址就會被表達成一種像域名一樣的可顯示串形式,后綴以逆向解析域域名”in-addr.arpa”結尾。例如一個IP地址:222.211.233.244,其逆向域名表達方式為:244.233.221.222.in-addr.arpa
dig:使用dig進行反向解析的命令格式為:
dig -x ip @dnsserver #用 dig 查看反向解析
在線查詢也是一種辦法 http://dns.aizhan.com/
想要獲得完整的信息,可以多嘗試不同的工具,整合結果。很多工具無法做反向查詢的原因,在於域名所有者沒有添加反向解析記錄。
關於DNS區域傳送漏洞
區域傳送操作指的是一台后備服務器使用來自主服務器的數據刷新自己的zone數據庫。一般來說,DNS區域傳送操作只在網絡里真的有后備域名DNS服務器時才有必要執行,但許多DNS服務器卻被錯誤地配置成只要有人發出請求,就會向對方提供一個zone數據庫的拷貝。當一個單位沒有使用公用/私用DNS機制來分割外部公用DNS信息和內部私用DNS信息的時候,此時內部主機名和IP地址都暴露給了攻擊者。就像是把一個單位的內部網絡完整藍圖或導航圖奉送給了別人。
詳細了解,傳送門,感覺這位大神寫的蠻清楚的,可以參考下
服務指紋識別
很多站點,可能沒有自定義錯誤信息。因此在url上隨便輸入一個不存在的地址,可能會返回有用的信息。
通過上圖,我們知道該站點的應用程序由PHP編寫,Web服務器為Apathe/2.2.22,操作系統為Windows
通過端口判斷服務
通過掃描服務器開放的端口判斷服務器上存在的服務,nmap具體使用在后面會講到
從圖中可以看出該服務器搭建了http(Web)、msrpc(文件共享)、MSSQL數據庫等
操作系統指紋識別
識別目標主機的操作系統,首先,可以幫助我們進一步探測操作系統級別的漏洞從而可以從這一級別進行滲透測試。其次,操作系統和建築在本系統之上的應用一般是成套出現的,例如LAMP或者LNMP。操作系統的版本也有助於我們准確定位服務程序或者軟件的版本,比如一般情況下windows server 2003 搭載的IIS為6.0,windows server 2008 R2 搭載的是IIS7.5。
Banner抓取
banner抓取是應用程序指紋識別而不是操作系統指紋識別。Banner信息並不是操作系統本身的行為,是由應用程序自動返回的,比如apathe、exchange。而且很多時候並不會直接返回操作系統信息,幸運的話,可能會看到服務程序本身的版本信息,並以此進行推斷。下圖可以看出ftp服務器軟件為FileZilla及版本等信息
使用Nmap進行操作系統探測
使用Nmap識別操作系統最簡單的方法為使用-O參數
格式 nmap -O URI,從圖中可以看到服務器操作系統為Linux
使用p0f進行操作系統探測
p0f是一款被動探測工具,通過分析網絡數據包來判斷操作系統類型。同時p0f在網絡分析方面功能強大,可以用它來分析NAT、負載均衡、應用代理等。下面命令的含義為監聽網卡eth0,並開啟混雜模式。這樣會監聽到每一個網絡連接,部分結果摘錄如下:p0f -i eth0 –p
使用Xprobe2進行操作系統探測
Xprobe2是一款使用ICMP消息進行操作系統探測的軟件,探測結果可以和Nmap互為參照。但是該軟件目前公開版本為2005年的版本,對老的操作系統探測結果較為准確。簡單用法:xprobe2 -v URI (這個平時用用我基本也掃不出什么東西233333)
抓取操作系統指紋的工具還有很多,如miranda等,不過多舉例。
WAF檢測
WafW00f是Python腳本,用於檢測網絡服務是否處於網絡應用防火牆保護狀態,極其有用。使用WafW00f檢測網絡服務器和網絡傳輸之間是否存在網絡應用防火牆,這不僅可以發展測試戰略,而且還能開發出繞過網絡應用防火牆的高級技術。簡單用法 wafw00f URL
從圖中可以看到該網站處於Waf保護狀態
搜索引擎
Google搜索技術融合了用於執行Google的詳細搜索的高級搜索技術。在Google首頁右下角可以點擊“Settings”->”Advanced search”進行詳細設置
在高級設置頁面可以設置“所有字”、“精確的字或短語”、“含以下任何字”、“不含以下任何字”、“數字范圍”、“語言”、“地區”、“最新更新”、“網站或域名”、“關鍵字出現位置”、“安全搜索”、“閱讀級別”、“文件類型”、“使用權限”等等,更精確的搜索
由於一些眾所周知的原因,我們在不能歡快滴科學上網的時候,會用到國內的一些搜索引擎。同樣也是可以設置的,不過相對而言沒Google強大。
滲透測試中還有一些非常好用的搜索引擎,比如shodan(https://www.shodan.io/)
下面是搜索sogou.com的返回結果
點擊第一個結果的Details可以查看詳細信息,包括地理位置、服務器開放的端口等等
除了shodan之外,當然還不得不提知道創宇的“鍾馗之眼”-> ZoomEye 分分鍾吊炸天有木有?
推薦余弦的《ZoomEye高級黑》
Google hacking
對於普通的用戶而言,Google是一個強大的搜索引擎;而對於黑客而言,則可能是一款絕佳的黑客工具。正因為google的檢索能力強大,黑客可以構造特殊的關鍵字語法,使用Google搜索互聯網上的相關隱私信息。通過Google,黑客甚至可以在幾秒種內黑掉一個網站。這種利用Google搜索相關信息並進行入侵的過程就叫做Google Hack。 下面介紹一些常用的所謂“谷歌黑客語法”。
例如批量查找學校網站的后台 輸入如下關鍵字
site:hdu.edu.cn intext:管理|后台|登錄|用戶名|密碼|驗證碼|系統|賬號|后台管理|后台登錄
intext: 把網頁中的正文內容中的某個字符做為搜索條件.
例如在google里輸入:intext:杭電.將返回所有在網頁正文部分包含”杭電”的網頁
allintext:使用方法和intext類似.
intitle: 搜索網頁標題中是否有我們所要找的字符.
例如搜索:intitle:杭電.將返回所有網頁標題中包含”杭電”的網頁.同理allintitle:也同intitle類似.
cache: 搜索google里關於某些內容的緩存,有時候往往能找到一些好東西.
define: 搜索某個詞的定義,例如搜索:define:杭電,將返回關於“杭電”的定義.
filetype: 搜索制定類型的文件,例如:filetype:doc.將返回所有以doc結尾的文件URL.
info: 查找指定站點的一些基本信息.
inurl: 搜索我們指定的字符是否存在於URL中.
例如輸入:inurl:admin,將返回N個類似於這樣的連接:http://xxx/admin,
常用於查找通用漏洞、注入點、管理員登錄的URL
allinurl:也同inurl類似,可指定多個字符.
linkurl: 例如搜索:inurl:hdu.edu.cn可以返回所有和hdu.edu.cn做了鏈接的URL.
site: 搜索指定域名,如site:hdu.edu.cn.將返回所有和hdu.edu.cn有關的URL.
還有一些*作符
+ 把google可能忽略的字列如查詢范圍
- 把某個字忽略
~ 同意詞
. 單一的通配符
* 通配符,可代表多個字母
“” 精確查詢
實際操作時需根據情況組合使用,下面列舉些常用的:
intext:to parent directory
inurl:upload.php
intitle:powered by xxx
index of/upload
Filetype:txt
inurl:robots.txt
index of /passwd
site:xxx.com filetype:mdb|ini|php|asp|jsp
…. ….
社交網站
社交網站往往是我們公開信息最多的地方,比如我們常用的QQ、QQ空間、微信朋友圈、微博等。能獲取到的信息可能有姓名、年齡、生日、星座、愛好、照片、人際交往關系、甚至郵箱、手機、住址、身份證等等隱私、敏感信息。還有一些招聘求職網站也往往是信息泄露最嚴重的地方。對這些信息加以利用,總能得到一些驚喜。
比如看上一個妹子,看她空間很朋友圈,基本上都能知道她的生活規律就能摸的很清楚,她長什么樣,喜歡什么,閨蜜有哪些、平時去哪里玩,有時候還能推算出此時此刻她正在做什么。朋友圈那種輸入名字算各種的,大部分妹子都會輸入自己的名字生日等。。
既然有看上的妹子,那就花半天時間了解了解妹子。。
輔之一些必要社工手段,
最后,最后一不小心就得到:
推薦一本書《欺騙的藝術》,在滲透實戰中,我們可以通過社會工程學的手段獲取管理員的信息,比如QQ號、郵箱、常用密碼等等。比如可以想辦法登錄某網站域名注冊的平台,直接修改域名解析(親身經歷),可能能達到癱瘓整個網絡服務的效果…
Maltego:社工神器:Maltego是用來對來自互聯網的信息進行收集、組織、可視化的工具。 它可以收集某個人的在線數據信息 –包括電子郵件地址、博客、Facebook中的朋友,個人愛好、地理位置、工作描述,然后可以一種更為有用、全面的形式展現出來。
不過這個對國外的效果可能會好一點吧
第三方未公開數據
“社工庫”是運用社會工程學進行攻擊的時候積累的各方面數據的結構化數據庫。這個數據庫里有大量信息,甚至可以找到每個人的各種行為記錄,比如酒店開房記錄、個人身份證、姓名和電話號碼。
例如查詢某QQ號老密碼。findmima.com(要爬牆)
某QQ號的群關系
某社工庫網站可查詢以下數據,
通過這些數據庫可能可以查到QQ密碼、郵箱密碼等等信息,這樣在有些時候能幫助猜解管理員相關的信息。第一部分就先寫到這里了,后面還會帶來新的內容,敬請關注。
參考
https://github.com/sysorem/Kali-Linux-Pentest-Basic
*原創作者:sysorem,轉載請注明來自FreeBuf黑客與極客(FreeBuf.COM)