作者:啟明星辰ADLab

“螳螂捕蟬黃雀在后,不知樹下之彈弓也”。啟明星辰ADLab于2017年首先提出一種高效的黑客攻擊手段---黑雀攻擊,并闡述了黑客生態中的黑雀攻擊現象及黑雀分析方法,開創了黑雀生態的研究與分析。我們以現實中存在的一款僵尸網絡為例,論述了在黑客生態圈中所存在的三級黑客架構的黑雀攻擊現象(大黑雀、黑雀、螳螂),并且發布了長篇深度分析報告《黑雀攻擊-揭秘Death僵尸網絡背后的終極控制者》;隨后我們披露了”比爾蓋茨僵尸”黑客生態圈中的黑雀現象,發布了《揭秘Billgates僵尸網絡中的黑雀現象》。而隨著物聯網這塊肥肉被黑客盯上后,黑雀也同樣盯上了物聯網黑客,本文我們將揭露支持物聯網攻擊與感染的Ddostf僵尸中所存在的“黑雀現象”。

一、僵尸物聯網黑雀分析簡述

啟明星辰ADLab在長期的僵尸生態研究分析中發現了一款物聯網僵尸被廣泛的植入了黑雀。通過對其進行溯源分析確認其是一種支持多CPU平臺的Ddostf僵尸網絡家族變種。自2016年10月Mirai肆虐美國互聯網開始,各路物聯網病毒如雨后春筍般層出不窮,Ddostf僵尸也不甘落后,于2017年4月增加了植入黑雀的物聯網僵尸,能夠感染Arm、Mips、X86架構的物聯網設備,傳播廣泛,危害極大。

該僵尸網絡中多個螳螂黑客控制的僵尸網絡異常活躍,同時我們監測到隱藏在該僵尸網絡的幕后黑雀也在近期現身,分別于2018年9月20日16時59分和9月6日21時23分開始,數次通過UDP FLOOD和TCP FLOOD向高防服務器?(218. 90. XX.XX、118. 184. XX.XX)發起攻擊,導致服務器業務長時間中斷。

在分析過程中我們還會分析一些有趣的現象:“毒上加毒”,部分野生黑雀通過技術手段像寄生獸一樣感染并附著在僵尸程序上,黑客在發展自身資源的同時,也在無形中幫助野生黑雀進行僵尸網絡的擴張。這也使得原本的兩級黑客模式演變成了更為復雜的三級黑客模式。文中我們將介紹其黑雀攻擊的原理以及這種“毒上加毒”的現象。

通過對Ddostf僵尸網絡幕后黑雀的追蹤分析和樣本抽測,我們共收集到約500個關聯樣本,其中Arm和Mips架構共262個,物聯網僵尸占比超過總樣本量的一半。分析顯示該黑雀至少控制著184個螳螂僵尸網絡,其中大部分螳螂C&C位于中國,但隨著國內打擊DDoS力度越來越大,許多黑客開始將服務器外遷到網絡管控寬松的國家和地區來躲避監查,以下是根據抽樣數據繪制的黑雀控制下的螳螂C&C分布地區統計圖:

同時,我們也對該黑雀控制的我國境內Ddostf僵尸網絡螳螂C&C進行了細分,數據顯示螳螂C&C分布最多的幾個省份和地區依次為香港、北京、江蘇、廣東、遼寧和貴州等,相關分布圖如下所示:

二、Ddostf bot?簡介

Ddostf bot是當前中國區非常活躍的多硬件平臺僵尸網絡之一,由國內黑客組織編寫,因僵尸程序代碼包含“ddostf”而得名,自2015年起大量在黑產社群及論壇發布和售賣。其版本更迭迅速,至2017年4月共進行了8輪更迭。其中最近發布的版本為天罰壓力測試系統V8.1,目前該黑客組織關閉了對外接口并停止了程序更新。

Ddostf bot 程序使用C語言編寫,最新版本可入侵Windows平臺和Linux平臺下的Arm、Mips、X86等多種硬件平臺架構的設備,相較于傳統僵尸病毒,Ddostf對多平臺的支持尤其是針對智能設備的攻擊使其可以掌握大量的網絡資源,無疑會造成更強的破壞力。Ddostf bot 可針對目標進行12種攻擊,包括TCP flood、ICMP flood、UDP flood、SYN flood、HTTP flood、CC flood等攻擊手段。

