黑雀攻擊:揭祕 TF 殭屍物聯網黑客背後的黑客
作者: OA" rel="nofollow,noindex" target="_blank">啟明星辰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這類野生黑雀的加入,通過攻擊病毒,藉助“毒上毒”的方式依附傳播。這些高效的黑吃黑手段給黑客產業鏈帶來了越來越多的複雜性,也讓網路秩序變得越發不安全,需要引起我們的高度警惕。