當前位置:
首頁 > 最新 > APT 32組織裝備新型「網路攻擊武器」,亞信安全強力解讀

APT 32組織裝備新型「網路攻擊武器」,亞信安全強力解讀

安全預警

海蓮花APT組織(又名APT 32,APT-C-00,SeaLotus和Cobalt Kitty)是一個高度組織化的、專業化的境外黑客組織,該APT組織主要針對人權組織、媒體、研究機構和海事建築公司等進行高級持續性攻擊。亞信安全多年來一直持續追蹤海蓮花組織,近日,我們發現該組織使用最新的MacOS後門程序,對裝有Perl程序的Mac系統進行攻擊,亞信安全截獲了該後門程序,並將其命名為OSX_OCEANLOTUS.D。

亞信安全詳解:OSX_OCEANLOTUS.D攻擊技術

MacOS後門程序通過帶有惡意word文檔的電子郵件傳播,Word文檔原始文件名為「2018-PHI?U GHI DANH THAM D? T?NH H?I HMDC 2018.doc」, 翻譯成中文就是「2018年HMDC大會登記表」, 而HMDC是一個在越南宣傳民族獨立和民主的組織。

【惡意文檔運行時的截圖】

當收件人打開該文檔時,該後門程序會建議收件人啟用宏。而這個惡意宏則採用了十進位ASCII代碼逐個字元地進行混淆,以逃避各種殺毒軟體的檢測。

【文檔混淆後的代碼片段】

去除混淆後,我們可以看到有效負載是用Perl編程語言編寫的。它會從Word文檔中提取theme0.xml文件。theme0.xml是一個帶有0xFEEDFACE簽名的Mach-O 32位可執行文件,其也是該後門程序最終有效載荷。theme0.xml在執行之前會先解壓到/ tmp / system / word / theme / syslogd目錄。

【去除混淆後的Perl有效載荷】

Dropper分析

Dropper用於將後門安裝到受感染系統中並建立其持久性攻擊機制。

【Dropper的主要功能】

Dropper的所有字元串以及後門均使用硬編碼的RSA256密鑰進行加密。其中,有兩種形式的加密字元串:RSA256加密的字元串,以及自定義的base64編碼和RSA256加密的字元串。

【硬編碼的RSA256密鑰會顯示前20個字元】

Dropper會使用setStartup()方法來判斷其是否以root身份運行。並以此做為依據,使用GET_PROCESSPATH和GET_PROCESSNAME方法對後門安裝的路徑和文件名進行解密:

root用戶

路徑:/Library/CoreMediaIO/Plug-Ins/FCP-DAL/iOSScreenCapture.plugin/Contents/Resources/

進程名:screenassistantd

普通用戶

路徑:?/ Library / Spelling /

進程名:spellagentd

隨後,它使用Loader :: installLoader方法,讀取硬編碼的64位Mach-O可執行文件(magic value 0xFEEDFACF),並寫入先前確定的路徑和文件。

【Dropper安裝後門,將其屬性設置為「hidden」,並設置隨機文件的日期和時間】

當Dropper安裝後門時,其會將屬性設置為「hidden」,並使用touch命令將文件日期和時間設置為隨機值:touch -t YYMMDDMM「/ path / filename」> / dev / null。與此同時,訪問許可權被更改為0x1ed = 755,相當於u = rwx,go = rx。

【Mach-O 可執行文件(64位)的magic value 0xFEEDFACF】

用GET_LAUNCHNAME和GET_LABELNAME方法為root用戶(com.apple.screen.assistantd.plist)和普通用戶(com.apple.spell.agent.plist)返回屬性列表「 .plist 」 的硬編碼名稱。之後,其會在/ Library / LaunchDaemons /或?/ Library / LaunchAgents / 文件夾中創建持久性文件。當操作系統啟動時,RunAtLoad用來運行守護進程,而KeepAlive使進程無限期地運行。該持久性文件被設置為掩藏屬性,文件的時間和日期也是隨機生成的。

【具有持久性設置的屬性列表】

launchctl load /Library/LaunchDaemons/filename.plist> / dev / nul或launchctl load?/ Library / LaunchAgents / filename.plist> / dev / nul命令使得操作系統在登錄時啟動生成的後門文件,隨後Dropper將會刪除自身。

後門分析

後門包含兩個主要函數infoClient和runHandle。infoClient負責將收集到的操作系統信息發送給C&C伺服器(伺服器本身是惡意的),並接收來自C&C伺服器的返回信息,而runHandle負責後門功能。

【後門的主要功能】

infoClient在HandlePP類中填充的變數:

【HandlePP類的變數列表】

clientID是從環境變數衍生的MD5哈希,而strClientID是clientID的十六進位表示。以下所有字元串均通過AES256和base64編碼加密。HandlePP :: getClientID方法使用的是下面的環境變數:

【序列號】

【硬體UUID】

【MAC地址】

【隨機生成的UUID】