Ddostf bot在最初的編譯文件中預留了黑雀攻擊接口,盡管部分下游螳螂黑客發現并去除了該接口,但仍有大量的螳螂中招,成為黑雀擴展資源的免費勞動力。

三、黑雀發現

在對黑產僵尸網絡的分析過程中,我們發現一款新型的物聯網僵尸在物聯網設備中快速擴散,隨后我們迅速地獲取到了該物聯網僵尸的樣本。通過樣本相似度比對發現該樣本為Ddostf僵尸的變種(Ddostf僵尸在以往的眾多版本中并不支持物聯網設備的感染),并且在我們對大量關聯樣本的批量分析過程中發現,該家族的大部分攻擊代碼都會連接兩個以上C&C控制端,并且其中一個C&C控制端的連接行為異常,如大量樣本均會嘗試對其進行連接并且做了延遲上線。因此,我們對這些樣本進行了進一步分析并最終確認該僵尸生態中被植入黑雀。

針對我們收集到的約500個僵尸樣本,繪制樣本上線頻度占比圖如下:

從圖中可以看出C&C(v8.ter.tf)上線的頻度遠高于其他C&C, 根據黑雀可對下游螳螂黑客的攻擊樣本進行感染的特性,可以判定該僵尸生態中的黑雀即是控制C&C為v8.ter.tf的黑客。

四、黑雀樣本分析

由于Ddostf僵尸支持多架構平臺,我們在分別對Windows和Linux平臺的樣本進行分析后發現,兩類平臺均存在黑雀攻擊的現象,但作者對黑雀C&C的加密處理有所不同。其中Windows端采用了較為復雜的自定義加密算法,Linux端則采用了Base64的方式進行編碼,兩種不同難度的加密隱藏方式也造成黑客在去除黑雀后門時的難度有所不同。我們分別統計了兩個平臺受到黑雀攻擊(帶有后門)的樣本占該平臺總樣本的比例。

可以看到受攻擊的Windows平臺的樣本占比明顯高于Linux平臺,也即Windows端肉雞受黑雀控制比例更高。

通過對該黑雀的信息追蹤,我們發現了該黑雀最近發布的v8.1版本控制端和配置小馬,并以此為例對其Linux和Windows兩類平臺的樣本進行簡要分析。

4.1 Linux平臺樣本

Linux端樣本包含X86、ARM和MIPS三種硬件平臺,但其主要邏輯的實現并無太大差別。黑雀在程序中均使用硬編碼的方式存儲字符串"djgudGVyLnRm",通過Base64解碼后可得到域名“v8.ter.tf”。僵尸程序在開始階段會校驗字符串"djgudGVyLnRm"是否匹配,若不匹配則打印“不要試圖破壞程序!”并重啟系統。我們在《啟明星辰ADLab聯合電信云堤揭秘Billgates僵尸網絡中的黑雀現象》一文中提出過“偷梁換柱”的攻擊現象,即其它黑雀通過攻擊黑雀接口來實現C&C的替換。依此我們從僵尸程序校驗黑雀C&C字符串這一模塊可以看出,程序作者也意識到了這一問題,并希望盡可能避免黑雀接口遭到破壞。只是其手段并不高明,許多螳螂黑客通過反編譯找到黑雀加密域名和驗證字符串,同時更改或采用Patch的方式依然能夠破壞接口,實現黑雀攻擊。

驗證成功后僵尸程序會進行如下操作:
1.權限判定
通過JudgeIfRoot函數依據文件/proc/cpuinfo可讀性判定進程是否ROOT。
2.進程互斥
若進程權限為ROOT且啟動時有參數傳遞,則通過readlink函數獲取自身絕對路徑,執行"ps -e"查看進程是否已運行,否則退出。
3.開機自啟動
程序在Mvfile函數中會調用system函數執行命令設置開機自啟動:
chmod +x /etc/rc.local
mv $(pwd)/c1 /etc/c1
cd /etc;chmod 777 c1
sed -i -e '/exit/d' /etc/rc.local
sed -i -e '/^\r\n|\r|\n$/d' /etc/rc.local
sed -i -e '/c1/d' /etc/rc.local
sed -i -e '2 i/etc/c1 reboot' /etc/rc.local
sed -i -e '2 i/etc/c1 start' /etc/rc.d/rc.local
sed -i -e '2 i/etc/c1 start' /etc/init.d/boot.local
4.守護進程

