作者:啟明星辰ADLab
公眾號:https://mp.weixin.qq.com/s/bXPmfp316WC6R0yHULU-jA

一 概述

近期,啟明星辰ADLab接連捕獲到大量針對全球制造、運輸、能源等行業及部分醫療機構發起的魚叉式釣魚郵件定向攻擊。從郵件的分析結果來看,受害者大多遍布于美國、加拿大、德國、中國、英國、法國、西班牙等國家和地區。攻擊者以“裝船通知單”、“裝箱交貨價單”、“緊急運輸文件”等主題郵件作為誘餌向攻擊目標植入信息竊密木馬(Agent Tesla、Formbook、Lokibot)和遠程控制程序(NanoCore、Remcos)。我們通過對收集到的攻擊工具進行去重并做分析,最終發現此次攻擊活動關聯著1362個攻擊樣本。通過同源分析,我們發現這批樣本中有近80%是同一款惡意軟件,對其分析判定后確定這正是近期被大范圍傳播且極為活躍的新型下載者病毒Guloader。Guloader是一款免殺能力很強的病毒,近期全球各大廠商均對其進行了預警,其具備沙盒逃逸、代碼混淆、反調試、C&C/URL加密和有效載荷加密等多種能力。由于Guloader具有較強的免殺能力和對抗機制,因而受到大量黑客的青睞。本批攻擊中,攻擊者就廣泛地利用Guloader下載者病毒結合云服務來分發竊密工具或遠程控制程序(RAT)。

我們通過溯源分析確定此次攻擊活動來自尼日利亞,并且關聯出了大批量的黑惡意域名(攻擊者使用境外的Duck DNS注冊動態域名)和IP地址。通過對攻擊者使用的網絡基礎設施,追蹤分析發現此次攻擊活動最早可追溯到2020年1月。進一步分析我們發現,這批攻擊者的攻擊動機、攻擊目標、作業風格與SWEED黑客組織極為相似,他們還有著相似的攻擊習慣,并使用相同竊密木馬程序,以及同樣風格的C&C地址。因此,我們推斷這批攻擊背后應該就是SWEED黑客組織。SWEED是一個來自尼日利亞的以獲取經濟利益為主要目的的黑客組織,其最早出現于2017年,常利用公開披露的漏洞,借助魚叉式釣魚郵件來傳播木馬程序,如Agent Tesla、Formbook和Lokibot等。該組織曾在早期被披露的攻擊活動中,通過竊取被攻擊目標用戶和企業敏感信息實施中間人攻擊,誘使財務人員將款項轉至指定賬戶,是一個典型的網絡詐騙團伙。

啟明星辰ADLab對本次攻擊活動的攻擊過程和攻擊手法進行了詳細地分析和溯源,并對其所使用的新型惡意軟件和C&C基礎設施進行了深入研究。提醒各大企業單位做好安全防范工作,謹防后續可能出現的攻擊。

二 攻擊目標和受害者分布

截止到2020年6月,我們發現攻擊者的重點目標為從事對外貿易的中小型企業,其目的是通過植入特定的后門以實現對目標計算機進行信息收集和長期監控,并為接下來的橫向移動攻擊提供基礎。

2.1 地域分布

通過對已知的SWEED組織攻擊行動中受害者的國家和地區分布情況進行統計(如圖2-1),我們可以看到該組織發起的攻擊活動覆蓋了很多國家和地區,由此猜測,攻擊者在攻擊目標地理位置的選擇上并沒有特定的指向性。

圖2-1 受害者國家地域分布圖

2.2 行業分布

統計結果顯示(如圖2-2),此次SWEED組織在面向全球的攻擊中,運輸、制造業和能源行業依然是其重點針對的目標對象。

圖2-2 受害者行業分布圖

三 攻擊事件分析

本小節總結了該組織在近些年的攻擊活動時間點、此次行動中使用的攻擊手法以及攻擊流程。

3.1 攻擊活動時間線

為了對黑客組織在此次攻擊活動使用的策略和技術進行全面的了解,啟明星辰ADLab研究人員將目前關聯到的該組織近幾年的主要活動做了梳理和總結,并繪制了“SWEED組織”活動時間軸(如圖3-1)。從時間軸可以看出,該組織的大部分活動都具有一致性——借助帶有惡意附件的魚叉式釣魚郵件分發遠控木馬程序(RAT),并且行動中使用的木馬程序主要是以Agent Tesla為主。

