Jump to content

近日,ESET 研究人員深入研究了Donot組織在2020 年和2021 年期間針對多個南亞國家的政府和軍事對象實施的攻擊。

Donot組織(也稱為APT-C-35 和SectorE02)是一個至少從2016年開始運營的威脅組織,並以使用Windows和Android惡意軟件攻擊南亞的組織和個人而聞名。 Amnesty International最近的一份報告將該組織與一家印度網絡安全公司聯繫起來,後者可能正在向該地區的政府出售間諜軟件或提供黑客出租服務。

我們一直在密切關注Donot組織的活動,並追踪了幾起利用源自該組織的簽名yty 惡意軟件框架的Windows 惡意軟件的活動。根據我們的發現,這個組織非常執著地攻擊者一個目標,至少在過去的兩年裡一直以相同的組織為目標。

我們會在本文介紹最近活動中使用的惡意軟件的兩種變體——DarkMusical 和Gedit。對於每一種變體,我們都會分析整個攻擊鏈,並深入了解該組織如何更新其工具、策略和技術。

攻擊目標分析Donot組織的活動以間諜活動為主要載體,使用他們的簽名惡意軟件:“yty”惡意軟件框架,其主要目的是收集和洩露數據。根據我們的追踪,Donot組織專注於南亞的幾個目標——孟加拉國、斯里蘭卡、巴基斯坦和尼泊爾——如下圖所示。

1.png

Donot組織專注的目標國家

這些攻擊集中在:

政府和軍事組織;

外交部;

大使館;

除了南亞的幾個國家之外,如中東、歐洲、北美和拉丁美洲的國家也在Donot組織的攻擊範圍之內。

對於APT運營商來說,在某些情況下,這是通過部署一個更隱蔽的後門來實現的,該後門在攻擊者需要它之前一直保持安靜。在其他情況下,他們只是用新的惡意軟件或以前使用過的惡意軟件的變體重新啟動操作。後者是Donot組織操作人員的情況,只是他們在嘗試中非常堅持。

根據ESET的分析,Donot組織每隔兩到四個月就會針對同一對象發送一波又一波帶有惡意附件的釣魚郵件。有趣的是,我們能夠檢索和分析的電子郵件並沒有顯示出被誘騙的跡象。一些電子郵件是從受到攻擊的同一組織發送的。攻擊者可能已經在早期的活動中攻擊了一些受害者的電子郵件帳戶,或者這些組織使用的電子郵件服務器。

通過魚叉式網絡釣魚電子郵件,攻擊者使用惡意Microsoft Office 文檔來部署他們的惡意軟件。我們已經看到Donot組織至少使用了三種技術。一種是Word、Excel 和PowerPoint 文檔中的宏,如下圖所示。

2.png

PowerPoint 文檔中的惡意宏,它刪除了一個下載器可執行文件並創建了一個計劃任務來運行它

第二種技術是具有.doc擴展名的RTF文件,該文件利用方程編輯器中的內存破壞漏洞CVE-2017-11882,如下圖所示。這些RTF 文檔還包含兩個作為OLE 對象的嵌入式DLL,用於安裝並下載更多組件(這兩個DLL 都在Gedit 部分中進行了描述)。這允許攻擊者執行shellcode 並且不需要用戶交互,shellcode 部署了惡意軟件的主要組件。 CVE-2017-11882是微軟公佈的一個遠程執行漏洞,通殺目前市面上的所有office版本及Windows操作系統。該漏洞的成因是EQNEDT32.EXE進程在讀入包含MathType的ole數據時,在復制公式名稱名稱時沒有對名稱長度進行校驗,從而造成棧緩衝區溢出,是一個非常經典的棧溢出漏洞。上次出現這麼典型的office棧溢出漏洞是著名的CVE-2012-0158。

3.png

RTF 文檔用於加載公式編輯器的COM 對象的CLSID,隨後的OLE 對象包含CVE-2017-1182 漏洞利用

4.png

DLL 的OLE 對象標頭也嵌入在RTF 文檔中

第三種技術是遠程RTF 模板注入,它允許攻擊者在打開RTF 文檔時從遠程服務器下載有效負載。這是通過在RTF 文件格式的可選\*\template 控製字中插入URL 而不是本地文件資源的位置來實現的。 Donot組織使用的有效負載是另一個利用CVE-2017-11882 的文檔,下載後會自動加載,如下圖所示。

