OceanLotus 駭客集團最新 MacOS 後門程式現身

最近趨勢科技發現了一個應該是由  OceanLotus 駭客集團所開發的最新後門程式 (趨勢科技命名為 Backdoor.MacOS.OCEANLOTUS.F),增加了一些新的行為與網域名稱。

由於它的動態行為與程式碼都與先前的 OceanLotus 惡意程式類似,因此我們確定這應該是  OceanLotus 惡意程式的變種。 

Fig-2-latest-OceanLotus
Old OceanLotus
圖 1 至 2:舊的 OceanLotus 樣本 (上) 與最新的 OceanLotus 樣本 (下)。

OceanLotus 之前專門從事目標式攻擊,受害機構遍布各種 產業,如:媒體、研究、營造等等。近來,Volexity 的研究人員也發現它們會利用惡意網站來散播惡意程式。

此惡意程式變種似乎專門攻擊越南使用者,因為它的檔案名稱用的是越南文,且之前的樣本也曾攻擊過該地區。

進入系統


此樣本是採用一個 Zip 格式的應用程式封裝來散布,並且用了一個 Word 文件圖示作掩護,試圖冒充成文件檔。

Fig-3-sample-file
圖 3:此樣本的檔名、圖示以及應用程式封裝結構。

不僅如此,它還利用了另一項技巧來躲避偵測,那就是在應用程式封裝的名稱中插入特殊字元。當使用者透過 macOS 的 Finder 或從終端機下命令去尋找這個假冒的文件資料夾時,資料夾的名稱顯示的是「ALL tim nha Chi Ngoc Canada.doc」(「tìm nhà Chị Ngọc」,大致翻譯成「尋找 Ngoc 先生的家」)。不過,若查看原始的 Zip 檔案就會發現「.」和「doc」之間多了三個奇怪的位元組。

Fig-4-Special-Character
圖 4:查看 Zip 壓縮檔可看到「.」和「doc」之間有 3 個特殊字元。

這 3 個位元組「efb880」是一個 UTF-8 編碼,從 UTF-8 轉成 Unicode 就是「U+FE00」。

編碼區段第一個位元組第二個位元組第三個位元組第四個位元組
U+0000 to U+007F0xxxxxxx   
U+0080 to U+07FF110xxxxx10xxxxxx  
U+0800 to U+FFFF1110xxxx10xxxxxx10xxxxxx 
U+10000 to U+10FFFF11110xxx10xxxxxx10xxxxxx10xxxxxx
表 1:UTF-8 對應表。

「U+FE00」是 Unicode 當中一個特別的控制字元,正式名稱為「Variation Selector-1 (VS1)」(變體選擇字元),用來控制中日韓相容表意文字 (CJK Compatibility Ideograph) 的外觀。在此惡意程式的檔名中,由於該控制字元前面的字元是英文句點「.」(並非中日韓文字),因此這個變體選擇字元對它沒有影響。

但是當作業系統看到這個應用程式封裝時,會將它當成不支援的目錄類型,因此其預設的開啟命令就是執行此程式。照理說,看到附檔名為「.doc」的文件 (如果前面沒有那個特殊字元的話) 系統應該會呼叫 Microsoft Word 將這個應用程式當成文件來開啟,不過因為它其實不是一個一般文件,所以如果試著開啟的話也應該會失敗。

以下是這個應用程式封裝檔案的程式碼簽署資訊:

Fig-5-code-signing
圖 5:此樣本的程式碼簽署資訊。

此應用程式封裝內含兩個主要檔案:

  • ALL tim nha Chi Ngoc Canada:這是包含主要惡意程式碼的指令列腳本。
  • configureDefault.def:這是惡意程式執行時顯示在畫面上 Word 檔案。
Fig-6-File-contents
圖 6:「ALL tim nha Chi Ngoc Canada」檔案的內容。
Fig-7-OceanLotus-Document
圖 7:惡意程式執行後顯示在畫面上的文件。

當此腳本啟動時,它會執行以下步驟:

1)      刪除符合「*ALL tim nha Chi Ngoc Canada.?doc*」條件的所有檔案的檔案隔離屬性。

2)      試圖將系統內檔案的檔案隔離屬性移除。

3)      將「ALL tim nha Chi Ngoc Canada.?doc/Contents/Resources/configureDefault.def(doc)」複製到「/tmp/ALL tim nha Chi Ngoc Canada.doc(doc)」。