圖3-1 SWEED組織相關活動時間軸

3.2 攻擊手法和特點

SWEED組織在初始環節主要以投遞釣魚郵件開始展開攻擊,攻擊者在前期對目標用戶進行深入調研,選取與目標用戶所屬行業或領域相關的內容來構造郵件和惡意文檔。隨后將精心制作的主題如”采購訂單”、“緊急運輸文件”、”裝船通知單“等文檔添加在郵件附件中發送給目標用戶,誘使其下載附件,目標用戶一旦打開帶有漏洞的惡意文檔,觸發漏洞的惡意代碼就將會在后臺靜默下載和執行惡意軟件,從而竊取目標用戶的敏感信息并對其主機進行控制。

3.2.1 魚叉郵件

啟明星辰ADLab通過對SWEED組織年初至今的攻擊行動進行監測和關聯分析后,梳理出幾十起定向目標的攻擊釣魚郵件。部分相關郵件信息見表3-1。

表3-1 部分釣魚郵件案例信息

通過分析這些郵箱發件人所屬公司的注冊信息以及其官網信息,我們發現多數公司網站均為合法網站,由此猜測攻擊者使用的這些郵箱,有可能來自被入侵和盜用的合法實體或個人。雖然收件人的信息很多無法看到,但是從郵件的主題以及正文內容不難看出,攻擊者企圖利用運輸貨物清單、裝箱交貨價單、物品到貨通知單、海上新訂單等郵件向運輸商、制造商及其合作商進行有針對性的攻擊活動。下面我們從以上郵件中列舉一個做簡單分析。

在此案例中,攻擊者試圖使用“VSL: MV FORTUNE TRADER”主題冒充“MV Fortune Trader”。船舶FORTUNE TRADER是一艘建于1994年的集裝箱船,該船舶的注冊國家為韓國。

圖3-2 船舶FORTUNE TRADER相關信息

郵件正文與主題保持一致,顯示該郵件是來自超捷國際物流公司。該公司總部位于臺灣臺北,主要提供海運、空運和中港運輸等業務。

圖3-3 超捷國際物流公司主頁

郵件正文如圖3-4:

圖3-4 郵件正文信息

對郵件信息進行解析后如圖 3-5所示,發件人的郵件地址是印度尼西亞一家名為“PT.INTI PERSADA NUSANTARA”電機設備公司的合法域,而該郵件實際上是由托管在us10.rumahweb.com上的Roundcube Web郵件服務器發送。這里收件人地址之所以顯示為“Undisclosed-Recipient”(導致無法看到收件人信息),猜測攻擊者是在使用Roundcube Webmail/1.3.8軟件群發郵件時,為了不讓收件人看到其他接收郵件人的地址,故將此處設置為Undisclosed-Recipient。

圖3-5 部分郵件頭部信息

3.2.2 誘餌文件

通過對該批截獲的郵件進行分析所得,攻擊者使用的攻擊載荷類型總共有四種。下面將列舉典型的攻擊載荷及其所對應的釣魚郵件。

(1) 攜帶漏洞文檔

圖3-6是一封攻擊者冒名航空貨運公司發送給客戶的預約請求回復郵件,附件偽裝成船舶詳細信息表單。該文檔使用微軟Office經典漏洞CVE-2017-11882,當用戶打開惡意文檔時,嵌入到文檔中的惡意程序則會自動加載。該漏洞的特點是在整個過程中用戶完全無感知,且在斷網的情況下仍然可達到有效攻擊,所以成為各大APT組織必用漏洞利用庫之一。

圖3-6 攜帶漏洞文檔案例1—郵件截圖

(2)攜帶GZ格式的壓縮文檔

圖3-7是攻擊者發送給總部位于比利時的一家多元化的工業制造商的郵件,該郵件使用熱門的COVID-19為主題,并通過正文描述謊稱惡意附件GZ壓縮文檔中包含采購單,誘使受害者下載。

圖3-7 攜帶GZ文檔案例2—郵件截圖

附件里面是偽裝成bat文件的Guloader下載器。

圖3-8 GZ壓縮包里的文件

(3)攜帶ISO格式的文檔