5.png

當Word 打開帶有遠程模板的RTF 文件時,它會自動嘗試下載資源

yty惡意軟件框架由NetScout 在2018 年發現的yty 惡意軟件框架是舊框架EHDevel 的一個不太複雜且開發不佳的變體。 yty框架由一系列下載程序組成,這些下載程序最終會下載一個帶有最小功能的後門程序,用於下載和執行Donot組織工具集的其他組件。

其中包括基於文件擴展名和創建年份的文件收集器、屏幕捕獲器、鍵盤記錄器、反向shell 等。如下圖所示,用於滲透的組件從暫存文件夾收集收集的情報,並將每個文件上傳到僅用於此目的的指定服務器。

6.png

解析暫存JPEG 屏幕截圖的文件夾名稱的組件(左)和在暫存文件夾中查找所有文件的滲透組件(右)

幾乎每個新的攻擊活動都會更改暫存文件夾的名稱和位置,以及一些組件的文件名。但是,在某些情況下,組件的名稱保持不變,例如:gedit.exe、wuaupdt.exe、lmpss.exe、disc.exe 等。如下圖所示,似乎對於每個新的活動,為了設置新的路徑和文件名,必須在源代碼中更改這些值然後重新編譯,因為這些組件都沒有使用配置塊或文件。

7.png

包含經常更改的位置和文件名的加密字符串(頂部)和用於構建CC URL 的未加密值(底部)

該惡意軟件使用計劃任務進行持久化攻擊,並在活動之間交替使用DLL 和EXE 文件。對於DLL,計劃任務執行rundll32.exe 以加載它們並執行導出的函數之一。

yty框架的開發人員主要依賴c++編程語言,可能是為了逃避檢測,他們還將其組件移植到其他語言,例如VBScript、Python(與PyInstaller 一起打包)、Visual C# 和AutoIt 等。然而,自2019 年以來,我們只看到他們利用C++和Go編程的組件。

8.png

捕獲屏幕截圖的組件的反編譯代碼,最初是用c++編寫的

9.png

用於用Go編寫的版本的組件截圖的反編譯代碼

該惡意軟件在部署過程中有時會使用兩到三個服務器。它可能在其下載鏈中使用一個服務器,而後門可能會使用另一台服務器來接收其命令並下載更多組件,或者將同一台服務器用於這兩種目的。總是使用不同的服務器上傳收集的信息。在一些攻擊中,Donot組織重用了以前攻擊的CC域——用於下載和滲透。如下圖所示,這些組件(後來被認為是DarkMusical 的變體)在同一攻擊中使用,採用了三個不同的CC 域。

10.png

第一個下載器解密服務器的URL,從該服務器下載鏈的下一個階段

11.png

在後期階段,後門使用不同的服務器進行CC 通信

12.png

滲透組件使用第三個服務器上傳收集的文件時間軸的攻擊

我們在本文中描述了從2020 年9 月到2021 年10 月的Donot組織在活動中使用的惡意軟件變體,重點關注他們的Windows 惡意軟件。為清楚起見,我們將它們分為yty 惡意軟件框架的兩個變體:Gedit 和DarkMusical,其中一個使用Gedit的特定活動,我們將其命名為Henos。

根據我們的追踪分析,攻擊的時間線如下圖所示。統計時,還包括了來自另一個變體的攻擊,稱為“Jaca框架”。然而,我們不會在本文描述它,因為它已在CN-SEC中進行過介紹。

13.png

從2020年9月到2021年10月,Donot組織的攻擊時間線

DarkMusical根據ESET 的分析,使用此變體的第一波攻擊發生在2021 年6 月,針對孟加拉國的軍事組織。我們只能恢復其下載鍊及其主要後門。鑑於受害者人數很少,我們認為這可能是一次針對性很強的攻擊。

9 月,針對尼泊爾軍事組織的第二波攻擊使用了新的CC 服務器以及文件和暫存文件夾名稱。我們能夠恢復一些從後門下載的組件,進而分析這些攻擊。

魚叉式釣魚郵件發送的PowerPoint文檔中包含一個宏,該宏部署了下載鏈的第一個組件,並使用一個計劃任務進行持久化。當潛在的受害者打開這些文檔時,他們將看到一條虛假的錯誤消息,如下圖所示,這些文檔將仍然沒有任何可見的內容。

14.png

