您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關海蓮花APT組織使用最新MacOS后門程序發動攻擊的示例分析,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
海蓮花APT組織(又名APT 32,APT-C-00,SeaLotus和Cobalt Kitty)是一個高度組織化的、專業化的境外黑客組織,該APT組織主要針對人權組織,媒體,研究機構和海事建筑公司等進行高級持續性攻擊。亞信安全多年來一直持續追蹤海蓮花組織,近日,我們發現該組織使用最新的MacOS后門程序,對裝有Perl程序的Mac系統進行攻擊,亞信安全截獲了該后門程序,并將其命名為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-O32位可執行文件,其也是該后門程序最終有效載荷。theme0.xml在執行之前會先解壓到/ tmp / system / word / theme / syslogd目錄。
去除混淆后的Perl有效載荷
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使進程無限期地運行。該持久性文件被設置為掩藏屬性,文件的時間和日期也是隨機生成的。
具有持久性設置的屬性列表
launchctlload /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
<owner’s name>’s iMac
x86_64
所有這些數據在發送到C&C服務器之前都被加密。詳細過程如下所述:
1. 擾碼
類解析器的方法有多種,每個變量類型的解析方法各不同,比如Parser::inBytes, Parser::inByte, Parser::inString以及Parser::inInt.。
Parser:: inByte方法
如果clientID等于以下字節序列B4 B1 47 BC 52 28 2873 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字節序列看起來像F300 00 00 92 0D,然后原始字符串與5字節序列異或。
擾碼Mac OSX 10.12
1. 加密
加密的字節序列被傳遞到Packet ::Packet類的構造函數中,該類創建隨機AES256密鑰并使用此密鑰加密緩沖區。
2. 編碼加密密鑰
為了使C&C服務器解密和加密數據,隨機生成的AES256密鑰必須與加密數據一起包含在數據包中。然而,這個密鑰也是通過異或操作XOR 0x13進行擾碼的,隨后對每個字節應用ROL 6操作。
在輸出數據包中擾碼AES256密鑰的函數
擾碼和加密過程中的一些屏幕截圖:
灰色部分的字節表示已加密的計算機信息
隨機生成AES256密鑰
擾碼的AES256密鑰(0xC1異或0x13 = 0xD2,0xD2ROL 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 方法
如下兩個示例都創建了一個線程,每個線程負責下載和執行文件或在終端中運行命令行程序:
用于下載和執行以及在終端中運行命令的命令
用于上傳和下載文件的命令
支持的命令及其各自的代碼
上述就是小編為大家分享的海蓮花APT組織使用最新MacOS后門程序發動攻擊的示例分析了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。