1.漏洞發(fā)布日期
(1) FREEBUF原文
原文鏈接:http://www.freebuf.com/news/59587.html
(2) 啟明星辰漏洞報(bào)告
原文鏈接:http://www.venustech.com.cn/NewsInfo/124/21883.Html
可見,F(xiàn)REEBUF原文和啟明星辰漏洞報(bào)告中的漏洞發(fā)布時(shí)間并不一致。但總而言之,該漏洞并不是新出現(xiàn)的漏洞,利用該漏洞進(jìn)行的攻擊也是在很久前就存在的。
2.漏洞成因
(1) Joomla Googlemap插件漏洞
該插件允許服務(wù)器作為代理,去請求第三方(攻擊目標(biāo))的頁面內(nèi)容。這種攻擊中“反射”的概念與以往不同,以往的“反射”是指針對于UDP協(xié)議,通過修改源IP地址的方法來反射,因此需要很高的系統(tǒng)權(quán)限。而利用Joomla Googlemap插件漏洞進(jìn)行的“反射”式DDoS攻擊并不需要修改源IP地址,也不需要特殊的系統(tǒng)權(quán)限,攻擊者只需請求一個(gè)URL即可完成攻擊。
(2) “反射”的過程
存在漏洞的Joomla服務(wù)器作為反射服務(wù)器,攻擊者向Joomla服務(wù)器發(fā)送請求,之后Joomla服務(wù)器請求攻擊目標(biāo)的頁面內(nèi)容。攻擊的一次請求過程如下:
例如,在瀏覽器里請求連接: http://server.com/Joomla/plugins/system/plugin_googlemap3/plugin_googlemap3_proxy.php?url=target.com
實(shí)際的過程如圖:
反射服務(wù)器端的http報(bào)文信息:
說明:192.168.222.1為攻擊者IP地址,192.168.222.128為Joomla服務(wù)器IP地址,192.168.222.130為攻擊目標(biāo)IP地址。
(3) 版本
Joomla Googlemap插件的版本有許多,然而并不是所有的版本都具有這個(gè)漏洞。目前(2015年3月)該插件的最新版本為v3.2版,存在漏洞的插件版本為:v3.2/v3.0/v2.18及之前所有版本,在v3.1/v2.20/v2.19的版本中,代理的功能被移除,因此不具有該漏洞。
3. 攻擊實(shí)現(xiàn)
分別從三方總結(jié)圖4中的流量:
由表1可知,直接請求攻擊目標(biāo)的根域名,無論是上行流量還是下行流量,攻擊者和反射服務(wù)器所承受的代價(jià)都超過了攻擊目標(biāo),這樣是實(shí)現(xiàn)不了DoS的目的的。因此需要修改請求URL來請求攻擊目標(biāo)中的一個(gè)較大的文件:
例如,在瀏覽器里請求連接:http://server.com/Joomla/plugins/system/plugin_googlemap3/plugin_googlemap3_proxy.php?url=target.com/large_file.xxx
服務(wù)器端的http報(bào)文信息:
分別從三方總結(jié)圖5中的流量:
表2中的數(shù)據(jù)看起來不但比表1沒有優(yōu)化,而且代價(jià)更加夸張。但是,這里需要注意的是,這只是在瀏覽器中的請求,而在實(shí)際的攻擊中,最后一個(gè)http數(shù)據(jù)包完全不需要,因此,真正的攻擊看起來應(yīng)該是這樣的:
說明:192.168.222.129為攻擊者IP,其他不變
分別從三方總結(jié)圖5中的流量:
可見,流量數(shù)據(jù)已經(jīng)有了改進(jìn),但是這里還存在一個(gè)問題,反射服務(wù)器和攻擊目標(biāo)承受的流量幾乎相同。在對攻擊目標(biāo)進(jìn)行大流量攻擊的同時(shí),反射服務(wù)器可能會(huì)率先掛掉。這時(shí),“DDoS”中的第一個(gè)“D”便發(fā)揮了用處。分布式攻擊能夠很好的將流量分散,也即所有的分布式反射服務(wù)器的流量加起來才與攻擊目標(biāo)承受的流量相同。例如,使用2個(gè)具有漏洞的Joomla 服務(wù)器進(jìn)行攻擊:
說明:192.168.222.128為反射服務(wù)器1,192.168.222.131為反射服務(wù)器2,其他不變
分別從三方總結(jié)圖5中的流量:
可見攻擊目標(biāo)承受的流量幾乎跟所有反射服務(wù)器加起來一樣,所以只要有大量的反射服務(wù)器,便可以針對攻擊目標(biāo)發(fā)動(dòng)很大流量的攻擊。
更確切的說,這是一種耗盡攻擊目標(biāo)機(jī)器性能和上行帶寬的DDoS攻擊。
4.攻擊效率
本文統(tǒng)計(jì)了分別請求攻擊目標(biāo)中不同大小的文件的攻擊效率,這里用了一臺(tái)Joomla反射服務(wù)器(windows),一臺(tái)攻擊目標(biāo)(Linux),一臺(tái)攻擊機(jī)(Kali Linux)。下面是統(tǒng)計(jì)信息:
(1) 請求500KB的txt文件,每秒請求19次
攻擊目標(biāo)網(wǎng)絡(luò)流量:
Joomla反射服務(wù)器網(wǎng)絡(luò)流量:
(2) 請求1MB的txt文件,每秒請求18次
攻擊目標(biāo)網(wǎng)絡(luò)流量:
Joomla反射服務(wù)器網(wǎng)絡(luò)流量:
(3) 請求1.5MB的txt文件,每秒請求19次
攻擊目標(biāo)網(wǎng)絡(luò)流量:
Joomla反射服務(wù)器網(wǎng)絡(luò)流量:
(4) 請求2MB的txt文件,每秒請求18次
攻擊目標(biāo)網(wǎng)絡(luò)流量:
Joomla反射服務(wù)器網(wǎng)絡(luò)流量:
(5) 請求2.5MB的txt文件,每秒請求18次
攻擊目標(biāo)網(wǎng)絡(luò)流量:
Joomla反射服務(wù)器網(wǎng)絡(luò)流量:
(6) 攻擊效率小節(jié)
可見,這種攻擊的效率是很高的。僅用一臺(tái)反射服務(wù)器,每秒請求19次,便能消耗攻擊目標(biāo)近50M/s的帶寬。若進(jìn)一步提高每秒請求的次數(shù),以及請求更大的文件,或許僅需幾百臺(tái)這樣的反射服務(wù)器便能產(chǎn)生超過百G的流量攻擊。
注:具體實(shí)驗(yàn)方法與漏洞重現(xiàn)請參考ArkTeam官網(wǎng)及微信公眾平臺(tái)。
5.攻擊缺陷
(1) 大文件
要想達(dá)到很好的攻擊效率,要求在攻擊目標(biāo)中存在一個(gè)較大的文件,雖然文件格式不限,但是在尋找大文件時(shí)仍會(huì)比較困難,可能需要通過爬行或遍歷目錄來尋找。若攻擊目標(biāo)中不存在大文件,那么攻擊效率就會(huì)大打折扣。
(2) 服務(wù)器緩存
由于該種攻擊方式是耗盡攻擊目標(biāo)的上行帶寬,同時(shí)反射服務(wù)器會(huì)下載相應(yīng)的大文件,但若反射服務(wù)器采用了某種緩存技術(shù),在第一次下載后便不再下載,這時(shí)攻擊效率仍會(huì)大打折扣。
(3) 反射服務(wù)器數(shù)量
FREEBUF原文中說到:
這意味著,有15萬臺(tái)Joomla服務(wù)器存在這種漏洞,也就意味著所有Joomla服務(wù)器的數(shù)量應(yīng)該遠(yuǎn)遠(yuǎn)大于15萬。但是,根據(jù)調(diào)研,收集到的Joomla服務(wù)器(所有)的數(shù)量如下:
只有oshadan中識(shí)別到的Joomla服務(wù)器較多,若對oshadan提供的搜索結(jié)果進(jìn)行爬取和插件驗(yàn)證,則能夠得到一份反射服務(wù)器列表,可用于攻擊。
6. 思路抽象與擴(kuò)展
Open Redirect
這種攻擊其實(shí)是Open Redirect的一種特例,也就是說,具有Open Redirect特性的服務(wù)器都能用作反射服務(wù)器。Open Redirect是指能夠使得反射服務(wù)器向任意網(wǎng)址轉(zhuǎn)發(fā)請求,這里的任意很重要。
舉一個(gè)大家都很熟悉的例子:
愛站就是其中之一。我們所查詢的網(wǎng)站包含在了URL之中,而且,每查詢一次,愛站就會(huì)向目標(biāo)網(wǎng)站查詢一次標(biāo)題。因此若是能夠收集到許多這樣的網(wǎng)站,也能夠用作反射服務(wù)器。
轉(zhuǎn)載來自FreeBuf黑客與極客(FreeBuf.COM)