對於初始信息包,後門還收集以下信息:

【操作系統版本】

運行getpwuid - > pw_name,scutil - -get ComputerName和uname -m將分別提供以下返回值:

· Mac OSX 10.12.

· System Administrator

· 』s iMac

· x86_64

所有這些數據在發送到C&C伺服器之前都被加密。詳細過程如下所述:

1. 擾碼

類解析器的方法有多種,每個變數類型的解析方法各不同,比如 Parser::inBytes, Parser::inByte, Parser::inString以及 Parser::inInt.。

【Parser :: inByte方法】

如果clientID等於以下位元組序列B4 B1 47 BC 52 28 28 73 1F 1A 01 6B FA 72 C0 73,那麼這個擾碼的版本就是使用第三個參數(0x10)計算的,其被當做一個DWORD來處理,每4個位元組都與它進行異或,如下例所示。

【Parser :: inByte方法】

當擾碼一個位元組時,擾碼器首先確定位元組值是奇數還是偶數。如果該值為奇數,則將該位元組和一個隨機生成的位元組一起添加到數組中。在偶數值的情況下,首先添加隨機生成的位元組,然後添加該位元組。在上面的例子中,第三個參數是"1"= 0x31,這是一個奇數。這意味著它將位元組"1"和一個隨機生成的位元組添加到最終的擾碼陣列。

【Parser :: inString方法】

擾碼一個字元串時,擾碼器產生一個5位元組長的序列。首先,它產生一個隨機位元組,隨後是三個零位元組,一個隨機位元組,最後是字元串長度的位元組。假設我們想要混淆字元串 "Mac OSX 10.12"。它的長度是13 = 0x0d,兩個隨機位元組是0xf3和0x92。最後的5位元組序列看起來像F3 00 00 00 92 0D,然後原始字元串與5位元組序列異或。

【擾碼Mac OSX 10.12】

2. 加密

加密的位元組序列被傳遞到Packet :: Packet類的構造函數中,該類創建隨機AES256密鑰並使用此密鑰加密緩衝區。

3. 編碼加密密鑰

為了使C&C伺服器解密和加密數據,隨機生成的AES256密鑰必須與加密數據一起包含在數據包中。然而,這個密鑰也是通過異或操作XOR 0x13進行擾碼的,隨後對每個位元組應用ROL 6操作。

【在輸出數據包中擾碼AES256密鑰的函數】

擾碼和加密過程中的一些屏幕截圖:

【灰色部分的位元組表示已加密的計算機信息】

【隨機生成AES256密鑰】

【擾碼的AES256密鑰(0xC1異或0x13 = 0xD2,0xD2 ROL 6 = 0xB4)等)】

【使用AES256密鑰加密的計算機信息】

【發送到C&C伺服器的最終有效載荷的屏幕截圖,擾碼的AES256密鑰標記為綠色,而加密的計算機信息標記為紅色,其他是隨機生成的位元組】

當後門收到來自C&C伺服器的響應時,最終有效載荷需要通過解密和擾碼類似的方式進行解碼。 Packet :: getData解密接收到的有效載荷,而Converter::outString 負責對結果進行解擾。

從C&C伺服器收到的數據包含以下信息:

HandlePP :: urlRequest(/appleauth/static/cssj/N252394295/widget/auth/app.css)

HandlePP :: keyDecrypt

STRINGDATA :: BROWSER_SESSION_ID(m_pixel_ratio)

StringData是:: RESOURCE_ID

這些數據稍後將在C&C通信中使用,如下面的Wireshark屏幕截圖所示:

【交換系統數據包信息後與C&C伺服器的通信】

同時,該後門程序的runHandle方法將使用以下後門命令(每個命令有一個位元組長的代碼並由Packet :: getCommand提取)調用requestServer方法:

【getCommand 方法】

如下兩個示例都創建了一個線程,每個線程負責下載和執行文件或在終端中運行命令行程序:

【用於下載和執行以及在終端中運行命令的命令】

【用於上傳和下載文件的命令】

【支持的命令及其各自的代碼】

亞信安全解決方案

亞信安全病毒碼版本14.213.60 (雲病毒碼版本14.215.71,全球碼版本14.213.00)已經可以檢測,請用戶及時升級病毒碼版本。

亞信安全郵件安全網關產品,可以有效攔截釣魚攻擊郵件,在源頭上進行阻斷。

「海蓮花」組織使用最新後門程序,意味著該組織不僅仍處於活躍狀態,而且還在不斷升級自己的武器庫。儘管Mac系統被公認為是更加安全的系統,但並不表示Mac系統就絕對安全。因此,無論使用什麼操作系統版本,用戶都很有必要警惕網路釣魚活動,並採取主動防禦措施。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 亞信安全 的精彩文章:

你的手機也許已經是一個「區塊鏈手機」了
數據泄露又添新途徑,不聯網不接觸也跑不掉

TAG:亞信安全 |