Evilnum惡意組織使用新的基于Python的木馬攻擊金融公司
在過(guò)去的幾個(gè)月中,Cybereason Nocturnus團(tuán)隊(duì)一直在調(diào)查了Evilnum惡意組織發(fā)起的攻擊活動(dòng)。該組織最初成立于2018年,針對(duì)英國(guó)和歐盟范圍內(nèi)的公司的幾次攻擊活動(dòng)都與這個(gè)組織有關(guān)。目前,Evilnum開(kāi)發(fā)的惡意工具采用了許多新的技術(shù),根據(jù)最近的研究分析,這些惡意軟件攻擊活動(dòng)涉及使用JavaScript和C#編寫(xiě)的后門程序,以及通過(guò)從惡意軟件服務(wù)提供商Golden Chickens購(gòu)買的工具。
與常見(jiàn)的網(wǎng)絡(luò)釣魚(yú)操作不同,該組織的業(yè)務(wù)目標(biāo)似乎很高,主要針對(duì)金融科技市場(chǎng),濫用“了解你的客戶規(guī)則”(KYC),即客戶在開(kāi)展業(yè)務(wù)時(shí)提供的信息文件。自首次發(fā)現(xiàn)以來(lái),該組織主要針對(duì)英國(guó)和歐盟各地的不同公司。
最近幾周,Nocturnus團(tuán)隊(duì)觀察到Evilnum惡意組織有了新的活動(dòng),包括一些與之前觀察到的攻擊有明顯改進(jìn)的技術(shù)。這些變化包括感染鏈和持久性的改變,隨著時(shí)間的推移正在擴(kuò)展的新基礎(chǔ)設(shè)施,以及使用新的Python腳本遠(yuǎn)程訪問(wèn)木馬(RAT)來(lái)監(jiān)控其受感染的目標(biāo)。
PyVil RAT具有不同的功能,攻擊者能夠竊取數(shù)據(jù)、執(zhí)行鍵盤記錄和截取屏幕截圖,以及部署更多的工具(如LaZagne)以竊取憑證。在本文中,我們將深入探討Evilnum組織的最新活動(dòng),并探索其新的感染鏈和工具。目前可以確定,攻擊者將攻擊目標(biāo)重點(diǎn)對(duì)準(zhǔn)的是金融部門。經(jīng)過(guò)追蹤分析,Evilnum最新開(kāi)發(fā)的工具中具備了許多新的攻擊技巧,其中包括:
1.嘗試使用合法可執(zhí)行文件的修改版本,以使安全工具無(wú)法檢測(cè)到;
2.感染鏈從具有后門功能的JavaScript木馬轉(zhuǎn)移到有效載荷的多進(jìn)程傳遞過(guò)程;
3.新發(fā)現(xiàn)的Python腳本RAT稱為PyVil RAT,它是使用py2exe編譯的,該py2exe能夠下載新模塊以擴(kuò)展功能;
據(jù)報(bào)道,Evilnum組織主要針對(duì)英國(guó)和其他歐盟國(guó)家的金融技術(shù)公司。該組織的主要目標(biāo)是監(jiān)控被感染的目標(biāo)并竊取諸如密碼、文檔、瀏覽器cookie、電子郵件憑據(jù)等信息。
正如過(guò)去所報(bào)道的那樣,除了該組織自己的專有工具外,還觀察到Evilnum在某些情況下會(huì)部署Golden Chickens工具。 Golden Chickens是一種惡意軟件即服務(wù)(MaaS)提供商,已被FIN6和Cobalt Group等組織使用。 Evilnum組使用的工具包括More_eggs,TerraPreter,TerraStealer和TerraTV。
Evilnum組織的攻擊活動(dòng)于2018年首次被發(fā)現(xiàn),當(dāng)時(shí)他們使用了臭名昭著的JavaScript Trojan的第一版。該腳本通過(guò)查詢?yōu)榇四康膭?chuàng)建的特定頁(yè)面,從GitHub,DigitalPoint和Reddit等站點(diǎn)提取C2地址。這種技術(shù)使攻擊者能夠輕松地更改已部署代理的C2地址,同時(shí)在向合法的已知站點(diǎn)發(fā)出請(qǐng)求時(shí)保持通信屏蔽。
從2018年首次被發(fā)現(xiàn)到現(xiàn)在,該組織在不同的攻擊中被多次提及,每次都使用新功能升級(jí)其工具集,并向該組織的武器庫(kù)中添加新工具。
Evilnum的初始感染媒介通常以魚(yú)叉式網(wǎng)絡(luò)釣魚(yú)電子郵件開(kāi)頭,目標(biāo)是提供包含LNK文件的ZIP壓縮文件,這些LNK文件偽裝成不同文件的照片,例如駕駛執(zhí)照,信用卡和水電費(fèi)。不過(guò)這些文件很可能被盜,屬于真實(shí)個(gè)人。
一旦LNK文件被打開(kāi),它就會(huì)部署JavaScript木馬,它會(huì)用一個(gè)真實(shí)的圖像文件代替LNK文件,從而使整個(gè)操作對(duì)用戶不可見(jiàn)。
到目前為止,如本文所述,已經(jīng)觀察到JavaScript木馬的六種不同迭代版本,每一種都有一些小的變化,但不會(huì)改變核心功能。JavaScript代理具有上傳和下載文件、竊取cookie、收集防病毒信息、執(zhí)行命令等功能。
如上所述,除JavaScript組件外,還觀察到該組織正在部署C#木馬,該木馬具有與以前的JavaScript組件類似的功能。
以前的感染鏈
新的感染鏈
過(guò)去,Evilnum的感染鏈?zhǔn)加隰~(yú)叉式網(wǎng)絡(luò)釣魚(yú)電子郵件,提供包含偽裝成圖像的LNK文件的zip壓縮文件,這些LNK文件將刪除具有上述后門功能的JavaScript木馬。
近幾周來(lái),我們觀察到了這種感染程序的變化:首先,沒(méi)有將四個(gè)不同的LNK文件提供到zip壓縮文件中,而該zip壓縮文件又將由JPG文件替換,僅壓縮文件了一個(gè)文件。該LNK文件偽裝為PDF,其內(nèi)容包括幾個(gè)文檔,例如水電費(fèi)賬單,信用卡照片和駕駛執(zhí)照照片:
ZIP中的LNK文件
與以前的版本一樣,執(zhí)行LNK文件時(shí),會(huì)將JavaScript文件寫(xiě)入磁盤并執(zhí)行,將LNK文件替換為PDF:
PDF中的示例KYC文檔
與擁有一系列功能的先前版本不同,此版本的JavaScript主要充當(dāng)一個(gè)下載程序,并且缺少任何C2通信功能。該JavaScript是此新感染鏈中的第一階段,并最終傳播有效載荷,該載荷是用py2exe編譯的Python編寫(xiě)的RAT,Nocturnus研究人員將其稱為PyVil RAT:

