深入解析新型加密貨幣挖礦惡意軟體ZombieBoy
延續了2018年加密貨幣挖礦惡意軟體的趨勢,我發現了另一種類似於5月初發現的「MassMine」的挖礦惡意軟體。我把這個家族稱為ZombieBoy,因為它使用了一個名為ZombieBoyTools的工具來釋放第一個dll。
與MassMiner類似,ZombieBoy也是一種利用漏洞進行傳播的挖礦蠕蟲。但也有與MassMiner不同的地方,ZombieBoy使用WinEggDrop而不是MassScan來搜索新主機。ZombieBoy目前仍在不斷更新,我幾乎每天能獲取到新的樣本。
ZombieBoy的執行流程概述如下:
域
ZombieBoy使用了多個運行HFS (http文件伺服器)的伺服器來獲取有效載荷(payload)。經我確認的URL有如下幾個:
l ca[dot]posthash[dot]org:443/
l sm[dot]posthash[dot]org:443/
l sm[dot]hashnice[dot]org:443/
此外,它似乎在dns[dot]posthash[dot]org中也有一個C2伺服器。
漏洞利用
ZombieBoy在執行期間利用了多個漏洞:
l CVE-2017-9073,Windows XP和Windows Server 2003上的RDP漏洞
l CVE-2017-0143,SMB漏洞
l CVE-2017-0146,SMB漏洞
安裝
ZombieBoy首先使用EternalBlue/DoublePulsar漏洞來遠程安裝主dll。用於安裝這兩個漏洞的程序被稱為ZombieBoyTools,似乎源自中國。它使用簡體中文作為自己的語言,並且已經被用來部署了多個中國惡意軟體家族(例如,IRONTIGER APT版本的Gh0stRAT)。
ZombieBoyTools的截圖
在成功執行DoublePulsar漏洞利用後,它會載入並執行惡意軟體的第一個dll。這個dll的執行會導致從ca[dot]posthash[dot]org:443下載一個名為123.exe的文件,並將其保存到「C:\%WindowsDirectory%sys.exe」,然後執行它。
設置
123.exe在執行時會進行多項操作。首先,它會從文件分發伺服器下載第一個模塊。根據對123.exe的代碼分析,它將此模塊引用為「64.exe」,但將其作為「boy.exe」保存到受害者設備上。在保存模塊之後,它會對其進行執行。64.exe似乎負責分發ZombieBoy以及包含在其中的XMRIG礦工。
除了從其伺服器下載模塊外,123.exe還會釋放並執行另外兩個模塊。其中一個模塊在代碼中引用為「74.exe」。它在受害者設備上保存為「C:Program Files(x86)svchost.exe」,這似乎是古老的Gh0stRAT的一種形式。
另一個模塊在代碼中引用為「84.exe」。它在受害者設備上保存為「C:Program Files(x86)StormIImssta.exe」,似乎是一個未知來源的RAT。
64.exe
64.exe是ZombieBoy下載的第一個模塊。64.exe使用了一些非常強大的反分析技術。首先,整個可執行文件使用了打包器Themida進行加密,這使得逆向工程變得非常困難。此外,在ZombieBoy的當前版本中,它會檢測虛擬機,並在檢測到虛擬機之後不再運行。
64.exe會將70多個文件釋放到C:WindowsIIS中,這些文件由XMRIG礦工、漏洞利用程序以及被它命名為CPUInfo.exe的自身副本組成。
64.exe通過連接到ip[dot]3222[dot]net來獲取受害者的ip。然後使用WinEggDrop,一個輕量級TCP掃描程序來掃描網路,以尋找打開了埠445的更多的目標。它還會使用上面獲得的IP以及本地IP來傳播到本地網路以及公共IP網路中。
64.exe會使用DoublePulsar漏洞來安裝SMB後門以及RDP後門。
DoublePulsar截圖
另外,64.exe會使用XMRIG來挖掘門羅幣(XMR)。在關閉minexmr.com上的一個地址之前,ZombieBoy以大約43KH/s的速度挖礦。根據當前的門羅幣價格,這允許攻擊者能夠每月獲得略高於1000美元的收入。
我已找到了另一個新地址,然而,ZombieBoy已經不再使用minexmr.com進行挖礦。
已知的地址:
l 42MiUXx8i49AskDATdAfkUGuBqjCL7oU1g7TsU3XCJg9Maac1mEEdQ2X9vAKqu1pvkFQUuZn2HEzaa5UaUkMMfJHU5N8UCw
l 49vZGV8x3bed3TiAZmNG9zHFXytGz45tJZ3g84rpYtw78J2UQQaCiH6SkozGKHyTV2Lkd7GtsMjurZkk8B9wKJ2uCAKdMLQ
通過使用strace,我發現64.exe正在獲取有關受害者的信息,例如枚舉操作系統的體系結構。
74.exe
74.exe是第一個被123.exe釋放的模塊,也是整個惡意軟體的第二個模塊。74.exe的基本功能是負責下載、解密和執行一個名為NetSyst96.dll的Gh0stRat dll。另外,74.exe還解密了一系列要傳遞給Netsyst96.dll的參數。
參數中的arguments對象如下:
2. 127.0.0.1
4. YP_70608
5. ANqiki cmsuucs
6. Aamqcygqqeqkia
7. Fngzxzygdgkywoyvkxlpv ldv
8. %ProgramFiles%/
9. Svchost.exe
10. Add
11. Eeie saswuk wso
解密過程截圖
一旦74.exe解密了參數,它就會檢查NetSyst96.dll是否已下載並保存到了C:Program FilesAppPatchmysqld.dll。它通過調用CreateFileA並將CreationDisposition設置為Open_Existing來完成此操作。如果找不到mysqld.dll,74.exe將打開與ca[dot]posthash[dot]org:443/的連接,並下載NetSyst96.dll,將其保存為C:ProgramFilesAppPatchmysqld.dll。
NetSyst96.dll有兩個導出函數:DllFuUpgraddrs和DllFuUpgraddrs1。在將NetSyst96.dll保存為mysqld.dll後,74.exe會在NetSyst96.dll中找到DllFuUpgraddrs,在調用它之前。
NetSyst96.dll
NetSyst96.dll通常是被加密的,對解密後的文件的分析返回了一些有趣的字元串,可用於識別它。例如,「Game Over Good Luck By Wind」和「jingtisanmenxiachuanxiao.vbs」。
字元串截圖展示了一些被釋放的文件
NetSyst96.dll可以捕獲用戶的屏幕截圖、錄製音頻,甚至可以編輯剪貼板。此外,對字元串的分析顯示,它導入了鍵盤按鍵,這是鍵盤記錄程序的典型特徵。首先,Netsyst96.dll會獲取環境字元串路徑並使用它創建路徑C:Program files (x86)svchost.exe。接下來,使用CreateToolhelp32Snapshot和NetSyst96.dll在運行的進程中搜索Rundll32.exe,以確定它是否是第一次運行dll。
對於第一次運行,NetSyst96.dll進行了幾項操作來創建持久性:
l 將74.exe的副本保存為C:ProgramFiles(x86)svchost.exe。
l 使用System/CurrentControlSet/Services/ANqikicmsuucs將「ANqiki cmsuucs」註冊為服務。
l 啟動服務後,運行svchost.exe。
l 將MARKTIME添加到註冊表項,添加上次啟動的時間。
l 使用來自CreateToolhelp32Snapshot的快照來搜索正在運行的svchost.exe進程。
l 如果未找到,則會啟動它並返回搜索svchost.exe。
l 如果找到一個,將維持svchost.exe的運行。
l 如果找到多個,會調用一個函數來創建一個vbs腳本,以刪除額外的svchost.exe。
在連續運行時,NetSyst96.dll更關心的是連接到C2伺服器:
1. 查找並驗證「System/CurrentControlSet/Services/ANqiki cmsuucs」是否存在。
a) 如果不存在,它會創建一個這樣的鍵值。
b) 如果存在,則會往下執行步驟2。
2. 創建名為「Eeie saswuk wso」的事件。
3. 枚舉並更改輸入桌面。
4. 將C2伺服器IP傳遞給C2 URL(dns[dot]posthash[dot]org)。
5. 啟動WSA(winsock 2.0)。
6. 連接到www[dot]ip123[dot]com[dot]cn並獲取dns[dot]posthash[dot]org的ip。
a) 實際的IP可能會發生變化,但到目前為止仍是211.23.47[dot]186。
7. 重置事件。
8. 連接到C2伺服器並等待命令。
雖然觸發此函數的命令未知,但我確實發現了一個包含31個選項的switch-case,它似乎是NetSyst96.dll的命令選項。有關這個31個選項中部分選項的深入分析,請參閱附錄。
84.exe
84.exe是由123.exe釋放的第二個模塊,也是整個惡意軟體的第三個模塊。與74.exe類似,它似乎是一個RAT。然而,這也是唯一的相似之處。與74.exe不同,84.exe不需要下載任何其他庫,而是從其自己的內存中解密並執行Loader.dll。此外,84.exe會使用一個函數來解密Loader.dll,包括為每個需要解密的字元拋出異常。
其他運行信息:
· 將用戶的環境字元串設置為C:Program Files(x86)StormII。
此外,一旦調用了Loader.dll,84.exe就會通過一個名為「Update」的函數將一系列變數傳遞給Loader.dll。
變數:
1. ChDz0PYP8/oOBfMO0A/0B6Y=
2. 0
3. 6gkIBfkS+qY=
4. dazsks fsdgsdf
5. daac gssosjwayw
6. |_+f+
8. EQr8/KY=
9. C:Program Files(x86)StormII
10. Mssta.exe
11. 0
12. Ccfcdaa
13. Various integers
在傳遞給Loader.dll的字元串中,有三個是加密的。解密後的字元串如下:
1. [ChDz0PYP8/oOBfMO0A/0B6Y=] =」dns[dot]posthash[dot]org」
2. [6gkIBfkS+qY=] =」Default」
3. [EQr8/KY=] = 「mdzz」
Loader.dll
Loader.dll是一個具有一些有趣功能的RAT,例如搜索CPU寫入速度的能力,以及搜索系統中的防病毒軟體。
它由84.exe啟動,Loader.dll執行的第一件事是從84.exe中的「Update」獲取變數。此時,Loader.dll創建了幾個重要的運行時對象(runtime object):
l 名為Null的不可靠、無信號、自動重置事件,句柄:0×84。
l 用於執行操作DesktopInfo的函數的線程。
l 一個具有句柄0x8C和標記DF_ALLOWOTHERACCOUNTS的inputDesktop,它被設置為調用線程的Desktop。
然後,Loader.Dll會在SYSTEM/CurrentControlSet/Services/Dazsks Fsdgsdf中搜索系統中的「dazsksfsdgsdf」,用於確定這是否是第一次運行惡意軟體。
首次運行:
l Loader.dll會使用ImagePath = C:Program Files(x86)StormIImssta.exe來創建服務DazsksFsdgsdf。
l Loader.dll會嘗試運行新創建的服務。如果嘗試成功,則繼續主循環。如果不成功,則退出。
接下來,Loader.Dll將進行以下操作:
l 使用參數DazsksFsdgsdf啟動services.exe服務。
l 繼續第一次運行中提到的主循環。
在檢查了循環序號之後,Loader.dll將進入程序的主循環。
主循環:
l 創建一個名為「ccfcdaa」的不可靠、自動重置、無信號的事件,句柄為0x8C。
l 解密ChDz0PYP8/oOBfMO0A/0B6Y=to 『dns[dot]posthash[dot]org』。
l 啟動WinSock對象。
l 使用句柄0×90創建名為null的不可繼承、無信號、手動重置事件對象。
l 彙編 Get 請求:「Get/?ocid = iefvrt HTTP/1.1」。
l 連接到dns[dot]posthash[dot]org:5200。
l 使用GetVersionEx獲取有關操作系統的信息。
l 載入ntdll.dll並調用RtlGetVersionNumbers。
l 將SystemCurrentControlSetServices(null)保存到註冊表。
l 獲取套接字名稱。
l 使用HardwareDescriptionSystemCentralProcessor取CPU刷新速度
l 調用GetVersion以獲取系統信息。
l 調用GlobalMemoryStatusEx以獲取可用全局內存的狀態。
l 使用GetDriveTypeA枚舉從「A:/」開始的所有可用磁碟驅動器。
l 獲取每個枚舉驅動器上可用的總可用空間量。
l 初始化COM庫。
l 使用marktime函數將當前時間追加到服務「dazsksfsdgsdf」。
l 獲取在WOW64下運行的系統的系統信息。
l 使用大多數中文防病毒軟體文件名和CreateToolHelp32Snapshot列表,創建正在運行的進程的快照,然後識別任何正在運行的防病毒程序。
l 解密EQr8/KY= to「mdzz」。
l 將上面獲得的所有數據發送到在dns[dot]posthash[dot]org:5200中的C2伺服器。
緩解措施
想要減輕ZombieBoy攻擊所帶來的影響的最佳方法是一如既往地避免被攻擊,這就是為什麼我建議你將系統更新到最新版本的原因。具體來說,MS17-010補丁將有助於阻斷惡意軟體的傳播。
如果你被不幸被ZombieBoy感染了,那麼你應該做的第一件事就是深呼吸幾次。接下來,我建議使用你使用防病毒軟體掃描你的系統。
在掃描完成之後,你應該找出並終止ZombieBoy當前正在運行的任何已知的進程,例如:
l 123.exe
l 64.exe
l 74.exe
l 84.exe
l CPUinfo.exe
l N.exe
l S.exe
l Svchost.exe (注意文件的位置。任何不來自C:WindowsSystem32的Svchost.exe進程都應被終止)。
此外,刪除以下註冊表項:
l SYSTEM/CurrentControlSet/Services/Dazsks Fsdgsdf
l SYSTEM/CURRENTCONTROLSET/SERVICES/ANqiki cmsuuc
同樣的,刪除所有被惡意軟體釋放的文件,例如:
l C:\%WindowsDirectory%sys.exe
l C:windows\%system%oy.exe
l C:windowsIIScpuinfo.exe
l 在IIS中釋放的70多個文件
l C:Program Files(x86)svchost.exe
l C:Program FilesAppPatchmysqld.dll
l C:Program Files(x86)StormIImssta.exe
l C:Program Files(x86)StormII*
IOCs


※頭條:索尼IPELA E網路攝像機存可遠程利用漏洞
※頭條:西甲Android手機應用啟用「間諜」功能
TAG:聚鋒實驗室 |