由圖 3-9可見,攻擊者將郵件附件偽裝成系統鏡像ISO文件(使用ISO文件可用于繞過垃圾郵件過濾器),將其命名為“COVID-19解決方案宣布”誘騙用戶點擊。嵌入在ISO惡意附件中的可執行文件為Guloader下載器。

圖3-9 ISO壓縮包里的文件

(4)攜帶html格式的文件

圖3-10是攻擊者冒充DHL Express國際快遞公司發送給德國一家光學組件制造商的釣魚郵件,郵件附件被命名為裝船通知單并以html形式誘騙受害者點擊。

圖3-10 攜帶html文件案例3—郵件截圖

3.2.3 惡意軟件托管位置

在攻擊活動中,攻擊者經常利用遠程配置來控制惡意軟件,而安全人員通過研究分析不同的惡意軟件配置(例如主機地理位置和DNS信息),可以深入的了解和追蹤攻擊者使用的基礎設施。我們在研究過程中將收集到的大量樣本數據進行提取和整合,發現SWEED組織此次實施攻擊行動所使用的惡意軟件配置,主要應用了Guloader下載器配置選項中的利用云服務分發惡意軟件的功能。攻擊者之所以使用正規的云存儲平臺來托管惡意軟件,是因為這些云平臺多數是受信任的且有助于繞過商業威脅檢測產品。雖然Google Drive等云平臺通常也會執行防病毒檢測,但如果有效載荷是被加密后再存儲,就可以躲過此類限制,并能有效的阻止安全人員對黑客組織的基礎設施進行追蹤。圖3-11為惡意載荷樣本托管平臺的使用占比率。根據圖中顯示的數值可得,Google Drive為惡意軟件主要使用的托管平臺。除此之外,還有部分惡意軟件會托管在已被攻陷的合法網站上。

圖3-11有效載荷托管平臺的使用率

除了Google Drive和OneDrive,下面我們列舉出幾個攻擊者使用的其他云托管平臺。

files.fm是國外一家提供文件云存儲平臺的信息技術公司。圖3-12是保存在該平臺的加密的惡意文件。

圖3-12 云托管平臺例1

sendspace是一家免費文件托管平臺。圖3-13是攻擊者上傳到該平臺進行托管的惡意軟件。

圖 3-13 云托管平臺例2

dmca.gripe是一個免費的文件托管平臺,其主頁如圖3-14所示。

圖3-14 云托管平臺例3

3.3 攻擊流程

我們對這批攻擊活動進行歸納分析后發現絕大部分攻擊具有相同的攻擊流程,其攻擊的流程如圖3-15。

3-15 攻擊流程圖

攻擊者偽裝成物流或船舶等公司人員,向目標企業投遞攜帶附件的釣魚郵件,附件類型包括:包含漏洞的惡意文檔、GZ格式的壓縮包、ISO文件和HTML文件。在多數情況下,這些附件起初都會包含或下載Guloader下載器(其他情況下為遠控木馬)。Guloader開始執行時,先對儲存在代碼部分的shellcode進行解密,再將解密后的shellcode注入到RegAsm.exe系統文件中;接著RegAsm.exe中的shellcode再從指定的云平臺地址下載加密的payload,并在內存中解密執行payload(遠控木馬),最后通過C2對目標主機進行信息竊取和遠程控制。

此次攻擊活動中使用到的竊密和遠控木馬包括:Agent Tesla(是一款知名的商業竊取木馬,主要用于瀏覽器、郵件客戶端、FTP工具、下載器等用戶賬號密碼和WiFi憑證的竊取。);Formbook(是一款信息竊取木馬,其主要以竊取用戶電腦機密信息為主,包括鍵盤記錄、剪貼板記錄、cookie會話與本地密碼等等。);Lokibot(一款竊密木馬,其通過從多種流行的網絡瀏覽器、FTP、電子郵箱客戶端、以及PuTTY等IT管理工具中獲取憑證,來竊取用戶的密碼和加密貨幣錢包);NanoCore(是一款.net編寫的遠控軟件,其具有鍵盤監控、實時視頻操作、語音、命令行控制等完全控制遠程主機的功能。);Remcos(一款遠控軟件,包括下載并執行命令、鍵盤記錄、屏幕記錄以及使用攝像頭和麥克風進行錄音錄像等功能。)。