初始感染過(guò)程樹(shù)
在Cybereason中,我們能夠查看進(jìn)程樹(shù)以及從LNK文件中提取JavaScript:

Cybereason中的初始感染過(guò)程樹(shù)
通過(guò)將包含字符串“END2”(在腳本中注釋)的所有行輸出到temp文件夾中名為“0.js”的文件中,并將LNK復(fù)制為temp文件夾作為“1.lnk”來(lái)提取JavaScript:

提取嵌入式JS腳本
JavaScript文件使用與以前版本相似的路徑刪除二進(jìn)制文件(“%localappdata%\\ Microsoft \\ Credentials \\ MediaPlayer \\”):

JS文件中的片段
在腳本將LNK文件替換為真實(shí)的PDF之后,JS文件將復(fù)制到“%localappdata%\ Microsoft \ Credentials \ MediaPlayer \ VideoManager \ media.js”,然后再次執(zhí)行。
在此腳本的第二次執(zhí)行中,將提取嵌入在LNK文件內(nèi)部的名為“ddpp.exe”的可執(zhí)行文件,并將其保存到“%localappdata%\ Microsoft \ Credentials \ MediaPlayer \ ddpp.exe”。
與以前版本的惡意軟件使用“運(yùn)行”注冊(cè)表項(xiàng)保持持久性不同,在此新版本中,將為ddpp.exe創(chuàng)建一個(gè)名為 “Dolby Selector Task”的計(jì)劃任務(wù):

ddpp.exe計(jì)劃任務(wù)
有了這個(gè)計(jì)劃的任務(wù),檢索有效載荷的第二階段就可以開(kāi)始了:

下載程序進(jìn)程樹(shù)
在Cybereason中,我們看到有效載荷嘗試進(jìn)行的憑證轉(zhuǎn)儲(chǔ):

Cybereason中的下載程序處理樹(shù)
DDPP.EXE: TOJANZED程序
ddpp.exe可執(zhí)行文件似乎是經(jīng)過(guò)修改以執(zhí)行惡意代碼的“Java(™)Web Start Launcher”版本:
ddpp.exe圖標(biāo)
將惡意軟件可執(zhí)行文件與原始Oracle可執(zhí)行文件進(jìn)行比較時(shí),我們可以看到文件之間的相似元數(shù)據(jù)。乍一看,主要區(qū)別在于原始Oracle可執(zhí)行文件已簽名,而惡意軟件未簽名:
ddpp.exe的文件屬性
原始javaws.exe文件屬性
根據(jù)Intezer引擎,在惡意軟件可執(zhí)行文件和合法的Oracle公司文件之間存在大量共享代碼:

