受影響的平台:Microsoft Windows;受影響方:Windows用戶;影響:從受害者的電腦中收集敏感信息;嚴重性級別:嚴重;FortiGuard實驗室捕捉到了一個網絡釣魚活動,該活動傳播了一種新的AgentTesla變體。這個著名的惡意軟件家族使用基於.Net的遠程訪問木馬(RAT)和數據竊取程序來獲得初始訪問權限,它通常用於軟件即服務(MaaS)。
AgentTesla源於2014年的一款鍵盤記錄產品,演變至今,儼然成為了黑客專門用來竊密的工具軟件。經過不斷迭代,AgentTesla覆蓋面越來越廣,功能也越來越強。
AgentTesla變體攻擊了瀏覽器、FTP、VPN、郵箱、通訊軟件、下載工具、數據庫等。反分析功能上又增加了反沙箱、反虛擬機以及反windows defender的相關功能,同時誘餌文件使用了多層或分批解密,大大增加了分析難度。
AgentTesla是一種“MAAS”(malware-as-a-service)惡意程序,在過去的7年間,一直保持著較高的活躍度。近兩年,國內也出現了多起使用AgentTesla進行商業竊密的攻擊活動。
研究人員對本次活動進行了深入分析,從最初的釣魚電子郵件到安裝在受害者設備上的AgentTesla的活動,再到從受影響的設備收集敏感信息。接下來,我們將介紹此次攻擊的內容,如釣魚電子郵件如何啟動活動,CVE-2017-11882/CVE-2018-0802漏洞(而非VBS宏)如何被利用在受害者設備上下載和執行AgentTesla文件,以及AgentTesla如何從受害者設備收集敏感數據,如憑據、密鑰日誌,以及受害者的屏幕截圖。
儘管微軟於2017年11月和2018年1月發布了對CVE-2017-11882/CVE-2018-0802的修復,但該漏洞在攻擊者中仍然很受歡迎,這表明即使在多年後,仍有未修復的設備。
網絡釣魚電子郵件
捕獲的釣魚電子郵件
釣魚電子郵件偽裝成採購訂單通知,如上圖所示,要求收件人確認工業設備供應商公司的訂單。這封電子郵件附帶了一個名為“Order 45232429.xls”的Excel文檔。
CVE-2017-11882/CVE-2018-0802被Excel文檔利用附件中的Excel文檔為OLE格式。它包含精心製作的方程數據(equation data),利用CVE-2017-11882/CVE-2018-0802漏洞執行惡意shellcode。
Excel文件的內容
打開附加的Excel文檔會向用戶顯示一條欺騙信息。同時,精心製作的方程數據中的shellcode被秘密執行。
CVE-2017-11882/CVE-2018-0802是一個RCE(遠程代碼執行)漏洞,當被利用時,它會導致EQNEDT32.EXE進程在解析特製的方程數據時內存損壞,這可能導致執行任意代碼。
下圖顯示了在OLE複合讀取器中解析的Excel文檔,其中方程數據位於存儲文件夾“MBD0057E612”下的流“\x01Ole10NativE”中。
OLE Excel文檔中的方程內容
一旦打開精心編制的Excel文檔,惡意方程式數據就會被稱為“EQNEDT32.EXE”的MS Office進程自動解析。這會觸發CVE-2017-11882/CVE-2018-0802漏洞,並在後台執行方程數據中的惡意shellcode。
即將在易受攻擊的EQNEDT32.EXE進程中執行的ShellCode
在下圖中,我們可以看到,精心編制的方程數據覆蓋了EQNEDT32.EXE的堆棧,並使其跳轉兩次(通過0x450650和0x44C329的固定地址)到0x33C006C(堆棧中)的shellcode。
自我解密後,研究人員觀察到shellcode的主要工作是從URL“hxxp://23[.]95.128.195/3355/chromium.exe”下載並執行一個額外的惡意軟件文件。為此,它調用了幾個API,如URLDownloadToFileW(),將惡意軟件下載到本地文件夾,ShellExecuteW()在受害者的設備上運行惡意軟件。在下圖中,我們可以看到shellcode即將調用API URLDownloadToFileW()將其下載到本地文件中,並將其重命名為“%TEMP%”文件夾下的“dasHost.exe”。
調用API下載惡意軟件
查看下載的文件下載的文件(“dasHost.exe”)是一個由IntelliLock和.Net Reactor兩個數據包保護的.Net程序。
下圖顯示了dnSpy中下載文件的EntryPoint函數,其中文件的程序集名稱為“Nvgqn7x”。你可能已經註意到,所有名稱空間、類、方法和變量的名稱都完全混淆了。
被混淆後下載文件的EntryPoint函數
下載文件的.Net Resources部分中有一些資源文件,下載的文件(“dasHost.exe”)從.Net Resources部分提取兩個無文件執行模塊。一個是AgentTesla的有效負載模塊,另一個是AgentTesla有效負載文件的Loader模塊。
下載文件的.Net Resources部分
上圖顯示了.Net Resources部分中的所有資源。根據我的分析,資源“rTMIRNhcvIYnT8lMa6.UJQcCvWAsvT8GV6hyn.resources”是編碼的Loader模塊,其程序集名稱為“Cassa”。資源“FinalProject.resources”是加密和壓縮的AgentTesla有效負載模塊,其組件名稱為“NyZELH bX”,並在Loader模塊的“DeleteMC()”函數中作為模塊加載,如下圖所示。
Loader“Cassa”的DeleteMC()函數
你可能已經註意到的,資源被偽裝成Bitmap資源,並與有效負載混合在一起。 Bitmap.GetPixel()和Color.FromArgb()是被調用來從資源中讀取有效負載的兩個API。然後,它通過解密和gzip解壓縮來恢復有效負載文件,該文件通過調用AppDomain.CurrentDomain.Load()方法作為可執行模塊加載。最後,從Loader模塊(“Cassa”)調用有效負載文件的“EntryPoint”函數。
AgentTesla有效負載模塊和Process Hollowing有效負載模塊是一個.Net程序,並且是完全混淆的。幸運的是,我使用了幾個分析工具來消除混淆。 Process-Hollowing是一款windows系統進程注入工具,它能夠將目標進程的映射文件替換為指定進程的映射文件,被替換的通常是一些系統進程,如svchost。惡意代碼借助此技術可以運行在其他進程中而不被檢測到。
與大多數惡意軟件一樣,開發人員在單獨的進程中運行惡意軟件的核心模塊。這是一種常見的保護策略,可以增加惡意軟件在受害者設備上運行的成功率。
有效負載的主要功能(除了持久性)是執行Process Hollowing,然後將另一個解密的可執行文件,該文件來源於有效負載文件中的一個稱為“7gQsJ0ugxz.resources”單獨的資源,該文件放在Process Hollowing中並執行它。在這個分析中,研究人員把這個解密的可執行文件稱為Agent Tesla的核心模塊。
用於執行Process Hollowing的API
上圖包含有效負載模塊調用以執行ProcessHollowing的關鍵API。它調用CreateProcess()創建一個掛起的“dasHost.exe”進程。接下來,它通過核心模塊的API VirtualAllocEx()在該進程中分配內存。然後多次調用WriteProcessMemory(),將保存在數組變量byte_1中的核心模塊複製到新進程中。它最終調用API SetThreadContext()和ResumeThread(),將新進程從掛起狀態恢復為執行AgentTesla的核心模塊。
之後,負載模塊通過調用Loader模塊的DeleteMC()中的Environment.Exit()退出。
持久性攻擊為了持續盜取受害者的敏感數據,即使受影響的系統重新啟動或AgentTesla進程被終止,它也要執行以下兩個操作。
1. TaskScheduler
它執行一個命令,在負載模塊內的系統taskscheduler中創建一個任務。本文的分析環境中的命令是'C:\Windows\System32\schtasks.exe' /Create /TN 'Updates\kCqKCO' /XML 'C:\Users\Bobs\AppData\Local\Temp\tmp68E9.tmp',其中“Updates\kCqKCO”是任務名稱,“/XML”指定它是由以下參數提供的XML文件創建的,即tmp68E9.tpm。下圖顯示了XML內容的詳細信息,其中文件“C:\Users\Bobs\AppData\Roaming\kCqKCO.exe”是下載的“dasHost.exe”的副本。任務設置為在受害者登錄時開始。
在系統TaskScheduler中創建任務
2.在系統註冊表中自動運行
系統註冊表中的自動運行項
核心模塊在系統註冊表“C:\Users\Bobs\AppData\Roaming\sOFvE\sOFvE.exe”中添加了一個自動運行項,它是在系統啟動時自動啟動的“dasHost.exe”的另一個副本。
竊取受害者的敏感信息AgentTesla核心模塊從受害者的設備中竊取敏感信息。這些信息包括一些軟件的保存憑據,受害者的鍵盤記錄信息和受害者設備的屏幕截圖。
竊取憑據
AgentTesla從中竊取憑據的Web瀏覽器信息
它從受害者設備上安裝的指定軟件中竊取保存的憑據,包括網絡瀏覽器、電子郵件客戶端、FTP客戶端等。
根據其特點,受影響的軟件可分為以下幾類:
Web瀏覽器:
Opera瀏覽器、Yandex瀏覽器、Iridium瀏覽器、Chromium瀏覽器、7Star瀏覽器、Torch瀏覽器、Cool Novo瀏覽器、Kometa瀏覽器、Amigo瀏覽器、Brave瀏覽器、CentBrowser瀏覽器、Chedot瀏覽器、Orbitum瀏覽器、Sputnik瀏覽器、Comodo Dragon瀏覽器、Vivaldi瀏覽器、Citrio瀏覽器、360瀏覽器、Uran瀏覽器、Liebao瀏覽器、Elements瀏覽器、Epic Privacy瀏覽器、Coccoc瀏覽器、Sleipnir 6瀏覽器、QIP Surf瀏覽器、Coowon瀏覽器、Chrome瀏覽器、Flo瀏覽器ck瀏覽器,QQ瀏覽器,Safari、UC瀏覽器、Falkon瀏覽器
電子郵件客戶端:
Outlook,ClawsMail,IncrediMail,FoxMail,eM客戶端,Opera Mail,PocoMail,Windows Mail應用程序,Mailbird,The Bat!Becky!Eudora
FTP客戶端:
Flash FXP, WS_FTP, FTPGetter, SmartFTP, FTP Navigator, FileZilla, CoreFTP, FtpCommander, WinSCP
VPN客戶端:
NordVPN,Private Internet Access,OpenVPN
IM客戶端:
Discord,Trillian,Psi/Psi+
其他:
Mysql Workbench,\Microsoft\Credentials\,Internet Download Manager,JDownloader
Keylogging攻擊AgentTesla調用API SetWindowsHookEx()來設置鍵盤掛鉤,以監視低級別的輸入事件。 Keylogging攻擊是指攻擊者跟踪鍵盤、鼠標活動,獲得用戶輸入的信息,包括帳號、口令等。
設置掛鉤程序以記錄鍵盤活動
在上圖中,當受害者在他們的設備上打字時,就會調用回調掛鉤進程“this.EiqpViCm9()”。 AgentTesla將程序標題、時間和受害者的鍵盤輸入內容不時地記錄到一個本地文件“%Temp%/log.tmp”中。
它還有一個每隔20分鐘由計時器調用的方法,用於檢查“log.tmp”文件並通過SMTP傳輸其內容。
錄製屏幕截圖在核心模塊中,AgentTesla設置了另一個定時器,每間隔20分鐘調用另一個Timer函數。該Timer函數檢查設備上的任何活動,並確定是否記錄並傳輸屏幕截圖。為此,它調用API GetLastInputInfo()來檢索系統接收到的最後一個輸入事件的時間,然後將其與當前時間進行比較。
下面的偽代碼片段演示了AgentTesla如何捕獲屏幕截圖。
“memoryStream”變量將截圖保存為jpeg格式。
通過SMTP傳輸敏感數據AgentTesla提供了多種傳輸被盜數據的方式,例如使用HTTP POST方法或通過SMTP作為電子郵件正文。該變體選擇通過電子郵件SMTP協議傳輸從受害者設備收集的數據。變體中的SMTP服務器地址和端口硬編碼為“mail.daymon.cc”和587。
下圖顯示了將要調用smtpClient.Send()函數來傳輸憑據數據的惡意軟件,電子郵件主題以關鍵字“PW_”開頭,後跟憑據數據的用戶名/計算機名。
在電子郵件中傳輸被盜憑據
電子郵件正文采用HTML格式,在瀏覽器中將電子郵件正文解析為HTML時,如下圖所示。
被盜憑據示例
鍵盤記錄程序收集的信息示例
電子郵件的主題是“KL_{User name/Computer name}” ,其中KL是鍵盤記錄程序的縮寫,電子郵件正文是收集的鍵盤記錄數據。如下圖所示,電子郵件正文包括在名為“Untitled-Notepad”的記事本中輸入的鍵擊記錄。
捕獲的屏幕截圖保存在一個變量中,並在傳輸給攻擊者時作為電子郵件附件添加。下圖顯示了它將屏幕截圖數據作為附件添加到電子郵件中。截圖的電子郵件主題格式是“SC_{User name/Computer name}”,電子郵件正文只是關於受害者設備的基本信息。
傳輸受害者截圖的示例
總結惡意活動流程圖大致如下。
該分析表明,釣魚電子郵件附帶的惡意Excel文檔利用老化的安全漏洞執行下載AgentTesla的shellcode。它在Resource部分中對相關模塊進行加密和編碼,以保護其核心模塊不被分析。
然後我解釋了這種變體是如何在受害者的設備上建立持久性的。我還展示了AgentTesla能夠從受感染的設備中竊取的軟件和數據,包括憑據、密鑰記錄數據和活動屏幕截圖。
最後,我提供了幾個例子,說明這種AgentTesla從分析環境中獲得的敏感數據類型,以及這些被盜的敏感數據是如何通過SMTP協議通過電子郵件傳輸給攻擊者的。
Recommended Comments