鑒于我們分析的這些木馬在功能和技術上與舊版類似,并沒有發現太多的變化點,所以在此我們僅對其主要功能做了簡單的描述,本文后續便不再過多的詳細描述其具體的技術細節,如有需要大家可查看文末的參考文獻。在下個章節,我們主要對SWEED組織新引入的Guloader惡意代碼進行完整詳細地剖析。

四 技術分析

正如前文所述,我們目前收集到的電子郵件的附件主要分為四類。雖然其釋放惡意軟件的形式不同,但它們的主要功能行為都基本一致。在這里,我們選取一個典型案例進行詳細分析。

4.1 釣魚郵件

圖4-1為攻擊者針對美國一家防滑產品制造商進行攻擊的釣魚郵件,此郵件于美國山地時區時間2020年4月29日(周三)02:31被發送到該公司。郵件標題為“Purchase Order /APO-074787648”,正文描述為“請查看清單和確認商品庫存”,并附有同名惡意文檔“Purchase Order /APO-074787648”。

圖4-1 釣魚郵件內容

4.2 惡意文檔

樣本“Purchase Order /APO-074787648.ppsx”利用了沙蟲漏洞CVE-2014-4114的補丁(MS14-060)繞過漏洞CVE-2014-6352。沙蟲漏洞是Windows OLE任意代碼執行漏洞,該漏洞出現在Microsoft Windows服務器上的OLE包管理器上。攻擊者通過利用該漏洞在OLE打包文件(packer.dll)中下載并執行類似的INF文件,來達到執行任意命令的目的。雖然微軟為沙蟲漏洞發布補丁(MS14-60),但攻擊者還可通過構造特定的CLSID和OLE Verb來繞過MS14-160補丁的限制(CVE-2014-6352)。下面我們以本次行動中使用的惡意文檔為例,對該漏洞的實現原理做簡單的分析。

圖4-2為此案例中使用的ppsx漏洞攻擊文檔內容。

圖4-2 ppsx漏洞文檔內容

我們解壓PPXS文檔可以看到,在“Purchase Order APO-074787648.ppsx\ppt\slides \slides.xml”中,指定了嵌入的對象id=rld3。

圖4-3 “slides.xml”文件內容

在“Purchase Order APO-074787648\ppt\slides_rels\slide1.xml.rels”中指定了rld3對應“ppt\embeddings\”目錄下的oleObject1.bin文件。

圖4-4 “slide1.xml.rels”文件內容

“Purchase Order APO-074787648.ppsx\ppt\embeddings\”目錄下的“oleObject1.bin”文件內嵌一個OLE Package對象,嵌入文件為PE可執行程序。

圖4-5 “oleObject1.bin”文件內容

CVE-2014-4114漏洞的成因是packager.dll中CPackage::Load方法加載對應的OLE復合文檔對象時,針對不同類型的復合文檔進行不同的處理流程,但其中對某些復合文檔中嵌入的不可信來源文件沒有做處理。由此攻擊者可使用偽造OLE復合文檔的CLSID來達到執行特定文件的目的。微軟在MS14-060補丁中,通過添加MarkFileUnsafe函數對文件進行MOTW處理,將其Security Zone標記為“此文件來自其他計算機”,運行時會彈出安全警告窗口。

圖4-6 “%TEMP%\NEW ORDER.exe”標記為不可信文件

但就算受害者已安裝MS14-060的補丁,攻擊者還是可以通過構造特定的CLSID和OLE Verb來改變執行流程,從而繞過該補丁(CVE-2014-6352漏洞)。對于一個exe文件,即使被標記為URLZONE_INTERNET,右鍵點擊以管理員權限執行該exe文件,那當程序運行時便不會再彈出“安全警告”(如圖4-6)的提示,而是以(如圖4-7)UAC 提示窗彈出。

圖4-7 彈出的UAC提示窗

由此可知,當受害者打開此PPSX惡意文檔時,自動播放模式便會開啟,同時“%TEMP%\NEW ORDER.exe”將被釋放在臨時目錄中。如果受害者選擇“是”,惡意代碼將會被執行。而如果受害者的系統處于UAC關閉狀態或在獲取了管理員權限的情況下,該UAC安全警告窗口則不會彈出,“NEW ORDER.exe”會被靜默地執行。

4.3 GuLoader

