加密貨幣挖礦在2018年有了非常快速的增長。由于加密貨幣的價值,黑客有足夠的動力來利用受害者機器的CPU算力進行加密貨幣挖礦活動。本文分析一種攻擊Windows服務器的門羅幣挖礦惡意軟件。
KingMiner惡意軟件最早是2018年6月出現的,并且迅速出現2個更新的版本。攻擊者在惡意軟件開發過程中使用了許多的繞過技術來繞過模擬和檢測方法,導致許多的殺軟引擎都沒有發現。
攻擊流
研究人員發現KingMiner惡意軟件會攻擊Microsoft服務器(大多是IIS\SQL)并嘗試猜測其密碼。然后會在受害者機器上下載Windows Scriptlet文件(.sct)并執行。
在執行過程中,有以下步驟:
· 檢測機器的CPU架構;
· 如果有老版的攻擊文件存在,并kill掉相關的exe文件進程,然后刪除這些文件;
· 基于檢測到的CPU架構,下載payload zip文件(zip\64p.zip)。這不是真實的zip文件,而是為了繞過模擬檢測的XML文件。

圖1: HTTP響應中的zip payload
· XML payload中包含base64 blob,編碼后會出現在該ZIP文件中。

ZIP文件中含有5個文件:
· config.json – XMRig CPU挖礦機配置文件
· md5.txt – 只含有字符串zzz.的文本文件
· powered.exe (老版本中叫做fix.exe) –主可執行文件
· soundbox.dll/soundbox.dll – 含有powered.exe要導出的函數的DLL文件
· x.txt/y.png –二進制blob文件。這也不是一個真實的PNG文件

圖 2: 攻擊的第一階段

圖 3: config.json –含有錢包地址和私有池的XMRig配置文件
模擬可執行文件不會產生任何活動。
在所有的文件都提取出來后,md5.txt文件中的內容就會加到相關的DLL文件中(sandbox.dll\active_desktop_render_x64.dll)。
然后powered.exe/fix.exe會被調用和執行,然后創建一個XMRig挖礦機文件和許多值為Test.的新注冊表。

圖 4: 含有DLL文件的函數
可執行文件會從DLL文件中調用函數:
· ClearDesktopMonitorHook – 該函數會返回值1。
· King1 –創建一個線程并相關二進制blob文件(x.txt/y.png)中的內容。這會導致生成一個可執行文件,即XMRig CPU挖礦機的精簡版。
DLL文件中含有4個函數,可能在之后用到:
· King2 – 該函數會返回值1。
· King3 – 該函數會返回值1。
· King4 – 該函數會返回值1。
· SetDesktopMonitorHook – 調用King1。

圖 5: 函數king1,創建線程并將二進制blob y.png/x.txt作為參數

圖 6: 攻擊的第二階段
XMRig CPU挖礦機會運行并使用受害者機器的所有CPU算力。
雖然配置為使用CPU算力的75%,但實際上使用的是100%。

圖 7: 惡意powered.exe文件使用CPU 100%算力
KingMiner的進化
Check Point研究人員監控到KingMiner惡意軟件在第一次出現后共出現兩個變種。惡意軟件還不斷加入新的特征和繞過方法來避免被檢測和分析。

除此之外,惡意軟件在不斷進化中還預留了許多占位符用于之后的更新,這也會使檢測變得更難。
繞過技術
惡意軟件使用繞過技術是其成功的關鍵。許多相關的簡單價值可以使惡意軟件繞過常見的模擬和檢測方法:
· 混淆32p.zip/64p.zip文件。ZIP文件含有基本的XML格式數據。在從語法上進行描述或分析后,就可以看到ZIP文件了。
· 主可執行文件powered.exe和從DLL中導出的函數。只執行可執行文件確保了沒有其他活動。
· 加入md5.txt內容到DLL文件中。
· 解碼x.txt/y.png內容到可執行文件XMRig CPU挖礦機中。
這些繞過技術都降低了被檢測到的概率:

威脅情報
KingMiner攻擊者使用私有的挖礦池來避免其活動被監控。該挖礦池的API已經被關閉了,而且有問題的錢包地址沒有在公共挖礦池中使用過。所以還不能確定使用的域名,因為這也是私有的。但可以看出攻擊的范圍非常廣,包括墨西哥、印度、挪威等。

圖 6: 攻擊地理分布圖
總結
KingMiner是一款不斷發展中的加密貨幣挖礦惡意軟件,可以繞過常見的檢測和模擬系統。通過應用簡單的繞過技術,攻擊者可以增加攻擊成功的可能性。研究人員預測這些繞過技術在2019年會不斷進化,并成為加密貨幣挖礦攻擊的主要組成
|