通過fork創建雙進程守護,并且會切換至/tmp目錄。

在此之后程序會開啟兩個線程,其中黑雀線程的主體功能與螳螂線程相似度很高,但控制指令功能類型少于螳螂線程。值得注意的是黑雀線程會延遲60s后上線,往往可以迷惑分析人員,使黑雀C&C隱藏在大量的C&C處理中,減少被分析發現的可能。

4.2 Windows平臺樣本

Windows端樣本首先會在磁盤根目錄windows文件夾下釋放子體并自我刪除,之后通過服務的方式啟動子體進程。相較于Linux平臺針對域名的簡單Base64編碼“加密”,程序作者在windows端采用了自定義的加密算法,以防止被輕易發現和篡改。需解密的黑雀C&C和黑客C&C如下所示:

解密函數首先會初始化密鑰Table,之后通過包括按位異或、行位移等多種方式進行10輪解密操作,由于解密流程較為復雜,在批量解密域名的過程中我們采用了動態腳本解密的方式進行提取,最終會得到解密后的螳螂C&C和黑雀域名。

Windows平臺樣本的主要邏輯同Linux平臺相似,首先會進行黑雀域名的驗證,驗證成功后開啟黑雀線程,但并未做延遲上線處理。 我們通過對黑雀域名v8.ter.tf所涉及的windows端樣本的編譯時間進行抽樣分析,繪制如下樣本編譯時間軸。

依圖所示,抽樣樣本大部分編譯時間集中在2017年4月18日,盡管許多樣本被產業鏈下游黑客進行過各種包裝處理,如加強殼、插入Loader加載自定義代碼等,但核心僵尸模板都是源于僵尸編寫者在編譯時生成的。所以我們推測僵尸制造者是在2017年4月18日17點10分22秒生產了被大量使用的v8.1版本的僵尸模板程序,而其它時間生產的僵尸模板程序并沒有得到大規模傳播。

4.3 上線數據分析

以V8.1版本Linux X86平臺為例,僵尸程序各平臺的通信協議相同,在獲取計算機相關信息后,程序會組包發送給C&C服務器進行上線請求,上線包長度為204字節。上線數據包格式和上線包內存格式如下所示:

4.4 控制命令及其控制功能

當僵尸程序成功上線后,會調用recv函數來等待C&C服務器下發控制命令,受限于篇幅,我們僅對主控常見命令及其攻擊進行簡單列舉。

僵尸程序從V8.1版本開始增加了出租肉雞服務,能夠將僵尸資源租用給下游黑客使用,可以看出黑雀擁有龐大的僵尸網絡資源并希望借此擴大盈利。

五、黑雀演變

Ddostf僵尸網絡的控制端在一些論壇和黑產群中廣泛散播,我們找到了其中數個歷史版本的控制端和配置小馬,針對其中主要版本的演進做了如下歸納。

可以看出,在較短的時間內,僵尸作者通過不斷的技術更新,使僵尸病毒從單一平臺擴展成為多平臺、隱匿性高、可定制性強的僵尸病毒。尤其在添加了物聯網僵尸之后,Ddostf黑雀僵尸網絡的影響范圍和危害性大大增加。另外,黑雀域名也從最初的多個分散化逐漸演變為集中統一化,這有利于域名解析管理的便捷和攻擊資源的聚合。其中域名myss.myss.top、myss.basec.cc、myss.ddns.net和klss.ddns.net在2016年后解析頻率較低,而域名v8.ter.tf 和myss.ter.tf則相對活躍,兩者關聯著大量僵尸樣本。由此我們判斷該黑雀目前主要操控V8及之后版本的僵尸網絡,但其同時也具備著發起舊版本僵尸網絡DDoS攻擊的能力。

六、隱匿的黑雀攻擊