如上文所述,最后被執行的“NEW ORDER.exe”可執行文件實際上便是文章開頭提到的Guloader惡意軟件(在后續對“NEW ORDER.exe”的詳細分析中,我們均使用“Guloader”來替代該文件名)。Guloader是一款新型的惡意軟件下載器,其本身具有復雜的執行流程,通過采用各種代碼混淆和隨機化、反沙箱、反調試和數據加密等機制來對抗安全產品的檢測。下面我們將對該GuLoader進行深入的挖掘分析。

4.3.1 執行流程

如圖4-8所示, GuLoader首先將儲存在代碼部分的加密Shellcode解密并執行。這段Shellcode的主要功能為:以掛起方式創建一個系統子進程,之后將本段Shellcode自身注入到子進程并修改程序入口點為Shellcode處執行。最后從托管服務器上下載加密的BIN文件,成功下載后將其解密和運行。

圖4-8 Guloader執行流程圖

4.3.2 EXE可執行文件

(1)代碼混淆

Guloader可執行文件是由Visual Basic 6語言編寫的。使用工具查看后發現,其并未使用商業殼進行自身保護,而是使用混淆殼嘗試對抗安全產品的查殺。由于殺軟對商業殼比較敏感,并且商業殼檢測和脫殼技術也比較成熟,所以混淆殼不失為一個不錯的選擇。混淆殼一般不存在通用的檢測方法,并且靜態脫殼相對較難,所以其惡意行為不易被發現,從而可長時間的存活在目標機器上。對于逆向分析人員來講,分析這種帶混淆殼的樣本往往會花費大量的精力,無形的增加了人力和時間成本。

圖4-9是一段混淆代碼的截取,這部分代碼使用了數據混淆中的常量拆分,主要目的是隱藏真實的代碼邏輯,讓分析者內心奔潰。

圖4-9 部分混淆代碼

(2)代碼解密

惡意軟件首先計算出用于解密shellcode的密鑰,其值為:0x24EBE470。

圖4-10 獲取密鑰的惡意代碼

接著,為shellcode申請內存空間,再使用密鑰進行XOR運算解密Shellcode并執行。

圖4-11 解密和執行shellcode

4.3.3 ShellCode

解密后的shellcode前期也采取了大量的對抗手段,使用各種代碼混淆、沙箱檢測、反調試等技術手段來規避安全產品的行為監測和查殺。僅當通過各種檢查判斷條件后,惡意代碼才開始執行主功能行為。下面我們將對惡意代碼做詳細的分析。

(1)檢測功能

  • 代碼混淆

將解密后的shellcode從內存中dump出來并使用IDA反編譯,可以看到shellcode中使用的混淆技術。惡意代碼在執行過程中插入混淆函數,該函數的過程被分割成多個跳轉流程,一直到最后再 jmp到原來的正常代碼中繼續執行下面的流程。圖4-12是shellcode在入口處調用的此類混淆函數的代碼片段,很顯然通過該方法,能夠有效的擾亂分析者對樣本進行分析,嚴重降低了分析效率。

圖4-12 混淆后的代碼片段

  • 動態獲取API函數

接著,惡意代碼通過訪問PEB->LDR中的InMemoryOrderModuleList獲取kernel32.dll的基址。遍歷提取該模塊導出表結構中存放函數名的數組,并依次將名稱字符串作為參數傳入到哈希算法函數中做運算,再將結果與硬編碼數據做比較,以此方法來查找GetProcAddress函數。

圖4-13 查找GetProcAddress函數

此處使用的是djb2的算法, djb2是一個產生隨機分布的哈希函數,與LCG的算法相似。由于該函數構造簡單,使用移位和相加的操作,所以常被用來處理字符串。具體算法見圖4-14。

圖4-14 djb2算法代碼截圖

由此我們可以看到,惡意代碼在函數的獲取方面是利用LoadLibrary和GetProcAddress這兩個函數進行動態的獲取。具體如圖4-15所示。

圖4-15 動態獲取API函數

  • 沙箱檢測

惡意代碼枚舉窗口數量,如果值小于12則退出進程,以此來檢測自身是否運行在沙箱環境中。

圖4-16 沙箱檢測代碼

  • 反調試技術

方法1: 調用ZwProtectVirtualMemory函數修改ntdll.dll的“.text”節屬性為可讀可寫可執行。

圖4-17 修改ntdll.dll節屬性

