【安全研究】關於explorer一鍵挖礦病毒的分析研究

【安全研究】關於explorer一鍵挖礦病毒的分析研究

近期我們的海青安全研究實驗室捕獲了一個新的挖礦木馬樣本,目前網路上還未見到關於它的分析。與以往的木馬相比,這次捕獲的樣本有了不小的「進化」:手段更加隱蔽,清除更加困難。我們對它的各項特點進行了分析,希望給行業內帶來針對此類木馬的新的認識,進而發掘更有效的防護措施。

一、木馬簡介

業務環境:powershellv3及以上版本(v1/v2未測試)

二、木馬特點1. 純powershell編寫挖礦前置腳本,不是像以前那種使用批處理等簡單挖礦了,使用一系列持久化機制,保證自身挖礦功能;

2. 探測防火牆,探測虛擬機,探測反木馬軟體,進行對應的行為;

3. 修改防火牆及反木馬軟體配置及策略,避免一些防護軟體掃描,以及防火牆將挖礦鏈接阻斷;

4. 緩存認證密碼,可選增加用戶等機制;

5. 使用代理中轉連接,每個肉雞都是代理伺服器,增加了追蹤溯源難度;

6. 使用更新維護機制,若不清除乾淨,會常常複發;

7. 系統隱藏目錄存放文件,且很難清除;

8. 清除競爭對手,保證自己利益最大化;

9. 使用涉及各方面技術較多。

執行流程

對應文件功能

網路代理方式

三、Powershell木馬代碼審計

木馬powershell腳本開頭定義了參數集,默認使用參數集Setup

給腳本基本變數賦值,腳本名、腳本路徑、服務名等。

輸出木馬版本為2017-12-10

自定義函數

$argv0 = Get-Item $MyInvocation.MyCommand.Definition //獲取當前運行目錄

根據啟動參數執行對應命令

首先默認執行的是setup

1、獲取系統類型架構

2、比較安裝目錄與執行目錄腳本時間差,判斷是否更新服務

3、創建服務運行機制

$source變數保存的是服務主函數,之後會將$source變數中的源代碼編譯成二進位程序

編譯位二進位程序cspsvc.exe(程序名隨編譯的腳本名改變而改變)。

其功能是註冊服務,註冊服務後cspsvc.exe作用是帶參數-SCMStart啟動cspsvc.ps1腳本後,-SCMStart啟動功能是重新以管理員許可權運行cspsvc.ps1腳本

4 、配置服務運行賬戶,默認為LocalSystem。

5、嘗試從c:windowsfontsarialconfig.xml配置文件中讀取配置,若配置文件不存在,嘗試從c:windowsSoftwareDistributionconfig.xml複製過來,若都不存在,則使用下列地址配置挖礦賬戶和礦池。

初始化探測反木馬軟體、探測防火牆等配置

如果有域,則使用域後門機制

6、本地後門文件隱藏

如果不存在文件

c:windowsSoftwareDistributionconfig.xml、C:Windowsfontsarialconfig.xml,

不存在隱藏文件夾

C:Windowsfontsarial

則創建文件夾

C:Windowsfontsarial

7、設置讀取礦機WEBUI內配置信息解析格式,以供後續使用

8、修改計算機註冊表HKEY_LOCAL_MACHINESYSTEMSoftwareMicrosoftDriversPath

從上述第三個步驟開始進入另外一個進程分支,即服務模式運行,即-SCM參數啟動腳本

Service段代碼被加密,將代碼中的iex改為echo,解密後分析其執行代碼結構。

1、通過bios信息判斷機器是否是虛擬機,如果是,是哪種,不是則為物理機

2、排除掉自己的挖礦進程外,幹掉挖礦競爭對手,即帶有關鍵字xmr、miner、programdata
ew、programdatawin、programdataWindow、programdataWindows等進程。

3、判斷域名內是否帶有*csd*、*CSP*、*SERVER-BI*、環境變數$env:COMPUTERNAME、*WIN-IT9E5B2V9AE*、*IT9E5B*、*xzspn*、*dtlab*,

若有則測試127.0.0.1:5650tcp埠是否打開,如果沒有打開探測路徑

C:Program Files (x86)Remote Manipulator System - Host,如果有就刪除C:Program Files (x86)Remote Manipulator System - Host,然後下載185.48.59.45/uni/RMS.ex到C:ProgramDataRMS.exe,然後運行,接著更改防火牆配置;

如果IP為212.16.70.23然後下載185.48.59.45/uni/RMS.ex到C:ProgramDataRMS.exe,然後運行,接著更改防火牆配置;

