收集域名信息
獲得對象域名之后,需要收集域名的注冊信息,包括該域名的DNS服務器信息和注冊人的聯系方式等。
whois查詢
對於中小型站點而言,域名所有人往往就是管理員,因此得到注冊人的姓名和郵箱信息對測試個人站點非常有用。
還有一些在線whois網站:
- 愛站工具網: https://whois.aizhan.com/
- 站長之家: http://whois.chinaz.com/
- VirusTotal: https://www.virustotal.com/gui/home/
備案信息查詢
備案主要針對國內網站,網站搭建在其他國家則不需要備案。常見的網站有以下兩個:
- ICP備案查詢網: http://beianbeian.com
- 天眼查: https://www.tianyancha.com/
收集敏感信息
利用Google hacking
關鍵字 | 說明 |
site | 指定域名 |
inurl | URL中存在指定關鍵字的網頁 |
intext | 網頁正文中的關鍵字 |
filetype | 指定文件類型 |
intitle | 網頁標題中的關鍵字 |
link | link:baidu.com即表示返回所有和baidu.com做了鏈接的url |
info | 查找指定站點的一些基本信息 |
cache | 搜索google中關於某些內容的緩存 |
eg:搜索一些學校后台管理的網頁
site:edu.cn intext:后台管理
還可以利用google搜索收集數據庫文件、SQL注入、配置信息、源代碼泄露、未授權訪問和robots.txt等信息、
還可以通過Burp Suite的Repeater功能獲取一些服務器的信息、
還可以通過在GitHub上查找相關信息。
還可以通過烏雲漏洞表查詢歷史漏洞信息: http://wooyun.2xss.cc/bugs.php 烏雲已經無了,現在存在的都是別人搭建的一些鏡像網站
還有一些社工庫: http://site3.sjk.space/sfz.php
收集子域名信息
對於baidu.com域來說, www.baidu.com tieba.baidu.com zhidao.baidu.com 都是其子域名
主域都是重點防護區域,子域相對薄弱
子域名檢測工具
主要有Layer子域名挖掘機、K8、wydomain、Sublist3r、dnsmaper、subDomainsBrute、Maltego CE等。
Layer子域名挖掘機界面包含域名、解析IP、CDN列表、Web服務器和網站狀態。目前存在5.0更新版和4.X紀念版,主要區別是5.0增加了多層子域名遍歷功能。
https://www.cnblogs.com/guojia000/p/11393502.html 這里面有下載地址
subDomainBrute可以遞歸地發現三級域名、四級域名、、、執行該工具的命令
python subDomainsbrute.py xxxx.com
搜索引擎枚舉
google語法: site:baidu.com
第三方聚合應用枚舉
很多第三方服務匯聚了大量的DNS數據集,可通過他們檢索某些給定域名的子域名。
https://dnsdumpster.com/
證書透明度公開日志枚舉
證書透明度(Certificate Transparency,CT)是證書授權機構(CA)的一個項目,證書授權機構會將每個SSL/TLS證書發布到公共日志中。一個SSL/TLS證書通常包含域名、子域名和郵件地址。
查找某個域名所屬證書的最簡單方法就是使用搜索引擎搜索引擎搜索一些公開的CT日志。
https://crt.sh/
https://censys.io/ipv4
還有一些在線網站查找子域名:
https://phpinfo.me/domain
收集常用端口信息
由開放端口得知開放的服務
常用工具:Nmap、Masscan、ZMap、御劍告訴TCP端口掃描工具
常見端口 & 說明 & 攻擊方向
端口號 | 端口說明 | 攻擊方向 |
21、22、69 | ftp、tftp文件傳輸協議 | 允許匿名的上傳下載、爆破和嗅探操作 |
2049 | nfs服務 | 配置不當 |
139 | samba服務 | 爆破、未授權訪問、遠程代碼執行 |
389 | Ldap目錄訪問協議 | 注入、允許匿名訪問、弱口令 |
端口號 | 端口說明 | 攻擊方向 |
22 | SSH遠程連接 | 爆破、SSH隧道及內網代理轉發、文件傳輸 |
23 | telnet遠程連接 | 爆破、嗅探、弱口令 |
3389 | RDP遠程桌面連接 | Shift后門(winserver2003以下)、爆破 |
5900 | VNC | 弱口令爆破 |
5632 | PyAnywhere | 抓密碼、代碼執行 |
端口號 | 端口說明 | 攻擊方向 |
80、443、8080(Tomcat) | 常見的web服務端口 | 對應服務器版本漏洞 |
7001、7002 | WebLogic控制台 | Java反序列化、弱口令 |
8080、8089 | Jboss、Resin、Jetty、Jenkins | 反序列化、控制台弱口令 |
9090 | WebSphere控制台 | Java反序列化、弱口令 |
4848 | GlassFish控制台 | 弱口令 |
1352 | Lotus domino郵件服務 | 弱口令、信息泄露、爆破 |
10000 | Webmin-Web控制板 | 弱口令 |
端口號 | 端口說明 | 攻擊方向 |
3306 | mysql | 注入、提權、爆破 |
1433 | MSSQL | 注入、提權、SA弱口令、爆破 |
1521 | Oracle | TNS爆破、注入、反彈Shell |
5432 | PostgreSQL | 爆破、注入、弱口令 |
27017、27018 | MongoDB | 爆破、未授權訪問 |
6379 | redis | 未授權訪問、弱口令 |
5000 | SysBase/DB2 |
爆破、注入 |
端口號 | 端口說明 | 攻擊方向 |
25 | SMTP郵件服務 | 郵件偽造 |
110 | POP3協議 | 爆破、嗅探 |
143 | IMAP協議 | 爆破 |
端口號 | 端口說明 | 攻擊方向 |
53 | DNS域名系統 | 允許區域傳送、DNS劫持、緩存投毒、欺騙 |
67、68 | DHCP服務 | 劫持、投毒 |
161 | SNMP服務 | 爆破、搜集目標內網信息 |
端口號 | 端口說明 | 攻擊方向 |
2181 | Zoomkeeper服務 | 未授權訪問 |
8069 | Zabbix服務 | 遠程訪問、SQL注入 |
9200、9300 | Elasticsearch | 遠程執行 |
11211 | Memcache | 未授權訪問 |
512、513、514 | Linux Rexec | 爆破、Rlogin登錄 |
873 | Rsync | 匿名訪問、文件上傳 |
3690 | Svn | Svn泄露、未授權訪問 |
50000 | SAP Management console | 遠程執行 |
指紋識別
網站CMS指紋識別、計算機操作系統及Web系統的指紋識別
應用程序一般在html、 js、 css等 文件中多多少少會包含些特征碼, 比如WordPress在robots.txt中會包含wp-admin、首頁index.php中會包含generator=wordpress 3.xx,這個特征就是這個CMS的指紋,那么當碰到其他網站也存在此特征時,就可以快速識別出該CMS,所以叫作指紋識別。
在滲透測試中,對目標服務器進行指紋識別是相當有必要的,因為只有識別出相應的Web容器或者CMS,才能查找與其相關的漏洞,然后才能進行相應的滲透操作。
CMS (Content Management System)又稱整站系統或文章系統。在2004年以前,如果想進行網站內容管理,基本上都靠手工維護,但在信息爆炸的時代,完全靠手工完成會相當痛苦。所以就出現了CMS,開發者只要給客戶一個軟件包, 客戶自己安裝配置好,就可以定期更新數據來維護網站,節省了大量的人力和物力。常見的CMS有Dedecms (織夢)、Discuz、 PHPWEB、 PHPWind、PHPCMS、ECShop、Dvbbs、 SiteWeaver、 ASPCMS、 帝國、z-Blog、WordPress等。
代表工具有御劍Web指紋識別、WhatWeb、WebRobo、 椰樹、輕量WEB指紋識別等,可以快速識別一些主流CMS。
除了這些,還有一些在線識別網站:
- https://www.whatweb.net/
- http://whatweb.bugscanner.com/look
- https://www.yunsee.cn/cms
查找真實IP
如果目標服務器不存在CDN,那么真實IP好找得一批
CDN干嘛的?
CDN即內容分發網絡,主要解決因傳輸距離和不同運營商節點造成的網絡速度性能低下的問題。說得簡單點,就是一組在不同運營商之間的對接節點 上的高速緩存服務器,把用戶經常訪問的靜態數據資源(例如靜態的html、css、 js圖片等文件)直接緩存到節點服務器上,當用戶再次請求時,會直接分發到在離用戶近的節點服務器上響應給用戶,當用戶有實際數據交互時才會從遠程Web服務器上響應,這樣可以大大提高網站的響應速度及用戶體驗。
所以如果滲透目標購買了CDN服務,可以直接ping目標的域名,但得到的並非真正的目標Web服務器,只是離我們最近的一台目標節點的CDN服務器,這就導致了我們沒法直接得到目標的真實IP段范圍。
判斷目標是否使用了CDN
通常會通過ping目標主域,觀察域名的解析情況,以此判斷是否使用了cdn、
還可以利用網站 https://www.17ce.com/ 上進行全國多地區的ping服務器操作,然后對比每個地區ping出的IP結果,查看這些IP是否一致,如果都是一樣的,極有可能不存在CDN。如果IP大多不太一樣或者規律性很強, 可以嘗試查詢這些IP的歸屬地,判斷是否存在CDN。
繞過CDN尋找真實IP
在確認了目標確實用了CDN以后,就需要繞過CDN尋找目標的真實IP,下面介紹一些常規的方法。
- 內部郵箱源。一般的郵件系統都在內部,沒有經過CDN的解析,通過目標網站用戶注冊或者RSS訂閱功能,查看郵件、尋找郵件頭中的郵件服務器域名IP, ping這個郵件服務器的域名,就可以獲得目標的真實IP (注意,必須是目標自己的郵件服務器,第三方或公共郵件服務器是沒有用的)。
- 掃描網站測試文件,如phpinfo、test等,從而找到目標的真實IP。
- 分站域名。很多網站主站的訪問量會比較大,所以主站都是掛CDN的,但是分站可能沒有掛CDN,可以通過tping 級域名獲取分站IP, 可能會出現分站和主站不是同一個IP但在同一個C段下面的情況,從而能判斷出目標的真實IP段。
- 國外訪問。國內的CDN往往只對國內用戶的訪問加速,而國外的CDN就不一定了。因此,通過國外在線代理網站App Synthetic Monitor (https://asm.ca.com/en/ping.php)訪問,可能會得到真實的IP。
- 查詢域名的解析記錄。也許目標很久以前並沒有用過CDN,所以可以通過網站NETCRAFT (https://www.netcraft.com/) 來觀察域名的IP歷史記錄,也可以大致分析出目標的真實IP段。
- 如果目標網站有自己的App,可以嘗試利用Fiddler或Burp Suite抓取App的請求,從里面找到目標的真實IP。
- 繞過CloudFlare CDN查找真實IP。現在很多網站都使用CloudFlare提供的CDN服務,在確定了目標網站使用CDN后,可以先嘗試通過在線網站CloudFlareWatch (http://ww1.crimeflare.us/#box) 對CloudFlare客戶網站進行真實IP查詢。
獲取獲取的IP
找到目標的真實IP以后,如何驗證其真實性呢?如果是Web,最簡單的驗證方法是直接嘗試用IP訪問,看看響應的頁面是不是和訪問域名返回的一樣;或者在目標段比較大的情況下,借助類似Masscan的工具批掃描對應IP段中所有開了80、443、8080端口的IP,然后逐個嘗試IP訪問,觀察響應結果是否為目標站點。
收集敏感目錄文件
在滲透測試中,探測Web目錄結構和隱藏的敏感文件是一個必不可少的環節,從中可以獲取網站的后台管理頁面、文件上傳界面,甚至可能掃描出網站的源代碼。
針對網站目錄的掃描主要有DirBuster、御劍后台掃描珍藏版、wwwscan、Spinder.py (輕量級快速單文件月錄后台掃描)、Sensitivefilescan (輕量級快速單文件目錄后台掃描)、Weakfilescan (輕量級快速單文件目錄后台掃描)等工具。
社會工程學
社會工程學在滲透測試中起着不小的作用,利用社會工程學,攻擊者可以從一名員工的口中挖掘出本應該是秘密的信息。
假設攻擊者對一家公司進行滲透測試,正在收集目標的真實IP階段,此時就可以利用收集到的這家公司的某位銷售人員的電子郵箱。首先,給這位銷售人員發送郵件,假裝對某個產品很感興趣,顯然銷售人員會回復郵件。這樣攻擊者就可以通過分析郵件頭來收集這家公司的真實IP地址及內部電子郵件服務器的相關信息。
通過進一步地應用社會工程學,假設現在已經收集了目標人物的郵箱、QQ、電話號碼、姓名,以及域名服務商,也通過爆破或者撞庫的方法獲取郵箱的密碼,這時就可以冒充目標人物要求客服人員協助重置域管理密碼,甚至技術人員會幫着重置密碼,從而使攻擊者拿下域管理控制台,然后做域劫持。
除此以外,還可以利用"社工庫"查詢想要得到的信息,如下圖所示,社工庫是用社會工程學進行攻擊時積累的各方數據的結構化數據庫。這個數據庫里有大量信息,甚至可以找到每個人的各種行為記錄。利用收集到的郵箱,可以在社工庫中找到已經泄露的密碼,其實還可以通過搜索引擎搜索到社交賬號等信息,然后通過利用社交和社會工程學得到的信息構造密碼字典,對目標用戶的郵箱和OA賬號進行爆破或者撞庫。