Jump to content

abstract_digital_japan-1200x600.jpg自2019年以來,卡巴斯基一直在跟踪涉及LODEINFO惡意軟件家族的活動,尋找迭代版本,並徹底調查利用這些新變體的任何攻擊。 LODEINFO是一種複雜的無文件惡意軟件,最在2020年2月就被發現被命名了。惡意軟件被開發人員定期修改和升級,專門針對日本的媒體、外交、政府和公共部門組織和智庫。

1.png

日本可能是LODEINFO的主要目標

此後,研究人員繼續追踪LODEINFO。 JPCERT/CC和Macnica Networks都報導過其迭代版本。卡巴斯基研究人員還在2021 HITCON會議上分享了新發現,涵蓋2019年至2020年的LODEINFO活動。

在2022年3月,卡巴斯基研究人員觀察到一個Microsoft Word文件被用作一些攻擊的感染媒介。同年6月,針對日本政府或相關機構的SFX文件被發現,文件中使用了日本著名政治家的名字,並使用了含有日本內容的誘餌文件。還觀察到一個名為DOWNIISSA的新的下載程序shellcode,用於部署LODEINFO後門。

接下來,我們將首先介紹新的感染方法的技術分析,如SFX文件和DOWNIISSA以及我們的發現。之後將介紹LODEINFO後門的技術分析,以及每個版本的後門的相關shellcode。

初始感染:VBA + DLL側加載在對2022年3月的攻擊進行調查期間,我們發現了一封帶有惡意附件的魚叉式釣魚電子郵件,其中安裝了惡意軟件持久性模塊,該模塊由合法的EXE文件和通過DLL側加載技術加載的惡意DLL文件組成。例如,以下部分描述了一個上傳到Virustotal的惡意Microsoft Word文件(MD5: da20ff8988198063b56680833c298113)。一旦目標打開惡意文檔文件,就會顯示一條日語消息:根據您的網絡安全設置,單擊上面黃色文檔欄上的“啟用編輯”和“啟用內容”以打開該文件。誘餌受害者點擊“啟用內容”並啟用嵌入式宏。

2.png

欺騙目標點擊“啟用內容”並嵌入VBA代碼日文信息

嵌入的VBA代碼創建文件夾C:\Users\Public\TMWJPA\,並在同一文件夾中釋放一個名為GFIUFR.zip (MD5: 89bd9cf51f8e01bc3b6ec025ed5775fc)的壓縮文件。 GFIUFR.zip包含兩個文件:NRTOLF.exe和K7SysMn1.dll。 NRTOLF.exe (MD5: 7f7d8c9c1b6735807aefb0841b78f389)是一個數字簽名的合法EXE文件,來自K7Security Suite軟件,用於DLL側加載。 K7SysMn1.dll (MD5: cb2fcd4fd44a7b98af37c6542b198f8d)是NRTOLF.exe附帶加載的惡意DLL。惡意DLL文件包含LODEINFO shellcode的加載程序。這個DLL是一個已知的LODEINFO加載程序模塊。它包含一個由0.5.9版本內部識別的單字節XOR加密LODEINFO外殼代碼。在我們調查的前幾次攻擊中,攻擊者也使用了這種感染方法。

除此之外,我們還發現了另外兩個與LODEINFO相關的植入程序。

初始感染2:SFX + DLL側加載其中一個植入程序是RAR格式的自解壓存檔(SFX)文件(MD5 76cdb7fe189845a0bc243969dba4e7a3),該文件也上傳到了Virustotal。類似地,歸檔文件包含三個文件,分別為1.docx、K7SysMn1.dll和K7SysMon.exe,其中包含如下所示的自解壓腳本命令。惡意軟件開發者還添加了一條用日語寫的評論,可以翻譯為“以下評論包含一個自解壓腳本命令”:

3.png

當目標用戶執行這個SFX文件時,歸檔文件將其他文件放置到%temp% dir,並將1.docx作為一個僅包含幾個日語單詞的誘餌打開,如下圖截圖所示。

4.png

來自1.docx的簡單誘餌文檔內容