4、請求dns,』msupdate.info』,若無響應則連接伺服器為$ms = "185.48.59.45"

5、刪除計劃任務

6、查找路徑

7、停止進程*JavaCu*

8、如果存在sc_nmap服務,則刪除$env:windirSystem32sc_snmp.ps1腳本和sc_nmap服務;查找進程路徑名為*sc_service*、*snmp_reciever*、進程路徑名為*sc_snmp.ps1*的進程並強行停止。

9、查看防火牆規則相關服務,並將其規則文件$env:windirSystem32firewall_rules.ps1和服務刪除firewall_rules

10、終止Windows更新進程命令行為:*windowsupdate.ps1*

11、如果存在sc_snmp或firewall_rules服務,獲取驅動路徑註冊表HKLM:SYSTEMSoftwareMicrosoftDriversPath中restart項,若無restart則新建鍵,其值為0;如果restart值為3則刪除restart鍵值。請求計劃任務*start service*,如果存在則刪除;創建計劃任務Start Service,一分鐘之後執行任務計劃,運行服務。

$data = (get-date).AddMinutes(1).ToString("HH:mm")

schtasks /create /TN "Start Service" /TR "net start cspsvc" /SC ONCE /V1 /Z /ru System /ST $data

12、如果不存在sc_snmp和firewall_rules服務,若存在任務計劃名如*start service*,將其刪除。如果不存在目錄$env:windirfontsarial,但存在$env:windirSoftwareDistributionconfig.xml,則將config.xml複製到$env:windirfontsarial。若都不存在,則在arial目錄新建config.xml,將礦機配置信息寫入

13、如果存在C:WindowsSoftwareDistributionwindows.log,獲取config.xml中AV變數,默認為1,則默認設定認為反木馬軟體不存在。添加防火牆排除項。

若設定手工設定為0,則認為反木馬軟體存在,若機器不是伺服器,判斷其防火牆類型是windows defender或System Center Endpoint Protection,接著添加掃描排除項。

針對部分域,做了特定的識別。

14、如果認定反木馬軟體不存在,設定礦機路徑為c:windowsfonts tf,常用路徑為c:windowsfontsarial,臨時路徑為c:windowsfonts emp。如果有域,則檢查域內後門是否存在\$domainsysvol$domainPolicies,接著設置註冊表,將WDigest身份認證緩存在內存。

15、fw默認設置為0,若手工設置為1,則設置地圖服務Mapsvc自動運行。

防火牆規則開啟3389,並且遠程連接地址添加"185.48.59.0/24,$ips.0.0.0/8"$ips為IP的A段。這樣就可以使所有處於內網地址的基本都可以連接。

16、Psw為賬戶選項,默認值為0,提供Psw參數為賬戶密碼,並提供了group參數,且如果是管理員則利用WINNT組件添加用戶

並添加為可登錄用戶

17、礦池伺服器80埠若是開啟,則開啟757埠代理轉發msupdate.info,並且703埠也代理轉發到伺服器185.48.59.50:80

757埠為代理礦池伺服器下載轉發埠,703埠為礦池連接進行挖礦流量轉發埠。

若無法連接互聯網,若為域則從域後門複製dll到$env:windirFontsarial,若域為*mi3g*,則連接代理埠192.168.10.99:14445,若能連接C2則設定該代理IP為代理伺服器。若存在文件api-ms-win-core-console-l2-2-0.dll,其內容為代理伺服器列表。

18、更新礦機

訪問msupdate.info/uni/MD5/e,獲取最新礦機、木馬ps1腳本MD5值,然後對比本地礦機、木馬ps1腳本MD5值決定是否更新,若有更新,則創建任務計劃」update」將文件下載到c:windowsfonts emp,然後覆蓋舊文件。

更新辦法:

19、根據硬體UUID,判斷硬體性能,選擇挖礦模式

20、測試連接礦池703埠,poolstemp.txt來源於pools.txt,根據配置和礦池連通性,從中選取一條配置,創建配置信息$GeneralPathconfig.json。

21、接著再釋放一段加密代碼,到c:windowssystem32driversen-USGpCheck.ps1,同上面方法,代碼中的iex改為echo,解密代碼,發現其作用是維護更新文件、埠轉發、防火牆策略、測試礦池連通性等。

22、寫入xml文件到c:windowsfont emp ask.xml,該文件作用是利用任務計劃創建gpcheck,調用gpcheck.ps1

23、釋放加密代碼到c:windowsSystem32driversWmiPrvSE.ps1,同上方法解密其代碼

首先使用wmi創建了挖礦進程 c:windowsFonts tfexplorer.exe