ddpp.exe代碼在Intezer中的重用示例
DDPP.EXE功能
ddpp.exe可執(zhí)行文件充當(dāng)感染下一階段的下載程序。
它由計(jì)劃任務(wù)使用三個(gè)參數(shù)執(zhí)行:
1.受感染設(shè)備的編碼UUID;
2.已安裝的防病毒產(chǎn)品的編碼列表;
3.數(shù)字0;

ddpp.exe計(jì)劃任務(wù)參數(shù)
執(zhí)行ddpp.exe時(shí),它將解壓縮shellcode:

ddpp.exe將執(zhí)行命令傳遞給shellcode
Shellocode使用GET請(qǐng)求連接到C2,并在URI中發(fā)送接收到的上述三個(gè)參數(shù)。反過(guò)來(lái),惡意軟件又接收另一個(gè)加密的可執(zhí)行文件,該文件以“fplayer.exe”的形式保存在磁盤上,并使用新的計(jì)劃任務(wù)執(zhí)行:

通過(guò)HTTP的ddpp.exe C2通信
FPLAYER.EXE
fplayer.exe充當(dāng)另一個(gè)下載程序,然后,已下載的有效載荷由fplayer.exe加載到內(nèi)存中,并用作無(wú)文件RAT。該文件保存在“%localappdata%\ microsoft \ media Player \ player \ fplayer.exe”中,并與名為“Adobe Update Task” 的調(diào)度任務(wù)一起執(zhí)行:

fplayer.exe計(jì)劃任務(wù)
Fplayer.exe也通過(guò)幾個(gè)參數(shù)執(zhí)行:
1.受感染設(shè)備的編碼UUID;
2.PyVil RAT稍后將使用三個(gè)參數(shù):
“ -m”:計(jì)劃任務(wù)的名稱
“ -f”:告訴PyVil RAT解析其余參數(shù)
“ -t”:更新計(jì)劃任務(wù)

fplayer.exe計(jì)劃的任務(wù)參數(shù)
與ddpp.exe相似,fplayer.exe似乎是“Stereoscopic 3D driver Installer”的修改版本:
fplayer.exe圖標(biāo)
同樣在這里,我們可以看到文件之間的相似元數(shù)據(jù),不同之處在于原始Nvidia可執(zhí)行文件已簽名,而惡意軟件未簽名:
fplayer.exe的文件屬性
原始nvStinst.exe文件屬性
同樣,根據(jù)Intezer引擎,這一次與Nvidia Corporation的代碼相似度很高:

Intezer中的fplayer.exe代碼重用
當(dāng)執(zhí)行fplayer.exe時(shí),它還會(huì)解壓縮shellcode:

fplayer.exe將執(zhí)行傳遞給shellcode
Shellcode使用GET請(qǐng)求連接到C2,這一次僅在URI中發(fā)送已編碼的UUID。觀察到fplayer.exe接收到另一個(gè)加密的可執(zhí)行文件,該文件另存為“%localappdata%\ Microsoft \ Media Player \ Player \ devAHJE.tmp”:

fplayer.exe C2通信
進(jìn)程解密接收到的可執(zhí)行文件,并將其映射到內(nèi)存,然后將其傳遞給執(zhí)行程序。
解密后的文件是已編譯的py2exe可執(zhí)行文件,py2exe是一個(gè)Python擴(kuò)展,它將Python腳本轉(zhuǎn)換為Microsoft Windows可執(zhí)行文件。
PYVIL:新的PYTHON RAT
為了防止使用現(xiàn)有工具反編譯有效載荷,py2exe內(nèi)的Python代碼會(huì)增加額外的層。使用內(nèi)存轉(zhuǎn)儲(chǔ),我們能夠提取Python代碼的第一層。第一部分代碼對(duì)第二層Python代碼進(jìn)行解碼和解壓縮:

去混淆代碼的第一層
Python代碼的第二層對(duì)主要RAT和導(dǎo)入的庫(kù)進(jìn)行解碼并將其加載到內(nèi)存中:

第二層代碼段:提取Python庫(kù)
PyVil RAT具有以下功能:
1.鍵盤記錄器;
2.運(yùn)行cmd命令;
3.截屏;
4.下載更多Python腳本以獲得其他功能
5.刪除和上傳可執(zhí)行文件
6.打開(kāi)SSH shell;
7.收集信息,例如:
7.1已安裝防病毒產(chǎn)品
7.2已連接USB設(shè)備
7.3Chrome版本
PyVil RAT的Global變量可以清楚地了解惡意軟件的功能:

