客服熱線
186-8811-5347、186-7086-0265
官方郵箱
contactus@mingting.cn
添加微信
立即線上溝通
客服微信
詳情請咨詢客服
客服熱線
186-8811-5347、186-7086-0265
官方郵箱
contactus@mingting.cn
2020-07-22 來源:安全豹作者:HR
近期金山毒霸安全實驗室監控到金融木馬EVILNUM新變種。樣本攜帶的誘餌PDF由英國能源公司first-utility的PDF賬單、銀行卡、駕照圖片組成,如下圖所示。通過誘餌文件內容進行關聯,發現此批樣本創建時間均為2018-02-13 07:29:00,出現時間集中在2020年4月至今,早期版本攻擊類型LNK+JSRAT方式,從5月開始出現LNK+JS+PE+PYTHONRAT的攻擊方式。通過對其JSLoader關聯分析,確定其為EVILNUM新變種。

根據情報,EVILNUM最早可以追溯到2018年。其顯著特征是使用LNK文件進行攻擊,末端載荷多采用腳本實現,通過JS+外部工具的方式竊取情報,其腳本可能會加載多家惡意軟件即服務(MaaS)提供商的后門程序以及c#惡意組件,過去其攻擊流程中的C2均采用云盤、社交網站、圖床一類的網站作為信息存儲,此次捕獲的樣本采用了一些比較有迷惑性的域名,如CRM、VOIP等服務類關鍵字域名進行偽裝。
樣本通過魚叉式電子郵件發送,其中包含指向云盤上托管的ZIP文件的鏈接,壓縮文件內包含LNK攻擊文件,其誘餌文件為金融機構開設新帳戶時需要提供的截圖文件。
Evilnum集團的主要目標是金融技術公司,監視并竊取目標公司及其客戶的財務信息。重點竊取金融文檔和憑據:
該樣本目前更新活躍,其Loader和攻擊載荷也在不斷迭代,行文分析樣本為7月最新。樣本偽裝成PDF圖標,實則為快捷方式LNK文件,運行后通過解析LNK自身攜帶的數據,釋放出賬單PDF并打開以迷惑用戶,同時釋放出偽裝成java程序的ddpp.exe并創建計劃任務,待計劃任務啟動ddpp.exe后樣本通過對自身攜帶的部分數據進行解密執行后與crm-domain.net通訊,通過云控手段獲取下一步操作,現階段取得得數據經過解密執行后釋放出fplayer.exe該文件偽裝成NVDIA驅動相關程序,通過計劃任務持久化,fplayer.exe經過多次解密最終與云端通訊,現階段獲取得數據經過解密后其行為為內存加載exe操作,其加載程序為py2exe打包得python程序,通過對該程序解包、反混淆、反編譯,最終得到其python源碼為遠控程序。

木馬文件落地部分攻擊流程如上圖所示,木馬實際為偽裝成PDF的LNK文件,攻擊流程采用多段式加載,多種對抗,包含多個云控接口,可根據云控靈活配置升級,行文將通過四部分進行敘述。
C:\Windows\System32\cmd.exe /c path=%windir%\system32&move "VerificationDocuments.pdf.lnk" "%tmp%\1.lnk"&type "%tmp%\1.lnk"|find "END2">"%tmp%\0.js"&wscript "%tmp%\0.js"?
LNK啟動后將自身移動到temp目錄下1.lnk,此后通過標記"END2"提取出附加的JS腳本并執行。JS腳本運行后,獲取APPDATA路徑,拼湊釋放路徑,如圖1。
圖1
從1.LNK讀取偏移2505-684612位置的PDF文件釋放,并運行,以達到偽裝效果。如圖2。

圖2
將自身拷貝到%appdata%\Microsoft\Credentials\MediaPlayer\VideoManager\media.js再次運行,通過判斷腳本所在目錄決定是否釋放PE,條件滿足則讀取1.lnk偏移687117-262144之間的數據釋放PE文件。并為其創建計劃任務。如圖3。

圖3
釋放PE后,腳本對LNK、JS、相關工作目錄進行自刪除,至此JS執行完畢,LNK階段工作執行完畢。
ddpp.exe在當前執行階段起升級部署作用,在分析時云控代碼執行的行為為部署fplayer.exe,其內部代碼經過充分偽裝,靜態查看與JAVA進程非常接近,內部API調用采用底層調用方式,對抗API斷點,長時間Sleep對抗沙箱行為檢測。
ddpp啟動后讀取自身偏移0x9526處的數據,進行解密,解密后數據如圖4。

圖4
由于其解密方式與下文fplayer.exe中代碼解密方式一致,限于篇幅,故此處暫略過解密過程,下文敘述其解密規則。解密完成后將代碼按照其配置分段拷貝到堆空間指定位置處,之后對地址進行重定位,計算API地址填充修復,最終創建線程執行解密后的代碼。如圖5。