在向用戶顯示一個誘餌文件時,歸檔腳本啟動K7SysMon.exe,它通過DLL側加載從K7SysMn1.dll (MD5: a8220a76c2fe3f505a7561c3adba5d4a)加載惡意DLL。 k7sysmm1 .dll包含一個BLOB,其中有一個模糊的例程,在過去的活動中沒有觀察到。嵌入式BLOB被劃分為4字節塊,每個部分存儲在DLL二進製文件的50個隨機命名的導出函數中的一個中。這些導出函數在分配的緩衝區中重構BLOB,然後使用一個單字節的XOR鍵解碼LODEINFO shellcode。

5.png

重新組裝有效負載BLOB

最終由該植入程序部署的負載是LODEINFO v0.6.3。

初始感染3:SFX + DLL側加載+額外的BLOB文件我們還發現了另一個類似的SFX文件,名為<masked>的sns電影的傳播請求。攻擊者利用了一位著名日本政治家的名字。嵌入的自解壓腳本和文件與本文的初始感染2部分中討論的前一個示例非常相似。但是,這個示例包含一個名為K7SysMon.Exe.db的附加文件。以前觀察到的加載程序模塊在可執行文件中嵌入了一個帶有加密shellcode的BLOB,但是在這個示例K7SysMn1.dll中不包含BLOB。相反,加載程序模塊讀取K7SysMon.Exe.db文件作為加密的BLOB,並解密shellcode,這是LODEINFO v0.6.3後門。 SFX文件的標題和文件的內容都是要求在SNS(社交網絡服務)上傳播這位著名政治家的視頻的內容。根據最後的歸檔時間戳,我們認為該SFX文件是在2022年6月29日通過魚叉式網絡釣魚郵件傳播的。從文件名稱和誘餌文件來看,目標是日本執政黨或相關機構。

2022年7月4日,另一個SFX文件(MD5 edc27b958c36b3af5ebc3f775ce0bcc7)被發現。存檔文件、有效載荷和C2地址與前面的示例集非常相似。唯一明顯的區別是這份誘餌文件的日文標題:投保申請。我們認為這個SFX文件可能被用來針對日本媒體公司。

初始感染4:VBA +未發現的下載程序shellcode downniissa早在2020年8月,我們發現了一個名為DOWNJPIT的無文件下載程序shellcode,這是LODEINFO惡意軟件的一個變體,並在HITCON 2021上就其進行了演示。 2022年6月,我們發現了另一個無文件下載程序shellcode,它由一個有密碼保護的Microsoft Word文件提供。文件名為增強日美同盟的威懾力和應對能力.doc。該文檔文件包含的惡意宏代碼與之前調查的樣本完全不同。打開後,該文檔文件顯示一條日文消息,以啟用以下VBA代碼。

6.png

2022年6月發現MS Word文件中的惡意VBA代碼

與過去的示例(如本文初始感染1中描述的示例)不同的是,惡意VBA宏被用來釋放DLL側加載技術的不同組件,在這種情況下,惡意宏代碼直接在WINWORD.exe進程的內存中註入並加載嵌入的shellcode。這個植入程序在過去的活動中是不存在的,shellcode也是LODEINFO v0.6.5的一個新發現的多級下載程序shellcode。

這個下載程序的shellcode完全不同於DOWNJPIT的變體。新的下載程序shellcode裡面有兩個URL:

http://172.104.112[.]218/11554.htm

http://www.dvdsesso[.]com/11554.htm

我們將這個新的下載程序命名為DOWNIISSA,其中IISSA是url中找到的文件名中的11554派生的字符串。下圖顯示了從惡意文檔文件到DOWNIISSA下載的最終有效負載的複雜感染流程。

7.png

通過DOWNIISSA的LODEINFO感染過程

如上所述,嵌入式宏生成DOWNIISSA shellcode並將其註入到當前進程(WINWORD.exe)中。主要的下載程序代碼是base64編碼的,並放在DOWNIISSA shellcode的開頭,由shellcode本身進行解碼和修補。

8.png

DOWNIISSA base64解碼和自修復

在它被解碼後,一些重要的字符串被發現是用一個字節的異或加密。例如,兩個C2目的地址用以下代碼解密。