4)      開啟「/tmp/ALL tim nha Chi Ngoc Canada.doc(doc)」。

5)      將 Base 64 編碼的 FAT 二進位檔案解開到「ALL tim nha Chi Ngoc Canada.?doc/Contents/Resources/configureDefault.def(fat – binary)」,這是第二階段惡意檔案程式。

6)      修改第二階段惡意檔案的存取權限以便將它啟動。

7)      刪除這個惡意的應用程式封裝檔案「ALL tim nha Chi Ngoc Canada.?doc」。

8)      將「/tmp/ALL tim nha Chi Ngoc Canada.doc(doc)」複製到「{execution directory}/ALL tim nha Chi Ngoc Canada.doc」。

9)      刪除「/tmp/ALL tim nha Chi Ngoc Canada.doc」。

第二階段惡意程式



當第二階段的惡意程式 (ALL tim nha Chi Ngoc Canada.?doc/Contents/Resources/configureDefault.def) 啟動時,它會執行以下步驟:

1)      將第三階段惡意程式植入到「~/Library/User Photos/mount_devfs」。

2)      建立「~/Library/LaunchAgents/com.apple.marcoagent.voiceinstallerd.plist」來常駐於系統。

Fig-8-plist-file
圖 8:Plist 檔案「~/Library/LaunchAgents/com.apple.marcoagent.voiceinstallerd.plist」。

3)      使用「touch」指令來修改檔案的時間戳記。

Fig-9-Timestamp
圖 9:惡意檔案的時間戳記。

4)      將自己刪除。

第三階段惡意程式



第三階段惡意程式 (~/Library/User Photos/mount_devfs) 裡面的字串會採用特殊方式加密並配合 Base64 編碼與位元組修改技巧。

Fig-10-Encrypted-strings
圖 10:加密過的字串。
Fig-11-Decryption
Fig-12-Decryption-routine
圖 11 至 12:加密函式。

如同舊版的  OceanLotus 後門程式,新版的程式含有兩項主要功能:第一是蒐集作業系統資訊並傳送至幕後操縱 (C&C) 伺服器,然後再接收進一步的 C&C 通訊資訊;第二是各項後門功能。

以下是它從被感染的系統蒐集的資訊以及使用的指令:

指令說明
system_profiler SPHardwareDataType 2>/dev/null | awk ‘/Processor / {split($0,line,\”:\”); printf(\”%s\”,line[2]);}’取得處理器資訊。
15f20 = system_profiler SPHardwareDataType 2>/dev/null | awk ‘/Memory/ {split($0,line, \”:\”); printf(\”%s\”, line[2]);}’  取得記憶體資訊。  
ioreg -rd1 -c IOPlatformExpertDevice | awk ‘/IOPlatformSerialNumber/ { split($0, line, \”\\\”\”); printf(\”%s\”, line[4]); }  取得序號。  
ifconfig -l ifconfig <device> | awk ‘/ether /{print $2}’ 2>&1  取得網路介面卡 (MAC) 位址。  
表 2:OceanLotus 所用的指令與說明。

蒐集到的資訊會經過加密然後傳送至惡意程式的 C&C 伺服器。

Fig-13-TCP-stream
圖 13:惡意程式發送資訊給 C&C 伺服器的 TCP 流量片段。

此外,惡意程式也會接收來自 C&C 伺服器的指令。

Fig-14-TCP-stream-commands
Fig-15-Comparison
圖 14:惡意程式從 C&C 伺服器接收指令的 TCP 流量片段。

以下是惡意程式所使用的 C&C 伺服器:

  • mihannevis.com
  • mykessef.com
  • idtpl.org

新變種的後門功能與 舊的 OceanLotus 變種類似,詳細說明如下:

Fig-16-New-OceanLotus
圖 15 至 16:舊的 OceanLotus 變種 (上) 與新的變種 (下) 程式碼比較。

以下是惡意程式支援的後門指令與對應的代碼 (取自之前有關  OceanLotus 的部落格文章)。

0x33取得檔案大小。
0xe8離開。
0xa2下載並執行一個檔案。
0xac在終端機內執行指令。
0x48移除檔案。
0x72上傳檔案。
0x23下載檔案。
0x3c下載檔案。
0x07取得組態設定資訊。
0x55空白回應 (心跳封包)。
表 3:後門程式所支援的指令以及對應的代碼。