圖5
代碼執行后,獲取命令行參數,根據參數構建通訊GET請求。通過GET方式獲取云控數據。如圖6。

圖6
通過加載云控邏輯,釋放fplayer.exe到%appdata%\Microsoft\Media Player\Player\下,該程序與ddpp.exe類似偽裝成英偉達驅動相關程序,其實際工作內容仍然靠云控下發。圖7為文件釋放并為其創建計劃任務啟動。

圖7
至此ddpp.exe云控代碼執行完成后退出,fplayer最終承載了工作任務的加載,ddpp現階段云控下發功能只是部署升級,整體流程如圖8。

圖8
fplayer.exe與ddpp.exe有諸多相似之處,上文未提及配置信息數據結構,將在此節敘述。相比ddpp,fplayer請求接口有變更,參數更少。其作用為整個攻擊鏈條的末端載體。fplayer啟動后讀取自身0x9b偏移處信息,解密并將其按配置向堆空間中部署,如圖9。

圖9
其配置頭部結構如下:
struct EncryptInfo
{
byte xorKeyLength;
char keyTable[xorKeyLength];
DWORD dataSize;
char dataBegin[dataSize];
}其后續代碼根據key表對data進行循環異或解密數據,程序中字符串相關解密操作也遵循此方式。數據起始位置記錄著相關代碼和函數信息,結構如下:

struct DataInfo
{
byte unKnown;
DWORD codeImageBase;
DWORD unKnown1;
DWORD codeEpOffset;
DWORD codeTableCount;
DWORD codeInfoOffset1;
DWORD codeInfoOffset2;
...
}轉到codeInfo結構,其配置對應的是需要內存執行的代碼信息。如下圖,結構如下:

struct CodeInfo
{
byte index;
DWORD codeCopyOffset
DWORD codeSize;
DWORD unKnown;
char codeBegin[codeSize];
}與ddpp類似在堆中指定位置部署好代碼之后,創建線程執行堆代碼。相似過程不在贅述。以上配置結構適用于云端下發配置信息結構。堆空間代碼執行后,獲取命令行參數,構建GET請求,獲取最新云端指令。如圖10。

圖10
通過解析云端配置,最終加載內存PE,如圖11。該PE為py2exe打包的python程序,其字節碼進行了混淆,對抗反編譯,通過反混淆,最終獲得其攜帶腳本,下文將對py2exe程序展開分析。

圖11
通過dump內存獲取其原始加載程序,經過分析其為py2exe打包的python程序,通過對其資源處理獲取被打包的pyc腳本,經過反混淆處理后,反編譯后如圖12。

圖12
腳本通過zlib和base64處理后進一步執行,通過進一步分析,此處為一python包裝器,其核心功能為解析自身壓縮數據,最終通過memimporter將main.pyc和其他依賴庫加載在內存中執行。如圖13、14。

圖13

圖14
至此到達核心工作流程,通過對memimporter相關數據反混淆、反編譯,最終確定其核心流程為遠控木馬,木馬與以下地址通訊,獲取指令執行。如圖15。

圖15
木馬采用http協議通訊,具有截屏、命令執行、反向SSH Shell、進程操作、文件操作、注冊表操作等功能。圖16為遠控簡要工作流程。

圖16
下表為遠控包含的部分工具類函數表,通過函數名稱,不難看出,遠控功能豐富,擴展性極強,擁有多種持久化方式和多種命令控制方式。

此EVILNUM變種木馬,攻擊流程采用多段式加載,多層次內存裝載PE,包含多個云控接口,通過休眠、混淆、云端指令隨機化等對抗分析查殺,作者精心構造了多個loader,甚至最終內存加載的py2exe啟動后仍然還是內存加載pyc執行,可謂是煞費苦心,分析過程中木馬成活躍狀態,不斷有新的C2加入,截止報告完成時間,有多個C2地址注冊時間未超過一個月。其最終攻擊載荷使用python開發,開發成本低,還會在一定程度上干擾溯源準確性,從反編譯結果觀察,部分功能尚未完善,仍在加入新功能。金山毒霸安全實驗室提醒用戶,不要點擊來歷不明的郵件、壓縮包,從而可以降低用戶隱私信息被盜取的風險。金山毒霸可以查殺此木馬,當殺毒軟件報毒時,切勿輕易點擊放行,若懷疑誤報,可向殺軟工作人員核實后再運行。

FC00819C4CDC8609313041CF345A7DCA
F7673B6855C72B780FDD863D098DA693
07717219943E911AC4CFB8E485A99CFB
ECDD7454EAE355012DFED03377D6D945
hxxp://crm-domain[.]net
hxxp://leads-management[.]net
hxxp://telecomwl[.]com
hxxp://voipasst[.]com
https://blog.prevailion.com/2020/05/phantom-in-command-shell5.html
https://www.welivesecurity.com/2020/07/09/more-evil-deep-look-evilnum-toolset/