分析至此,我們已經找到了樣本中的黑雀后門,準備收工大吉。但在檢測“天罰v8集群壓力測試系統.exe”的過程中,我們發現事情并沒有那么簡單。控制端在正常運行時并未出現異常網絡行為,但在點擊“監聽端口”按鈕后程序則會不斷發起可疑連接請求。

由于Ddostf家族的后門問題非常嚴重,螳螂黑客往往會在去除小馬后門時暗自竊喜,放松警惕,殊不知一個更大的陷阱在等待著自己——黑雀在控制端同樣隱藏了黑雀攻擊接口,且只會在監聽端口后開始建立連接。將二者綁定在一起不僅可以迷惑使用沙箱的分析人員,還可以在防火墻攔截網絡通信時迷惑用戶。這種針對控制端攻擊的危害性無疑數倍于針對木馬樣本的攻擊。由于控制端為Windows平臺,僵尸制造者為了隱藏自身進行黑雀攻擊的惡意目的,也為了防止其控制端被其它黑客逆向工程,自V8版本后加入了虛擬機保護殼Safengine Shielden進行加殼保護(據說專業版保護強度甚至強于VMP)。由于脫殼成本極大,我們尋找到了舊版本V7進行逆向分析和比對,發現程序在監聽端口后會主動連接黑雀的另一后門域名host.ter.tf。針對v8版本,雖然SE殼抹去了堆棧信息且無法對程序代碼下斷,但我們在嘗試對網絡系統函數下斷后,經過調試和解密發現了與V7版本相同的黑雀域名。

如域名解析生效,V7版本控制端首先會發送上線包(天罰端),上線包相關格式如下所示:

成功建立連接后控制端程序會等待接收黑雀指令,指令共分三種控制類型,其中當類型為case 7時,程序會通過指令發送的URL地址實現任意下載執行。如下圖所示:

如此一來,黑雀就可以輕易控制螳螂黑客執行任意文件,不僅可以進行版本的更新,還可以加載任意惡意軟件,危害極大。通過域名解析查詢我們了解到,目前黑雀始終未對該域名進行IP解析,也就是說未曾發起過針對控制端的攻擊。但不排除黑雀是在下一盤大棋,只待時機成熟進行大范圍收割。綜上,我們有理由懷疑黑雀在未來可能借此發動更大規模的攻擊,需要引起高度警惕。

七、毒上加毒

在分析樣本的過程中我們還發現了一些有趣的現象,部分Windows平臺樣本的大小明顯同模板樣本偏差較大,且會建立3個以上的C&C連接。通過進一步分析我們發現此類樣本遭到了野生黑雀攻擊,代碼入口點被更改后加載了自定義Loader,且病毒代碼隱藏在新增的rmnet區段中。

通過分析發現,這類野生黑雀攻擊實為Ramnit蠕蟲病毒所為,該蠕蟲以各種小工具的形式在互聯網上廣泛傳播并形成了龐大的僵尸網絡。其首次出現于2010年,觸發后會感染本地和移動硬盤上的EXE、DLL、HTM和HTML文件,可以竊取被感染主機的銀行憑證、密碼、cookie和個人文件等等。

被攻擊程序首先會執行rmnet段,運行后會生成并執行srv.exe(upx加殼)同時跳轉回原程序入口執行被感染進程邏輯。通過調用CreateProcess啟動srv.exe后會釋放自身到Program Files\Microsoft\DesktopLayer.exe,運行DesktopLayer.exe后程序會從文件中提取DLL。

之后進程通過InlineHook調用ZwWriteVirtualMemory函數將DLL文件注入到IE和Google Chrome進程中,從而實現文件不落地,防止殺軟查殺。最后通過被注入的瀏覽器進程進行文件感染、遠控連接、注冊表自啟動等行為。這里我們主要關心其對僵尸程序進行感染的攻擊過程。

分析過程中涉及多次脫殼和DUMP,最終可以提取到注入進程的DLL,DLL中會進行真正的病毒行為。感染攻擊的實質是添加loader來加載自定義惡意代碼的過程。首先將目標PE文件映射到內存中,判斷其是否含有rmnet區段,不包含則在尾部增加區段寫入惡意代碼,修改區段屬性為可執行,然后將惡意代碼末尾指向程序原入口點,而程序原入口點指向惡意代碼的起始位置。

