《一個(gè)路徑牽出連環(huán)血案》之一“詭異的請(qǐng)求”
作為一名才畢業(yè)沒多久就天天寫各種報(bào)告的苦命文職專員,就在這里記錄記錄工作筆記來打發(fā)下無(wú)聊的日子吧。我把每天遇到好玩的整理發(fā)出來與大家分享,所謂獨(dú)樂樂不如眾樂樂^_^
一、詭異的請(qǐng)求
作為一名剛參加工作的新人,我的工作就是寫報(bào)告和分析日志,什么日志呢,就是國(guó)內(nèi)某云WAF里所有網(wǎng)站產(chǎn)生的請(qǐng)求日志。分析了日志寫報(bào)告,寫完報(bào)告又要分析日志,每天不是在寫報(bào)告就是在分析日志。這周連寫三天的報(bào)告了,已虛脫到無(wú)力吐槽。還好在下班之前搞定了,不然木木姐又得去幫我買麥當(dāng)勞了(官方標(biāo)配加班餐)。
三天沒去分析攻擊日志了,已惦記得心憔悴。放肆,這是在干嘛,我發(fā)現(xiàn)有一抹多的IP對(duì)N多的網(wǎng)站請(qǐng)求著同一個(gè)路徑:
/data/in***.php(為了防止看官作惡,文件名隱藏了)
并且這幾天的請(qǐng)求次數(shù)還真多,你們完蛋了,因?yàn)槲乙_始好好分析分析了。我敲了幾條shell命令,把請(qǐng)求這個(gè)路徑的日志行都單獨(dú)地提煉了到了一個(gè)文本中——這樣看上去會(huì)更加直觀了些。
然后叫旁邊正在賣力修BUG的P看了看。“你看,這是我剛導(dǎo)出的日志,它們都在請(qǐng)求這個(gè)路徑,感覺這些請(qǐng)求好像有問題,這幾天請(qǐng)求得有些頻繁”,我指著屏幕說道。
“是掃描器吧,都返回的404”,P說道。
“不太像吧”,我答。
緊接著我用awk過濾掉那些影響視覺效果的日志列后繼續(xù)分析。我發(fā)現(xiàn)每條日志都帶有Referer,Referer是指向其他站點(diǎn)data/in***..php路徑的URL。奇怪。
我隨手抽了幾個(gè)Referer里的URL放瀏覽器中訪問,想看看是什么。這一看真不得了!瞬間被嚇尿,阿門,竟然是Webshell(黑客放置在網(wǎng)站里的后門程序)!
隨手剪張截圖給大家看看:
看來,這些請(qǐng)求就是在嘗試網(wǎng)站有沒有Webshell!
為啥攻擊者的腳本會(huì)把Webshell放在Referer里呢?是上帝的恩賜?還是黑客有意?或者是寫掃描Webshell程序的人喝太高了,打錯(cuò)變量引起的BUG呢?不得而知,管他呢,重要的是,這里導(dǎo)出來竟有101個(gè)存活的Webshell。
我趕緊很不道德地打斷了小組其他人的工作,叫他們過來看看。滿屏幕的Webshell把他們也嚇尿了。
短暫的唧唧歪歪后,我們決定:
1、 由我把一個(gè)月的日志中所有請(qǐng)求/data/in***.php的導(dǎo)出來做分析工作。
2、 找出用了某云WAF的網(wǎng)站,由P完成。
我在日志平臺(tái)上敲了條Hive語(yǔ)句,然后去尿尿了下,回來日志已經(jīng)全部導(dǎo)出來了。接著把日志里Referer取出來,做了去重統(tǒng)計(jì)后——30天,1185個(gè)Webshell,這個(gè)數(shù)字絕對(duì)夠震撼!P那邊進(jìn)展也很快,把域名列表導(dǎo)出來后,跑了個(gè)檢測(cè)腳本,很快就找出了幾個(gè)用了加速服務(wù)的用戶。
接著我繼續(xù)做分析工作,想先碰碰運(yùn)氣,看能不能用字典把Webshell的登錄密碼跑出來。我用Python寫了段破解Webshell登錄密碼的腳本,掛上以前收集來的Webshell密碼字典列表,然后一個(gè)回車摁下去,然后死盯著屏幕,希望能有結(jié)果。
等待是漫長(zhǎng)的,感覺時(shí)間仿佛死機(jī)了,讓每一秒都在延遲。事實(shí)證明我的運(yùn)氣還是比較好的,字典里果然有。
既然這些Webshell是程序自動(dòng)探測(cè),所有Webshell的密碼應(yīng)該都通用。找了十來個(gè)Webshell做登錄測(cè)試,每個(gè)Webshell都可以正常登陸。登陸進(jìn)去后,我快速地做了一些樣本采集之類的工作。
但一個(gè)問題困然著我們——究竟是何許人也,是誰(shuí)批量干掉這么多網(wǎng)站?莫不成用的0day(未公開的漏洞)?要是0day又得發(fā)一筆了——光拿到Webshell就發(fā)了一大筆了。
仔細(xì)觀察,發(fā)現(xiàn)這1000多個(gè)被黑的網(wǎng)站竟然全部用的DeDeCMS。那么攻擊者應(yīng)該是使用了DeDeCMS的漏洞進(jìn)行攻擊的。
我向大伙匯報(bào)了下成果。
“趕快先檢查現(xiàn)有使用加速服務(wù)里所有DeDeCMS用戶,有沒有出現(xiàn)安全問題,優(yōu)先保障用戶的安全,具體攻擊手段后續(xù)分析”,這時(shí),旁邊沉默很久的老楊發(fā)話了。
這時(shí)P分析也差不多了,“這些網(wǎng)站沒多久才加入的,從日志來看,應(yīng)該是被黑后,來這里尋求保護(hù)的”。
“把站點(diǎn)列表給XM,由他安排客服聯(lián)系站長(zhǎng),另外X把分析分析那個(gè)Webshell,看能不能找出特征后把它攔截了,不準(zhǔn)黑客訪問。另外,為了站長(zhǎng)們的安全,暫時(shí)先把/data/in***.php路徑也給攔截了,不要讓掃描器掃到”,F(xiàn)說道。
然后P利用之前分析的數(shù)據(jù),結(jié)合北京研究部的數(shù)據(jù),以及加速服務(wù)歷史的數(shù)據(jù)做了個(gè)簡(jiǎn)單的統(tǒng)計(jì),統(tǒng)計(jì)結(jié)果是:使用了DeDeCMS的網(wǎng)站,竟然有63%都被黑客攻擊成功過。這個(gè)比例意味著——網(wǎng)站不及時(shí)打補(bǔ)丁、又沒有開啟云WAF,赤裸裸放在服務(wù)器上就肯定會(huì)被黑客攻擊。
過了幾分鐘…
“找到特征了,Webshell的登錄用的Cookie驗(yàn)證,我拿這段Cookie去跑了幾天日志,沒有誤報(bào)的,現(xiàn)在就上規(guī)則”,X說道。
又過去幾分鐘…
“規(guī)則已經(jīng)生效了,訪問/data/in***.php被攔截了,我把Webshell換了個(gè)文件名放自己網(wǎng)站里,一登錄就被攔截了”,P說。
“干得很漂亮,剛才我給余弦打了電話了,ZoomEye團(tuán)隊(duì)也進(jìn)入應(yīng)急了,你把日志樣本發(fā)給他們”,F(xiàn)對(duì)我說。
“不錯(cuò),Webshell的后續(xù)分析工作交給我來吧”,我說。
“好,下周你就負(fù)責(zé)把這些網(wǎng)站全部提權(quán)了,然后再拖庫(kù),哈哈。開玩笑的,交你了哈,弄完了寫個(gè)分析報(bào)告”,F(xiàn)說道。
我們需要知道:
1、黑客是用什么手段攻擊的;
2、是誰(shuí)在攻擊。
圍繞著這兩點(diǎn),我的一段艱辛的分析就此展開了,途中遇到各種奇葩,待下次道來。