惡意代碼通過修改DbgBreakPoint和 DbgUiRemoteBreakin函數代碼,讓調試器無法附加調試程序(如圖4-18和圖4-19)。給call調用后面指定一個未知地址,以此引發調試器崩潰退出。

圖4-18 DbgBreakPoint函數代碼修改前后對比

圖4-19 DbgUiRemoteBreakin函數代碼修改前后對比

方法2:

將ZwSetInformationThread函數的第二個參數設置為ThreadHideFromDebugger (值為17),作用是在調試工具中隱藏線程。如果惡意軟件處于被調試狀態,那么該函數就會使當前線程(一般是主線程)脫離調試器,使調試器無法繼續接收該線程的調試事件。效果就像是調試器崩潰了一樣。

圖4-20 隱藏線程達到反調試目的

方法3:

在使用ZwAllocateVirtualMemory函數申請內存空間時,為防止分析人員在調試時對關鍵函數下斷點,惡意代碼會提前將該函數的功能實現代碼復制到本進程空閑空間中,使得后續在使用此函數時直接跳轉到自身代碼中執行。

圖4-21 復制函數功能實現代碼

方法4:

在調用部分敏感API函數時,會先調用自定義的檢查函數做判斷,以減少被安全產品檢測的幾率。

圖4-22 檢查函數是否被下斷點或掛鉤

該自定義的檢查函數的主要功能:

① 將調用該函數前的shellcode代碼(正序)按字節與0x4字節的返回地址做異或運算 進行加密處理;

② 調用ZwGetContectThread函數,通過檢查_CONTEX結構中的Dr寄存器來判斷是否 在調試環境中;

③ 判斷此次要檢查的關鍵API函數是否被下斷點或掛鉤。如果結果為否,則調用該API函數,否則程序直接崩潰退出;

④ 同“方法①”對shellcode代碼(倒序)進行解密并跳轉到返回地址處執行后續流程。

圖4-23 自定義檢查函數代碼

(2)惡意行為執行功能

如果以上一系列的沙箱以及反調試檢測都通過,惡意代碼則開始執行以下流程:

① 動態獲取圖4-24中的API函數,并將函數調用地址保存在堆棧中。

圖4-24 動態獲取的API函數名稱

② 根據指定地址處保存的數據內容特征(如果惡意代碼未執行過創建子進程流程,那 么該地址處原數據為無效內容;否則,此處保存的是當前進程的全路徑。)來判定是 否需要創建子進程。

圖4-25 判斷是否需要創建子進程

圖4-26 對指定地址處保存的數據內容做判斷

③ 調用CreateProcessInternal函數以掛起模式創建RegAsm.exe進程。

圖4-27 創建系統子進程

④ 調用ZwOpenFile函數,獲得映射文件mstsc.exe的句柄。

圖4-28 獲取mstsc.exe的句柄

⑤ 使用ZwCreateSection和NtMapViewOfSection函數將“mstsc.exe”文件映射到RegAsm.exe內存中的0x00400000位置上。

圖4-29 映射文件

⑥ 在傀儡進程中申請內存空間,并將我們正在調試的整個shellcode寫入到目標內存中。

圖4-30 寫入shellcode到系統子進程中

⑦ 使用ZwGetContextThread和ZwSetContextThread函數,獲取和修改掛起的子 線程上下文中寄存器值,以實現重定向到shellcode入口處執行的目的。

圖4-31 修改系統子進程的執行入口點

⑧ 若“步驟⑤”操作成功,則恢復執行子進程;否則結束當前程序。

圖4-32 判斷步驟⑤是否操作成功

(3)成功注入后惡意行為功能

我們在惡意代碼調用NtResumeThread函數前,附加RegAsm.exe進程并在注入的shellcode執行處設置斷點(如圖4-33),然后再繼續執行該函數來恢復線程運行。該shellcode前部分與之前的操作流程相同,將前文描述的各種檢測重新執行一遍,直到在“判斷是否創建子進程”處跳轉到另外的分支流程。下面我們繼續對后續功能進行詳細地分析。

圖4-33 Shellcode執行處代碼

判斷開啟RegAsm.exe程序的父進程是否為“C:\Users***\directory\filename.exe”。

如果不是,則將當前父進程文件復制到該目錄中,將其命名為filename.exe并重新執行;