C&C 網域名稱詳細資訊



根據 Google 與  Whois  的歷史記錄,「mihannevis.com」這個網域過去是某個網站所使用,大約在 2020 年 8 月才變成一個 C&C 伺服器的網域。

Fig-17-Domain-History
Fig-18-Domain-History-in-Google
圖 17 至 18:「mihannevis.com」網域的歷史記錄,分別取自 Whois (上) 與 Google (下)。

根據 VirusTotal 的資料,某些相關的 URL 查詢是出現在 8 月底。

Fig-19-URLs
Fig-19-URLs
圖 19:根據 VirusTotal 所看到的「mihannevis.com」相關網址。

惡意程式先前的 C&C 伺服器使用的是「mykessef.com」這個網域。

Fig-20-Domain-history-lookup
Fig-20-Domain-history-lookup
Fig-20-Domain-history-lookup

網域名稱「idtpl.org」是三年前註冊,並無更新記錄。根據 Whois  查詢記錄,其註冊已在 2020 年 3 月過期。

Fig-21-registration-information
圖 21:根據 Whois 查詢得到的「idtpl.org」網域註冊資訊。
Fig-21-registration-information

但是從 2020 年 7 月中旬起,其 IP 位址就變成了「185.117.88.91」。

Fig-22-Domain-History
圖 22:VirusTotal 上看到的「idtpl.org」網域歷史記錄。
Fig-22-Domain-History

建議


像 OceanLotus 這樣的駭客集團會積極開發新的惡意程式變種來躲避偵測並提高常駐系統的能力。以下是防範這類惡意程式的一些最佳實務原則:

  • 切勿點選可疑來源的電子郵件所隨附的連結與檔案。
  • 定期修補並更新軟體和應用程式。
  • 使用最適合您作業系統的資安防護。

此外,趨勢科技也推薦採用 PC-cillin for Mac 來保護 macOS 系統,該產品提供了完整的多重裝置惡意程式防護並可防護其他網路威脅。

入侵指標資料

SHA-256檔案名稱/說明趨勢科技病毒碼偵測名稱
cfa3d506361920f9e1db9d8324dfbb3a9c79723e702d70c3dc8f51825c171420 ALL%20tim%20nha%20Chi%20Ngoc%20Canada.zipBackdoor.MacOS.OCEANLOTUS.F
48e3609f543ea4a8de0c9375fa665ceb6d2dfc0085ee90fa22ffaced0c770c4fALL tim nha Chi Ngoc CanadaBackdoor.SH.OCEANLOTUS.F
05e5ba08be06f2d0e2da294de4c559ca33c4c28534919e5f2f6fc51aed4956e3第二階段 FAT 二進位檔案Backdoor.MacOS.OCEANLOTUS.F
fd7e51e3f3240b550f0405a67e98a97d86747a8a07218e8150d2c2946141f737 第三階段 FAT 二進位檔案Backdoor.MacOS.OCEANLOTUS.F

網域

  • mihannevis.com
  • mykessef.com
  • idtpl.org

MITRE TTP

手法識別碼名稱說明
躲避防禦T1070.004檔案刪除應用程式封裝與惡意程式會在執行後將自己刪除。
T1222.002Linux 和 Mac 檔案與目錄權限修改後門程式會修改惡意檔案的權限 (變更為「+x」) 好讓檔案可以執行。
T1027加密編碼的檔案或資訊一般文字字串已經過加密。
T1036.005障眼法:利用合法名稱或地點掩蓋非法應用程式封裝會偽裝成一個 DOC 檔案來誘騙使用者將它執行。
T1070.006清除在主機上的痕跡:時間戳記後門程式會使用「touch」指令來修改植入檔案的日期和時間。
搜尋T1082系統資訊搜尋後門程式會蒐集各種資訊並傳送至 C&C 伺服器。
蒐集T1560.003壓縮蒐集到的資料:使用客製化方法壓縮後門程式會先將資料加密再外傳。
幕後操縱 (C&C)T1095非應用程式層次的通訊協定如同之前的樣本,此惡意程式會根據 C&C 指令執行一些後門行為。

原文出處:New MacOS Backdoor Connected to OceanLotus Surfaces 作者:Luis Magisa 與 Steven Du