域名信息的收集
當我們確定了要滲透的目標,也就是知道了其域名,接下來我們需要收集域名對應的 ip,域名的whois信息、子域名等等一系列與域名相關的信息。
判斷域名對應的IP:首先,我們要判斷該域名是否存在CDN的情況,我們可以去在線CDN查詢網站:http://ping.chinaz.com/ 。如果查詢出的ip數量大于一個的話,則說明該ip地址不是真實的服務器地址。以我的經驗來看,如果是2個或者3個,并且這幾個地址是同一地區的不同運營商的話,則很有可能這幾個地址是服務器的出口地址,該服務器在內網中,通過不同運營商NAT映射供互聯網訪問,同時采用幾個不同的運營商可以負載均衡和熱備份。如果是多個ip地址,并且這些ip地址分布在不同地區的話,則基本上可以斷定就是采用了CDN了。那么如何繞過CDN查找網站真實的ip地址呢?
在滲透測試過程中,經常會碰到網站有CDN的情況。CDN即內容分發網絡,主要解決因傳輸距離和不同運營商節點造成的網絡速度性能低下的問題。說的簡單點,就是一組在不同運營商之間的對接點上的高速緩存服務器,把用戶經常訪問的靜態數據資源直接緩存到節點服務器上,當用戶再次請求時,會直接分發到離用戶近的節點服務器上響應給用戶,當用戶有實際數據交互時才會從遠程Web服務器上響應,這樣可以大大提高網站的響應速度及用戶體驗。使用CDN的另一個好處就是可以隱藏真實的服務器ip,當我們ping目標域名,得到的ip地址是離我們最近一臺目標節點的CDN服務器的ip地址。
所以為了接下來的信息收集,我們必須查找出網站的真實ip地址。
查詢域名相關的網站:
DNS查詢:https://dnsdb.io/zh-cn/
微步在線:https://x.threatbook.cn/
在線域名信息查詢:http://toolbar.netcraft.com/site_report?url=
DNS、IP等查詢:http://viewdns.info/
CDN查詢IP:https://tools.ipip.net/cdn.php
SecurityTrails平臺:https://securitytrails.com/domain/www.baidu.com/history/a
如何判斷網站是否有CDN?
很簡單,使用不同地方的 ping 服務,查看對應 IP 地址是否唯一,如果不唯一則極有可能是使用了CDN
ping測試網站有:
http://ping.chinaz.com/
http://ping.aizhan.com/
繞過CDN查找網站真實ip
(1)內部郵箱源:一般的郵件系統都在內部,沒有經過CDN的解析,通過目標網站用戶注冊或者RSS訂閱功能,查看郵件,尋找郵件頭中的郵件服務器域名IP,ping這個郵件服務器的域名,就可以獲得目標的真實IP(必須是目標自己的郵件服務器,第三方或者公共郵件服務器是沒有用的)。
(2)查看域名歷史解析記錄:也許目標很久之前沒有使用CDN,所以可能會存在使用 CDN 前的記錄。所以可以通過網站https://www.netcraft.com 來觀察域名的IP歷史記錄。
(3)查詢子域名:畢竟 CDN 還是不便宜的,所以很多站長可能只會對主站或者流量大的子站點做了 CDN,而很多小站子站點又跟主站在同一臺服務器或者同一個C段內,此時就可以通過查詢子域名對應的 IP 來輔助查找網站的真實IP。
(4)國外訪問:國內的CDN往往只對國內用戶的訪問加速,而國外的CDN就不一定了。因此,通過國外在線代理網站https://asm.ca.com/en/ping.php 訪問 ,可能會得到真實的ip地址。
(5)查詢主域名:以前用CDN的時候有個習慣,只讓WWW域名使用cdn,禿域名不適用,為的是在維護網站時更方便,不用等cdn緩存。所以試著把目標網站的www去掉,ping一下看ip是不是變了,您別說,這個方法還真是屢用不爽。
(6)Nalookup查詢:查詢域名的NS記錄、MX記錄、TXT記錄等很有可能指向的是真實ip或同C段服務器。