顯示PyVil RAT功能的全局變量
PyVil RAT具有一個(gè)配置模塊,其中包含與C2通信時(shí)使用的惡意軟件版本、C2域和用戶代理:
配置模塊
PyVil RAT的C2通信是通過(guò)POST HTTP請(qǐng)求完成的,并使用以base64編碼的硬編碼密鑰對(duì)RC4進(jìn)行了加密:

RC4秘鑰

數(shù)據(jù)從受感染設(shè)備被發(fā)送到C2
此加密數(shù)據(jù)包含從設(shè)備和配置收集的不同數(shù)據(jù)的Json:

發(fā)送到C2的一個(gè)解密JSON

C2通信中使用的字段
在對(duì)PyVil RAT進(jìn)行分析的過(guò)程中,惡意軟件多次從C2接收到要執(zhí)行的新Python模塊。這個(gè)Python模塊是Evilnum組過(guò)去使用的LaZagne Project的自定義版本。該腳本將嘗試轉(zhuǎn)儲(chǔ)密碼并收集cookie信息以發(fā)送到C2:

解密發(fā)送到C2的LaZagne輸出
基礎(chǔ)設(shè)施功能的擴(kuò)展
在該組織的先前活動(dòng)中,Evilnum的工具避免使用域與C2進(jìn)行通信,而僅使用IP地址。最近幾周,隨著Evilnum不斷改進(jìn)的基礎(chǔ)架構(gòu),研究者又發(fā)現(xiàn)了一個(gè)有趣的攻擊趨勢(shì)。
通過(guò)跟蹤Evilnum在過(guò)去幾周中建立的新基礎(chǔ)架構(gòu),可以看到擴(kuò)展的趨勢(shì)。盡管C2 IP地址每隔幾周更改一次,但與此IP地址關(guān)聯(lián)的域列表卻在不斷增長(zhǎng)。幾周前,與惡意軟件關(guān)聯(lián)的三個(gè)域被解析為相同的IP地址:

此后不久,所有三個(gè)域的C2 IP地址都更改了。此外,三個(gè)新域使用相同的IP地址注冊(cè),并被惡意軟件使用:

幾周后,這種變化再次發(fā)生。所有域的解析地址在幾天之內(nèi)發(fā)生了變化,并增加了三個(gè)新域:

Evilnum的基礎(chǔ)架構(gòu)
總結(jié)
在本文中,我們檢查到了Evilnum組織的新感染鏈已經(jīng)投入到實(shí)際工作中,從2018年開(kāi)始,加入了一種新的基于Python的遠(yuǎn)程訪問(wèn)特洛伊木馬(RAT),該木馬可以竊取密碼、文檔、瀏覽器cookie、電子郵件憑據(jù)和其他敏感信息,且以金融科技行業(yè)為目標(biāo)。
除了使用帶有假冒的魚(yú)叉式網(wǎng)絡(luò)釣魚(yú)電子郵件(KYC)來(lái)誘騙金融業(yè)員工觸發(fā)惡意軟件外,攻擊還從使用具有后門功能的基于JavaScript的特洛伊木馬轉(zhuǎn)移到了能夠提供隱藏在合法可執(zhí)行文件的修改版本中的惡意有效載荷,旨在逃避檢測(cè)。
最近幾周,研究人員發(fā)現(xiàn)該組織的感染程序發(fā)生了重大變化,不再使用JavaScript后門功能,而是將其用作下載新攻擊工具的一種手段。多進(jìn)程傳遞過(guò)程(“ ddpp.exe”)在執(zhí)行時(shí),解壓縮shellcode以便與攻擊者控制的服務(wù)器建立通信,并接收第二個(gè)加密的可執(zhí)行文件(“ fplayer.exe”),該文件用作下一階段的下載程序以進(jìn)行提取Python RAT。在該小組的先前活動(dòng)中,Evilnum的工具避免使用域與C2進(jìn)行通信,而僅使用IP地址。雖然C2 IP地址每隔幾周更改一次,但與此IP地址關(guān)聯(lián)的域列表卻在不斷增長(zhǎng)。
該組織部署了一種新型的Python RAT,Nocturnus的研究人員將其稱為PyVil RAT,它具有收集信息、獲取屏幕截圖、鍵盤記錄數(shù)據(jù),打開(kāi)SSH Shell和部署新工具的能力。這些工具可以是Python模塊(例如LaZagne)或可執(zhí)行文件,因此可以根據(jù)需要添加更多功能來(lái)進(jìn)行攻擊,這種策略和工具上的創(chuàng)新使該組織得以瘋狂發(fā)起攻擊。
MITRE ATT&CK BREAKDOWN

本文翻譯自:https://www.cybereason.com/blog/no-rest-for-the-wicked-evilnum-unleashes-pyvil-rat如若轉(zhuǎn)載,請(qǐng)注明原文地址。