解密后可以得到其控制端域名fget-career.com,該域名自2013年以來多次變更解析IP,雖然其服務器多次遭到刑警組織打擊,但目前仍保持活躍,危害極大。因為受到Ramnit僵尸網絡感染的螳螂眾多,我們判斷其與螳螂黑客并無利益關聯,而是黑客在不知情下被Ramnit攻擊后繼續擴散樣本。由于Ddostf bot自身受到二級黑客控制,樣本在被野生黑雀攻擊后即受到三級黑客控制,同時具備了DDoS、遠控、竊密等多種攻擊方式,隨著黑客技術的不斷迭代更新,這種“毒上加毒”的攻擊方式很有可能被更多黑客利用,此類樣本一旦擴散無疑會對網絡造成更為強大的破壞和危害。

八、黑雀畫像

通過域名注冊歷史,我們觀察到域名v8.ter.tf采用了隱私保護無法得知具體信息,其中最近的域名注冊記錄顯示其有效時間從2018年4月20日至2022年4月20日,同時通過溯源發現其共存在9次有效解析記錄,相關IP解析記錄如下:

可以觀察到,黑雀長期使用監管寬松的服務器IP,間隔1-3個月即更換一次。同時我們通過監測發現,該黑雀通常只在準備攻擊前進行解析IP操作,經過一段時間的積累,當上線肉雞量達到需求后即發動DDoS攻擊,結束后迅速取消域名解析(如取消或刪除A記錄/CNAME),銷聲匿跡。可以判斷出黑雀非常在意自身的隱匿安全性,靈活運用了打一槍換一炮的戰術,在一定程度上增加了研究人員的追蹤難度。

黑雀自2017年5月28日開始活躍,我們觀察到其C&C (104.223.0.95)在2017年4月11日至5月30日關聯在域名myss.ter.tf (V8版本黑雀C&C)下,而后關聯至域名v8.ter.tf(V8.1版本黑雀C&C)下,這與V8.1版本樣本的編譯和散播時間基本吻合。而從2017年8月29日起至2018年6月17日黑雀則較為低調,將域名持續解析至127.0.0.1。在2018年6月17日后黑雀域名共4次解析IP,通過IP關聯分析并沒有發現足夠多的樣本,主要原因是黑雀在攻擊后往往會迅速取消域名解析,導致大量的提交樣本在沙箱掃描時無法正常DNS解析。

監測發現9月以來該黑雀活動較為頻繁,2次現身發動攻擊。

我們在前文提到,通過對這批樣本的分析,該黑雀至少掌控著184個獨立螳螂僵尸網絡,也即至少掌控著這184個C&C服務器所控制的所有肉雞。而這只是黑雀的一部分資源,相對于螳螂來說,黑雀掌握的肉雞資源幾乎高出單個螳螂僵尸網絡兩個數據量級,所構成的攻擊流量也會呈數量級增加,破壞力極大。

依據我們目前對黑雀的掌握和溯源分析,繪制黑雀名片如下:

九、總結

隨著物聯網僵尸網絡的爆發式增長,越來越多的黑雀將目光從傳統平臺轉向物聯網領域,大大增加了攻擊面,Ddostf僵尸的幕后黑雀也借此積極擴張。通過我們長期對Ddostf僵尸生態的研究分析發現,盡管部分黑客嘗試去掉其小馬后門并重新傳播,但絕大多數的Ddostf僵尸樣本依然留存有此類后門,且黑雀“狡猾”的在控制端也暗藏黑雀攻擊接口,在添加強殼后難以發現和去除,用即中招。所以綜合判斷該黑雀僵尸資源豐富,實力非常強悍。本文重點對Ddostf僵尸網絡中的這種現象進行了分析披露,并對典型僵尸樣本進行了分析。此類黑雀利用普通黑客的攻擊資源來發展自己的肉雞,不動而坐收漁利。同時也要留意像Ramnit這類野生黑雀的加入,通過攻擊病毒,借助“毒上毒”的方式依附傳播。這些高效的黑吃黑手段給黑客產業鏈帶來了越來越多的復雜性,也讓網絡秩序變得越發不安全,需要引起我們的高度警惕。


Paper 本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.jmbmsq.com/712/