如果是,則在注冊表HLM\Software\Microsoft\Windows\CurrentVersion\RunOnce目錄里將該路徑添加在“Startup key”中,以實現長期駐留的目的。

圖4-34 添加注冊表信息代碼

圖4-35 添加注冊表開機啟動項

成功添加注冊表項后,惡意代碼則開始使用winnet.dll庫中的Internet API函數從云托管服務器下載加密的payload。

圖4-36 從云托管服務下載payload

下載完成后,惡意代碼再將硬編碼的值與將payload的大小做比較,以此來檢查文件的完整性。如果大小不匹配,惡意代碼則會重新下載文件,直到完全匹配為止。

圖4-37 檢測payload大小

下載到的payload文件是由0x40個字節的HEX小寫數字和加密的PE文件組成,具體如圖4-38所示。

圖4-38 payload內容

接著,惡意代碼再使用自定義解密函數對下載的payload進行異或解密。其密鑰儲存在shellcode代碼0x2032偏移處,密鑰長度為0x214。解密函數內容如圖4-39所示。

圖4-39 payload解密函數

解密后的PE文件如圖4-40所示。

圖4-40 解密后的文件內容

最后,惡意代碼將解密后的PE文件覆蓋0x00400000基址的內容,并跳轉到入口點執行payload惡意程序。

圖4-41 執行payload

在此次分析的案例中,解密出的payload是Agent Tesla。對于該惡意軟件,在此我們就不再做過多的介紹和分析了。下面我們會對黑客組織的C&C服務器基礎設施展開追蹤溯源。

五 溯源追蹤

5.1 C&C基礎設施

截止到目前為止,我們通過提取和整理所有關聯樣本中的IP地址和域名信息,可以看到此次攻擊行動主要以動態域名為主,大部分域名都是通過境外的Duck DNS注冊。圖5-1為SWEED黑客組織使用的部分域名、IP、樣本的對應關系。

圖5-1 部分域名、IP、樣本的對應關系圖

根據樣本同源性分析的結果,我們發現大量的有效載荷被分別掛載在不同的動態域名中,以備包含漏洞的Office文檔或惡意軟件Guloader訪問和下載。通過域名的查詢記錄所得,此次攻擊活動最早可追溯到1月中下旬,同時也可以看到,它們最初均使用指向尼日利亞的基礎設施。值得注意的是,這些域名解析使用的IP總不定期在常用的IP地址段來回切換。具體如圖5-2所示。

圖5-2 動態域名解析的IP地址

我們將C&C對應的IP地址所屬國家和地區進行統計,并繪制其地理位置分布圖(如圖5-3所示)。整體來看,美國和法國占比率最高,其次為荷蘭。

圖5-3 C&C對應的IP地理位置分布圖

5.2 關聯性分析

啟明星辰ADLab將本次捕獲到的樣本同以往SWEED活動做了全面的關聯分析,得出以下幾處重要的關聯點:

(1)漏洞文檔

在此次行動中攻擊組織使用的漏洞文檔有兩類(CVE-2017-11882和CVE-2014-6357),其中以CVE-2017-11882漏洞利用文檔為主要攻擊載荷。而SWEED組織也曾在以往的攻擊行動中頻繁的使用過該漏洞文檔。具體如圖5-4所示。

圖5-4 漏洞文檔案例

(2)攻擊目標

根據公開報告可以得知,SWEED黑客組織的攻擊目標主要針對全球從事對外貿易的中小型企業,并且所涉及的行業主要以制造業、航運、物流和運輸為主。這與我們此次監測到的攻擊行動中受害者的地理位置和行業分布具有較高的相似性。圖5-5列舉了幾例在本次攻擊活動中攻擊者發送給目標用戶的釣魚郵件。

圖5-5 釣魚郵件案例

(3)攻擊武器

在目前觀測到的行動中,攻擊者最終投放的惡意軟件包括Agent Tesla、Remcos、NanoCore、Formbook和Lokibot。我們將捕獲的所有惡意軟件按家族分類和統計,根據結果顯示,Agent Tesla的占比率處于最高,是攻擊者重點使用的攻擊武器。而這種使用特征也曾反復出現在SWEED組織以前的攻擊活動中。

圖5-6 惡意軟件家族占比率

(4)IP地址位置