一個空白的惡意PowerPoint 文檔的屏幕截圖

如下圖所示,下載程序鏈旨在下載最終組件,該組件用作具有最少功能的後門:它下載獨立組件,使用ShellExecute Windows API 執行它們,獲取並保存新的CC URL。 ShellExecute的功能是運行一個外部程序或者是打開一個已註冊的文件、打開一個目錄、打印一個文件等,並對外部程序有一定的控制。

後門將處理信息收集和洩露的組件下載到專用服務器。這些組件不與後門或CC 通信以報告其活動。相反,它們使用指定的文件夾來暫存數據,一個單獨的滲透組件將收集所有內容並上傳。

15.png

觀察到的DarkMusical攻擊鏈

我們決定將此活動稱為DarkMusical,因為攻擊者為其文件和文件夾選擇名稱時,許多是西方名人或電影中的角色。下表簡要描述了攻擊鏈中每個組件的用途。

DarkMusical 攻擊活動鏈中的組件:

16.png

我們在下表中描述了攻擊者工具集的每個組件的用途。

攻擊者DarkMusical 工具集中的組件描述:

16加.png

geditgedit是一個GNOME桌面環境下兼容UTF-8的文本編輯器,它使用GTK+編寫而成,它十分的簡單易用,有良好的語法高亮,支持包括gb2312、gbk在內的多種字符編碼,是一個自由軟件。

我們在2020 年9 月使用Gedit 檢測到該活動的首次攻擊,攻擊對像是巴基斯坦的一些組織,這些組織已經成為安裝了Jaca框架的魚叉式釣魚和惡意RTF文件的目標。從那時起,Donot組織開始將目標定位在孟加拉國、尼泊爾和斯里蘭卡。雖然該惡意軟件顯然源自yty 惡意軟件框架,但它們是截然不同的,與DarkMusical是兩個獨立的程序。

我們能夠檢索到與2021年2月發生的Gedit活動對應的魚叉式釣魚電子郵件,如下圖所示。第一個附件包含一份來自孟加拉國軍事對象的人員名單(沒有惡意內容)。在執行惡意代碼時,第二個附件只顯示了一個空白頁面。

17.png

攻擊者發送的魚叉式釣魚電子郵件的屏幕截圖

我們可以看到第二個文件的大小大於2 MB,這是一個利用CVE-2017-11882 刪除文檔中包含的兩個DLL 文件並執行其中一個的RTF 文件。其他組件在各個階段下載到受感染的計算機上。此攻擊鍊及其惡意軟件組件的概述如下圖所示。

18.png

Gedit 活動中的攻擊鏈

這些組件是用Go 和C++(使用MinGW 和Visual Studio 編譯器)編寫的。我們選擇描述2021 年2 月該活動中使用的組件,如下表所示。

對Gedit 變體的組件描述19.png

Henos攻擊活動

最後,值得一提的是,在2021年2月至3月間發生了一系列針對孟加拉國和斯里蘭卡軍事組織的攻擊。這些攻擊使用了Gedit惡意軟件的變體,但進行了一些小的修改。因此,我們決定將這個活動以它的後門DLL – henos.dll 命名命名為Henos。

去年2月,網上也公開了屬於這波攻擊的組件的樣本,這可能解釋了為什麼該組織不再使用這些組件的原因。

雖然我們沒有找到相應的魚叉式釣魚郵件或惡意文檔,但攻擊鏈與我們上面描述的大致相同,只是在組件的執行方式上存在一些細微差別。下圖對此進行了概述。

20.png

Henos 活動的攻擊鏈

雖然該活動的某些組件被命名為javatemp.exe 和pytemp.exe,但選擇這些文件名可能只是為了模仿Java 或Python 等合法軟件。 pytemp.exe 和plaapas.exe 是用Go 語言編碼的,而javatemp.exe 是用C++ 編碼的(用MinGW 編譯的)。

最後一點是執行文件洩漏的組件pytemp.exe 會執行檢查以查看gedit.exe 是否正在運行。如果找到兩個或更多實例,則退出。我們認為這是開發時候的錯誤,因為它應該檢查pytemp.exe。然而,這個簡單的錯誤幫助我們將Henos 活動與惡意軟件的Gedit 變體(添加到代碼相似性中)聯繫起來。

0 Comments

Recommended Comments

There are no comments to display.

Guest
Add a comment...