9.png

DOWNIISSA shellcode主函數中嵌入的異或C2目的地

DOWNIISSA使用URLDownloadToFileA() API函數從URL地址下載BLOB,並將其釋放在%TEMP%/${TEMP}.tmp。然後,它將文件讀入當前進程中分配的內存中,並立即釋放下載的臨時文件。我們確認了這兩個URL都提供了相同的二進制數據,該數據與存儲在BLOB本身末尾的一字節XOR鍵進行了XOR。異或解密後,發現LODEINFO後門shellcode v0.6.5。在感染的最後階段,DOWNIISSA創建一個msiexec.exe實例,並在進程的內存中註入LODEINFO後門shellcode。

這個涉及DOWNIISSA shellcode的新感染流在之前使用LODEINFO的活動中沒有出現過,這是2022年的一個新的TTP。

除了在這個示例中找到的11554.htm文件,我們還發現了其他名稱的文件,如3390.htm, 5246.htm和16412.htm,在2022年7月託管在相同的C2服務器上。 3390.htm (MD5: 0fcf90fe2f5165286814ab858d6d4f2a)和11554.htm (MD5: f7de43a56bbb271f045851b77656d6bd)是通過downniissa惡意軟件下載的單字節異或lodeinfo v0.6.5 shellcode。每個示例的XOR鍵都在文件末尾找到。 5246.htm (MD5: 6780d9241ad4d8de6e78d936fbf5a922)和16412.htm (MD5: 15b80c5e86b8fd08440fe1a9ca9706c9)文件是單字節異或唯一數據結構。 5246.htm文件中的數據結構如下所示:

10.png

該數據結構包含三個文件的名稱:K7SysMon.exe, K7SysMn1.dll (MD5: c5bdf14982543b71fb419df3b43fbf07)和K7SysMon.exe.db (MD5: c9d724c2c5ae9653045396deaf7e3417)。這表明一個未被發現的下載程序模塊從C2下載5246.htm,以協助在受害者的設備上安裝一些嵌入式文件。

LODEINFO首次發現於2019年,LODEINFO及其感染方法不斷更新和改進,成為針對日本組織的更複雜的網絡間諜工具。 LODEINFO植入程序和加載程序模塊也不斷更新,以規避安全產品,並使安全研究人員的手動分析複雜化。

LODEINFO後門shellcode的演變如上所述,我們已經介紹了初始感染方法在不同的攻擊場景中有所不同,並且LODEINFO shellcode定期更新以用於每個感染媒介。接下來,我們將介紹2022年LODEINFO後門shellcode的改進。

卡巴斯基分別在3月、4月和6月調查了LODEINFO shellcode的新版本,即v0.5.9、v0.6.2、v0.6.3和v0.6.5。下圖顯示了該惡意軟件自發現以來的演變時間線。

2.1.png

LODEINFO發佈時間表

LODEINFO v0.5.6:使用古老的加密算法對C2通信進行多重加密這個從加載程序模塊中提取的LODEINFO v0.5.6 shellcode演示了針對某些安全產品的幾種增強規避技術,以及開發人員實現的三個新的後門命令。

在感染目標計算機之後,LODEINFO後門信標將計算機信息發送到C2,例如當前時間、ANSI代碼頁(ACP)標識符、MAC地址和主機名。信標還包含一個硬編碼密鑰(NV4HDOeOVyL),後來被古老的Vigenere密碼所使用。此外,隨機生成的垃圾數據被附加到數據的末尾,可能是為了逃避基於包大小的信標檢測。

2.2.png

在LODEINFO v0.5.6中增加了Vigenere密碼密鑰和隨機生成的垃圾數據

2021年12月,我們發現了LODEINFO v0.5.8,並進行了輕微修改,在Vigenere密碼密鑰後面添加了LODEINFO植入版本號。