我們通過Whois信息查詢,發現在此次行動中的域名“mogs20.xxx.org”早期解析的IP(105.112.XXX.XXX)地理位置指向尼日利亞,該網段歸屬尼日利亞地區電信的105.112段。這與SWEED組織所屬國家具有高度的一致性。

圖5-7 Whois查詢信息內容

結合SWEED組織一系列的攻擊活動特點以及上面總結的四點可以看出,攻擊者在攻擊動機(竊取用戶信息以牟利)、攻擊目標(針對全球對外貿易的中小企業)、作業風格(投遞定制型釣魚郵件分發木馬)、戰術(規避檢測、常駐、命令與控制)、技術(漏洞利用)、過程(發送攜帶惡意附件的郵件->漏洞文檔->解密運行Agent Tesla遠控木馬)以及其使用的網絡基礎設施等方面都十分符合SWEED組織的特征。由此我們推斷,此次攻擊活動幕后者很可能是來自尼日利亞的SWEED黑客組織。

六 總結

迄今為止SWEED黑客組織至少已活躍了4年的時間,從該組織近期的攻擊可以發現,SWEED開始使用更具有針對性的郵件內容和更具迷惑性的文檔標題,從而提高受害者中招的概率。啟明星辰ADLab將該組織此次行動TTP的研究分析結果與以往跟進或披露的相關攻擊行動特性做比對后,得到的相關證據都可表明這些樣本來自SWEED黑客組織。

SWEED組織使用Guloader下載器傳播的遠程木馬種類雖然多樣化,但主要還是以其偏好的Agent Tesla為主。從其所使用的TTP來看,該黑客組織目前并未具備很好的自研開發能力。在多數情況下,僅會從國外一些主流黑客網站上購買木馬生成器和加密工具來作為攻擊武器,例如曾使用的KazyCypter和此次使用的Guloader。不過,即便攻擊者在技術能力上相對較弱,但其在社工技巧和多樣化攻擊方式的應用面上還是較為熟練的。在此,建議用戶盡量避免打開不明來歷的郵件以及附件文件(來自未知發送者的),及時安裝系統補丁,提高風險意識,防范此類惡意軟件攻擊。

七 IOC

MD5
F97CFA6C3F1338B597768808FC1B2F00
B1941921571C2B6ED0C3BDA77E402001    
DD82B2E488811E64BB9C039C441DB19C
EC4CF91427DAC3AD29CD2A52B0789DC6
166FD7B0C74C60DCBC80BF335D712EA2
BCBCC89F237B22F21BDAE9E6555404A
60147B91AB7B64B9BE27BD3422147E60
48408BBE8D9EE22D6BBB6820FCCC305F
7DDA46F2D9008FAE016AFFF39E9C5801
A22A37E699C20D42753D35A94A75B365
C36C41EB6A34880459154334681C203A
6BC92ACB050A2068EFF4842A1D360938
FB7ED44C2BAAA6F011F7BF51DE721BC4
58604AE63AEA84483C67980369958ACB
312BFAFE6746645E72FCB84ECBFB023C
779EB99965F1AAC12363632468DF7DCE
DD49030C00EF3C2341BCBE4489DCEF63
IP
167.114.85.125
URL
https://drive.google.com:80/uc?export=download&id=1lmmu6kv5ep_wkm7hfyhdshru-y1n2pqv
https://onedrive.live.com/download?cid=554BBD19BDD72613&resid=554BBD19BDD72613!156&authkey=AGIuaWEkkBxB_4o
https://drive.google.com/uc?export=download&id=1W3ddZnmArVGhsecoWW5KcQAKPZ9OacLU
https://share.dmca.gripe/iQakn267f3ZvpDN.bin
http://167.114.85.125/go/Origin%20server%20ilyas_tTzYDNEGay108.bin

八 參考鏈接:

[1] https://www.fortinet.com/blog/threat-research/new-agent-tesla-variant-spreading-by-phishing
[2] https://www.fireeye.com/blog/threat-research/2017/10/formbook-malware-distribution-campaigns.html
[3] https://www.fortinet.com/blog/threat-research/new-infostealer-attack-uses-lokibot
[4] https://success.trendmicro.com/solution/1122912-nanocore-malware-information
[5] https://www.fortinet.com/blog/threat-research/remcos-a-new-rat-in-the-wild-2


Paper 本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.jmbmsq.com/1265/