Linux應(yīng)急故事之四兩撥千斤:黑客一個(gè)小小玩法,如何看瞎雙眼
某日,深信服劉同學(xué),一位辦事處擁有多年應(yīng)急經(jīng)驗(yàn)的老手,像往常一樣忙碌而嫻熟的處理所在區(qū)域的各種安全應(yīng)急事件。突然,某客戶求助,稱深信服的安全感知產(chǎn)品檢測(cè)到了異常威脅,需要協(xié)助分析處置。
1. 劉同學(xué)
劉同學(xué)打開安全感知平臺(tái),找到對(duì)應(yīng)主機(jī),發(fā)現(xiàn)報(bào)的是虛擬貨幣挖礦。劉同學(xué)會(huì)心一笑,挖礦檢測(cè)有近乎100%的準(zhǔn)確率,抓個(gè)挖礦小病毒,跟日常打怪一樣簡(jiǎn)單。
但是接下來的事情,突破了劉同學(xué)的認(rèn)知,差點(diǎn)看瞎他的雙眼。
2. 看瞎雙眼
那是一臺(tái)Linux服務(wù)器,劉同學(xué)通過ps命令就輕易定位到了挖礦進(jìn)程,但是接下來的事情并不輕松,他嘗試了各種方式,始終無法找到挖礦進(jìn)程對(duì)應(yīng)的文件。
這種不合常理的現(xiàn)象,令他百思不得其解,甚至懷疑中了rootkit病毒,但嘗試rootkit掃描工具,仍然一無所獲。
挖礦進(jìn)程對(duì)應(yīng)文件指向兩處,一處是 /usr/sbin/apache ,一處是 /tmp/.ICE-unix/. ./m 。
但是無論他使用何種命令,甚至逐一檢查了rc.d、crontab、init下面的各種啟動(dòng)項(xiàng),翻遍了臨時(shí)目錄、用戶目錄、進(jìn)程目錄……花費(fèi)了很多時(shí)間,望眼欲穿,都無法找到哪怕一個(gè)病毒文件。
cd到對(duì)應(yīng)目錄,使用ls -al就是看不到任何可疑文件,按道理應(yīng)該不會(huì)自刪除。
劉同學(xué)向總部請(qǐng)求協(xié)助的時(shí)候,表示自己“已經(jīng)瞎了”!
3. 柳暗花明
總部EDR安全團(tuán)隊(duì)接到這個(gè)協(xié)助請(qǐng)求的時(shí)候,還是有很大壓力的,同時(shí)也聯(lián)合了安全感知的安全專家參與分析。
劉同學(xué)一直是嫻熟的應(yīng)急人員,能讓他“看瞎”的,并不多,可能水比較深。
總部安全專家遠(yuǎn)程接入后,也按照劉同學(xué)提供的信息,進(jìn)行一一確認(rèn),同樣也沒有找到有效信息。
接下來,使用大法,直接把挖礦進(jìn)程的內(nèi)存dump出來,觀察其關(guān)鍵字符串。
使用strings -n 8將字符串過濾出來,看到如下信息:
這引起了我們的警覺,總感覺哪里不對(duì)。
我們重新再cd到/tmp/.ICE-unix/,再一次使用ls -al查看該目錄下面所有文件。
停在這里(上圖),大概盯了有好幾分鐘時(shí)間,陷入了沉思……
突然,再一猛看,端倪就出來了,某個(gè)字符貌似不對(duì)。仔細(xì)觀察上圖(后期特意放大了幾倍),倒數(shù)第三行,貌似不對(duì),它的兩個(gè)點(diǎn)“空隙”比別的稍微“大”了那么一丟丟(要拿尺子量的那種大,目測(cè)毫米級(jí)別) 。
真實(shí)遠(yuǎn)程界面,一般字體都非常小,上面是正常的畫面(大屏小字體),這邊后期加了黑色背景來體現(xiàn)差異。所以,每次進(jìn)入到這個(gè)目錄,劉同學(xué)就自然而然的以為只有“.”和“..”,殊不知,還有一個(gè)“. .”(這里面的兩個(gè)點(diǎn)之間是有一個(gè)空格的)。
一個(gè)點(diǎn)是當(dāng)前目錄,兩個(gè)點(diǎn)是上級(jí)目錄,兩個(gè)點(diǎn)加個(gè)空格就是一個(gè)全新的目錄。
再往上翻,dump內(nèi)存引起我們警覺的那一行,回頭一想,ASCII碼40就是表示空格啊!
4. 樣本剖析
要進(jìn)入那個(gè)吊詭的文件夾,還不能直接cd . .(注意,這兩點(diǎn)之間有空格),需要cd “. .”,即加一個(gè)雙引號(hào),防止轉(zhuǎn)義。
該文件夾下一共有10個(gè)文件,其中x、a、u、r為惡意腳本,?、b、c、d,h和m惡意可執(zhí)行文件。
執(zhí)行流程 x -> a -> u -> r -> h (隱藏 & 運(yùn)行 m ) -> m (挖礦),為了執(zhí)行真正的挖礦,繞了一大圈。
入口腳本x (以下所有#標(biāo)注的漢字,均為我們后期備注說明)
釋放腳本a
清除腳本u
啟動(dòng)腳本r,如下圖,進(jìn)程路徑同時(shí)也偽裝成了/usr/sbin/apache,是一個(gè)不存在的路徑。
./h是進(jìn)程偽裝工具XHide,網(wǎng)上有開源代碼,那個(gè)/usr/sbin/apache路徑就是XHide偽裝的。
原理也很簡(jiǎn)單,調(diào)用execv創(chuàng)建目標(biāo)進(jìn)程。
挖礦病毒就是開源的xmrig,從config.json中讀取錢包地址后開始挖礦。
為了做隱藏,黑客做了一些小技巧,一個(gè)是利用肉眼視覺慣性和疲勞,創(chuàng)建了一個(gè)肉眼難以察覺的目錄,另外一個(gè)小技巧,就是利用Xhide黑客工具偽裝出了一個(gè)不存在的文件位置/usr/sbin/apache,放了一個(gè)煙霧彈。
仔細(xì)想想,黑客做的這些小技巧,確實(shí)蒙蔽了大多數(shù)的人,也起到了四兩撥千斤的效果!
5. 追根溯源
隱藏的根因我們已經(jīng)挖到了,入侵根因呢?
我們?cè)?var/log/secure日志當(dāng)中發(fā)現(xiàn)了有端倪的現(xiàn)象,這個(gè)Linux系統(tǒng)安全日志,記錄用戶和工作組變化情況、用戶登陸認(rèn)證情況,其有大量認(rèn)證失敗的日志。
源地址為XX的IP大量嘗試了不同的用戶名與密碼。從23日凌晨開始一直在持續(xù),用戶名是按照字符排序進(jìn)行嘗試,于凌晨XX點(diǎn)XX分XX秒時(shí)刻成功爆破。
6. 回首總結(jié)
這里,我們?cè)僖淮位仡欉@個(gè)事件。有一點(diǎn),用戶做得特別好,就是及時(shí)關(guān)注了深信服安全感知平臺(tái)的安全事件,極早了排除安全隱患。
挖礦病毒是當(dāng)前安全事件中最為流行的一種病毒,深信服安全感知對(duì)這類病毒有近乎100%的準(zhǔn)確率。
此外,建議用戶對(duì)Linux主機(jī)進(jìn)行安全基線的加固,增加密碼的復(fù)雜度與帳號(hào)鎖定策略。
這里還有一點(diǎn),如果用戶部署了深信服終端檢測(cè)響應(yīng)平臺(tái)(EDR),那么用戶將直接可以對(duì)告警主機(jī)進(jìn)行查殺,無需人工干預(yù),即可做到快速處置。對(duì)于肉眼難以發(fā)現(xiàn)的空格隱藏問題,必然是無障礙清理的!再也不用擔(dān)心“眼瞎”了。
7. 相關(guān)IOC
- BBD807BCC2596FD7EEC38BFCBED9F5A5
- 60103B3D5FD524BBDA4682E5B0C6560E