用於發送數據的加密函數也被修改了,使其更加複雜。正如在前面的變體中觀察到的,它取要發送的數據的SHA512哈希值的前48個字節。然後,它使用一個等於運行時間的四字節XOR鍵XOR數據,並在數據之前進行預處理。發送的前16個字節來自另一個SHA512哈希值,這一次來自前面提到的硬編碼AES密鑰(NV4HDOeOVyL)。它在base64編碼的有效負載的末尾加密11個字節(用從“=”到“.”替換的填充),以動態生成第二個Vigenere密碼密鑰和最終生成數據的變量。 Vigenere密碼使用第二個密鑰加密base64編碼的標頭(url-safe替換了從“=”到“.”的填充)。

2.3.png

C2通信中的加密算法和數據流

最後,通過上面描述的複雜步驟,使用第二個密鑰、加密標頭和有效負載生成要發送到C2的數據。最終的數據包結構如下:

2.4.png

LODEINFO v0.5.6:用於後門命令標識符的2字節異或混淆

這次更新包括修改的加密算法和後門命令標識符,這些標識符在以前的LODEINFO shellcode中定義為四字節硬編碼值。 LODEINFO v0.5.6後門命令標識符被一個雙字節的異或操作混淆了。在比較命令標識符之前,對每個命令應用異或操作。對於每個命令,硬編碼的異或鍵不同,如下所示:

2.5.png

用於後門命令標識符的四字節堆棧字符串的兩字節異或

我們還觀察到攻擊者在LODEINFO v0.5.6及更高版本中實現了新的後門命令,如“comc”、“autorun”和“config”。 LODEINFO後門中嵌入了21條後門命令,包括3條新命令,用於控制受害主機。

LODEINFO v0.5.9:獲取API函數的哈希算法與v0.5.8相比,v0.5.9有一個新的哈希計算算法。該哈希算法被惡意軟件用來計算API函數名的哈希值,以解析函數地址。在本示例中,它似乎是由開發者開發的自定義算法。哈希計算的邏輯有一個XOR運算,在末尾有一個兩字節的鍵和一個硬編碼的XOR鍵,這在每個示例中都是不同的。

2.6.png

更改了哈希計算算法和v0.5.9中附加的雙字節異或鍵

這一修改表明,攻擊者的目標是逃避基於簽名的檢測,並使反向工程過程對安全研究人員來說更加困難。

LODEINFO v0.6.2:規避en_US環境在LODEINFO v0.6.2及更高版本中,shellcode有一個新特性,它在遞歸函數中查找受害者設備上的“en_US”區域設置,如果找到該區域設置,則停止執行。

2.7.png

如果找到“en-US”區域設置,則遞歸調用

根據卡巴斯基的調查,以及收集到的這個惡意軟件的開源情報,這些攻擊的主要目標是日本機構。因此,此功能的目的是避免在沙盒和研究人員設備上執行,這在英語語言環境中最常見。

LODEINFO v0.6.2:生成C2通信的用戶代理負責生成C2通信的用戶代理的函數也從v0.6.2更新了,惡意軟件使用以下硬編碼的格式化字符串生成用戶代理字符串,其中%s被替換為安裝的chrome.exe應用程序的版本號:

“Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36″

惡意軟件從以下其中一個文件路徑的EXE文件中獲取已安裝chrome.exe的版本號:

C:\ProgramFiles(x86)\Google\Chrome\Application\chrome.exe

C:\ProgramFiles\Google\Chrome\Application\chrome.exe

C:\Users\Administrator\AppData\Local\Google\Chrome\Application\chrome.exe

否則,如果系統上沒有這些文件,惡意軟件使用硬編碼版本98.0.4758.102創建以下用戶代理字符串:

Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/98.0.4758.102Safari/537.36

LODEINFO v0.6.2:支持在‘memory’ 命令中註入64位shellcode基於我們對該版本的深入分析,我們發現了一個非常有趣的更新,即從v0.6.2版本實現的shellcode加載方案,在處理' memory '命令的函數中。

2.8.png

檢查操作系統架構和下一個shellcode架構

在內存注入過程中,使用負責內存命令的函數執行,惡意軟件檢查第二階段shellcode的第一個字節,使用一個神奇的十六進制值確定shellcode體系結構。如果第一個字節為0xE9,則表示架構為32位。如果第一個字節為0x8D,則表示架構為64

0 Comments

Recommended Comments

There are no comments to display.

Guest
Add a comment...