一旦發現分析工具,則中止挖礦進程

24、再次釋放了一個精簡版gpcheck.ps1,其主要功能不變但精簡了不少檢查。

從第23個步驟開始進入explorer挖礦分支,礦機會監聽999埠,通過本地訪問可以獲得礦機狀態信息。

賬戶adm,密碼14370

四、IOCS

URL

msupdate.info/uni/explo

msupdate.info/uni/explo

msupdate.info/uni/visua

msupdate.info/test.txt

msupdate.info/uni/MD5/e

msupdate.info/uni/MD5/e

msupdate.info/uni/MD5/e

msupdate.info/uni/MD5/e

File

C:WindowsFontsarial

C:WindowsFontsLogs

C:WindowsFonts emp

C:WindowsFonts tf

c:windowsSoftwareDistributionconfig.xml

c:windowssystem32driversen-USGpCheck.ps1

c:windowsSystem32driversWmiPrvSE.ps1

C:WindowsSystem32driversetcservices

C:WindowsSystem32driversetcprotocol

C:WindowsSystem32driversetc
etworks

C:WindowsSystem32driversetclmhosts.sam

C:WindowsSystem32driversetchosts

Domain/Ip

msupdate.info(185.48.59.45:80)

185.48.59.52:34444

185.48.59.51:24444

185.48.59.50:14444

wallet

47am2aMvQqCLnRBMqBzXfgfuUMKZhBY3SgY45xV6ikJWXDJ5NLtKq3DPGm1sqiuen1YCE1Ak6nwdg3sx8n6rXpWLF4mFpwq

4BEUrVUbd8h579R2b87uoGRjyDMTGirQaYazVdnLZuwCN2S8SNDzviCL8YDdsPoCKR5EfHWAYYK5xRU1JprZ2v8MP4siP87

42XyygMzMRjd6A2MvPVXMGbZ6PzNe7Sivd8ek3ySHBmg18dDCWRhCZ6RFxVZFFUvoyCDnwA5Y2tSeSCaZAEq4n6q6DD8pQK

追蹤:查詢礦池代理伺服器為俄羅斯IP,伺服器也是俄語操作系統

所有IP都屬同一個C段,相信這至少是一個長期的據點。

五、處置方案

1、進程清理

清理轉發規則:

Powershell運行以下命令

Start-Process PowerShell.exe -ArgumentList("-c &{netsh interface portproxy delete v4tov4 listenport=757;netsh interface portproxy delete v4tov4 listenport=703;pause}") -Verb runas

清理帶有System32driversWmiPrvSE.ps1文件路徑的進程(可能已經退出)

2、註冊表清理

病毒配置:HKEY_LOCAL_MACHINESYSTEMSoftwareMicrosoftDriversPath

防火牆配置清除

檢查防火牆配置

HKLM:SOFTWAREPoliciesMicrosoftWindows DefenderExclusions

將防火牆策略配置修改為正常狀態

修改

HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigestUseLogonCredential 為0

為0

3、文件清理

刪除目錄及文件C:WindowsFontsarial

C:WindowsFontsLogs

C:WindowsFonts emp

C:WindowsFonts tf

c:windowsSoftwareDistributionconfig.xml

c:windowssystem32driversen-USGpCheck.ps1

c:windowsSystem32driversWmiPrvSE.ps1

C:WindowsSystem32driversetcservices

C:WindowsSystem32driversetcprotocol

C:WindowsSystem32driversetc
etworks

C:WindowsSystem32driversetclmhosts.sam

C:WindowsSystem32driversetchosts

若為域則要清除\$domainsysvol$domainPolicies及其子目錄下的explorer.exe

正常情況下文件資源管理器是看不到logs目錄的,而且顯示了隱藏文件夾(win10和winserver2008下)也看不到,但可以在cmd或者powershell可以探測到

使用PCHUNTER強行刪除,或者進入安全模式下刪除,或者使用強力的殺毒軟體對指定目錄進行清除。

4、服務清理

服務名cspsvc,顯示名為Cryptographic Service Providers。

5、任務計劃清理

任務計劃GpCheck

6、批量排查

Nmap批量掃描999埠

賬戶adm,密碼14370

7.主機病毒木馬檢測


推薦閱讀:

需要去小行星挖礦嗎?地球內部就有超過一萬億噸鑽石,只不過……
管中窺豹,從ofo綠色挖礦看GSE共享生態大布局
NIMIQ - 幣圈冉冉升起的新星
可以瓜分1000萬的糖果了
礦工該不該去VICTEX?

TAG:挖礦 | 網路安全 |