掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網(wǎng)交流
最近也不知道怎么回事,我們自己的網(wǎng)站沒有被黑,反倒是認識的一些朋友的網(wǎng)站被黑,要么是報復性攻擊要么就是為了實現(xiàn)自己的經(jīng)濟利益;比如掛賭博網(wǎng)站的馬,惡意使得網(wǎng)站跳轉(zhuǎn)到非法網(wǎng)站,真是多事之秋。
事件背景
一個跟我關系很不錯的朋友,也是我的老鄉(xiāng),今天上午跟我說他的網(wǎng)站中有一個會員在QQ上聯(lián)系他,威脅他不讓解封網(wǎng)站賬號就有不良后果,諸如說什么去工信部舉報之類的。而他的網(wǎng)站是資源下載類網(wǎng)站,現(xiàn)在日IP近萬,也有不錯的收益,而且在國內(nèi)只要是資源下載類網(wǎng)站或多或少都有些問題,比如有的資源可能涉及侵權之類的。他自己還是挺擔心的,擔心真的被舉報,即便他網(wǎng)站不存在什么嚴重違法問題,但有時候多一事不如少一事,就像我的網(wǎng)站當初因為會員發(fā)布一篇關于微軟的文章被發(fā)律師函但沒有注意,結果域名被hlod了。
但是沒想到,還沒等到那個人上午的威脅到來,結果現(xiàn)實的威脅卻人了。中午的時候他就跟我說網(wǎng)站被攻擊了,訪問網(wǎng)站后15s后跳轉(zhuǎn)到某色情網(wǎng)站。而他一個以運營見長,技術是他短板的人,卻很快找到根目錄下的index.php文件開頭被插入惡意跳轉(zhuǎn)代碼。很顯然,事情沒有這么簡單,就算他把其中的惡意代碼刪除,攻擊者還是可以繼續(xù)攻擊,因為根源壓根就不在這個地方。
而他的網(wǎng)站就是基于Discuz創(chuàng)建的,基本上就是Discuz本身的狀態(tài),也就是說就算站點存在漏洞也不是他創(chuàng)造了這樣的漏洞?;谶@個時間點,他非常懷疑該事件與上午那個威脅者有關,但一時也不知道如何從根本上處理該問題。
問題處理
我首先要他做一個基本的驗證操作,就是比對網(wǎng)站web程序看下近期是否被篡改,結果得到的反饋是并沒有。然后,他跟我說他的阿里云后臺里邊有提示網(wǎng)站受攻擊,但對于他自己也不知道如何分辨,因為很多被提示的攻擊其實對網(wǎng)站是不存在影響的,比如很多針對某些開源編輯器的攻擊,但他的網(wǎng)站壓根沒有使用,這樣的攻擊再多也不會被攻破的,最多變成dos攻擊了,呵呵。我問了他幾個上面提示的細節(jié),比如要他注意有chr方法的地方,但看了之后還是覺得不是該事件的問題。
然后我干脆問他要了阿里云的賬號,處于對我的信任他毫不猶豫給我了,我進入阿里云后臺,因為我之前就利用阿里云提供的安全監(jiān)控工具快速定位攻擊事件,這比自己另外去找效率高得多。結果在“弱點”(其實就是漏洞)這個提示項中發(fā)現(xiàn)連續(xù)好幾個高危提示,都是“fastcgi 代碼執(zhí)行漏洞”。
那這是一個什么漏洞呢?據(jù)了解該漏洞一般不是web程序引起的,而一般是由于web服務器配置不當引起的,比如nginx、iis等;該漏洞會使得一些不安全的文件被當做可執(zhí)行的文件執(zhí)行。非常典型的就是在圖片中植入攻擊代碼,然后上傳該圖片到服務器,再利用該漏洞執(zhí)行圖片中的攻擊代碼。下面的圖片就是驗證該漏洞的,在根目錄下robots.txt是搜索引擎協(xié)議文件,顯然是正常的,但是加上/x.php訪問安全狀態(tài)是不能夠被訪問的,但他這里可以直接被訪問,這漏洞表現(xiàn)得一覽無余。
我于是要他給我一個有上傳圖片權限的網(wǎng)站賬號給我來測試,說到這里;他又跟我補充了一個細節(jié):那就是上午那個威脅他的人對應的賬號,從注冊開始除了傳圖片外啥都沒做。到了這里我越發(fā)感覺問題就是在這個地方。
我在本地制作一個帶有一句話php執(zhí)行木馬的圖片,用cmd命令行合并一個jpg圖片和一個寫有一句話木馬的php文件。
然后利用他給我的用戶賬戶上傳文件(其實他的網(wǎng)站任意注冊用戶都有上傳圖片權限),結果這張帶有木馬的圖片順利上傳到網(wǎng)站服務器中;這張圖片很明顯是帶有木馬的,這不用再看了。這時候我要他提供一張攻擊者賬戶上傳的圖片給我。結果是一張這樣的圖片:
呵呵,你丫是表情包呢,結果他說那個人傳的都是類似這種風格的,尼瑪,我也是醉了。用16進制查看器打開該文件,結果幾乎讓我可以完全確定該攻擊源于此了:
可以非常明顯得看到在結尾有一段非常明顯的代碼,而此代碼之前應該才是正常圖片的編碼。到了這里真相就出來了,這是一個非常典型的一句話木馬。
結語
該漏洞在阿里云官方有兩種解決方案的(阿里云官方解決方案),除此之外我們可以升級web服務器版本至安全版本等等。實際上上面的過程僅此這個漏洞攻擊者還是不能夠?qū)崿F(xiàn)攻擊目標,比如如果不給他傳圖片也就不能在圖片中插入代碼并上傳到服務器。所以攻與防總是一環(huán)扣一環(huán)的。不管對于攻擊者還是防護者都是有較高要求的,對于攻擊者而言,可以利用的破綻中缺少某個環(huán)節(jié)就是功虧一簣;而對于防護者而言,需要盡可能避免漏洞的出現(xiàn),哪怕對于該漏洞本身來講并不是什么高危漏洞,但依然可能被利用。
這里也不得不贊一下阿里云,我之所以贊它并不僅僅是因為上述過程中使用了它提供的安全監(jiān)控工具。而是在這個過程中,其實我做了一個逆向的攻擊重現(xiàn),也就是重現(xiàn)一遍攻擊過程(當然該過程相對攻擊者攻擊過程輕松許多,呵呵),在這個過程中實踐了除該攻擊流程本身之外的過程。比如直接把木馬上傳到服務器做基礎攻擊測試,這個地方就是我要贊阿里云的,木馬文件剛上傳,郵件馬上就到來。
雖然該測試木馬是非常容易被識別的,但我要贊的是阿里云的這個通知速度,絕對杠杠的。這不是打廣告,使用阿里云產(chǎn)品幾年了,確實相對以前省了不少事情或者提高了不少事情的處理效率,比如我們這邊文章所講的。
最后想說的是,沒有絕對的安全體系,要做的是最大可能避免不良事件的發(fā)生,最重要的是有防范于未然的安全意識!
我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網(wǎng)交流