OceanLotus最新後門分發技術

OceanLotus最新後門分發技術

2018年中,OceanLotus發起一個利用含有CVE-2017-11882漏洞的文檔的國際活動。該漏洞位於啟用和編輯數學公式的組件中。360安全對OceanLotus使用的惡意文檔進行了分析。

stage 1

該惡意文檔雖然是.doc擴展的,但是該文檔實際上是一個RTF格式文檔,如圖1所示,其中含有很多無用的數據。

OceanLotus最新後門分發技術

圖1 — RTF無用域

雖然有很多無用的數據,word仍然可以成功打開該RTF文件。如圖2所示,在offset 0xC00處,有一個EQNOLEFILEHDR結構,然後是MTEF header和MTEF記錄。

OceanLotus最新後門分發技術

OceanLotus最新後門分發技術

FONT記錄值

OceanLotus最新後門分發技術

圖3 —

錄格式

因為name域的在複製前並不會檢查其大小,因此可能會溢出。名字太長的話就會觸發該漏洞。如圖2中的offset 0xC26所示,在RTF文件內容中,緩衝區全部是shellcode,0x90處是NOP,返回地址是0x402114。該地址在EQNEDT32.exe中指向的是RET指令,是無用的。這回導致指向含有shellcode的name域的開始的EIP。

OceanLotus最新後門分發技術

圖4 — 利用sh

e的開始

地址0x45BD3C保存了一個間接引用的變量,直到它到達一個當前加載MTEFData結構的指針,這也是剩餘shellcode的位置。

Shellcode的目的是執行嵌入在打開文檔中的第二段shellcode。首先,初始shellcode會嘗試通過所有系統handle循環,檢查handle PID與WinWord中進程的PID是否一致以及打開文檔的access mask是否是0x12019F來找出打開文檔的handle。為了確認找出的是正確的handle,文件的內容會用CreateFileMapping函數進行映射,shellcode會檢查文檔的最後4個字節是否是yyyy,該技術叫做Egg Hunting。一旦發現匹配,文檔就會以ole.dll的形式複製到臨時文件夾。然後最毒文檔的最後12個字節。

OceanLotus最新後門分發技術

圖5 — 文檔尾部的Mark

BBCCDD和yyyy markers之間的32位值是與下一個shellcode的偏移量offset。是用CreateThread函數調用的。提取的shellcode與OceanLotus組織之前使用的是協同的。

Stage 2

提取組件

文件名和目錄名都態選擇的。代碼會隨機的選擇位於C:\\Windows\\system32的可執行文件或DLL文件的名。然後查詢其資源並提取FileDescription域作為文件夾名。如果不行,代碼就從ProgramFiles%或C:\\Windows目錄中隨機選擇一個文件名。同時要確認文件名中不含有windows, Microsoft, desktop, system, system32, syswow64以確保不會與現有文件重名。如果目錄已經存在,目錄名就會駕駛NLS_{6個數字}。這一階段的0x102資源會被分析,文件會釋放到%ProgramFiles%或%AppData%。創建的時間會修改為與kernel32.dll相同。

比如,下面是將C:\\Windows\\system32\\TCPSVCS.exe作為數據源創建的文件夾和文件列表:

OceanLotus最新後門分發技術

圖6 — 提取不同的組件

資源0x102的

,其中含有:

  • 文件名filenames文件大小和格式files’ size and content壓縮格式compression format (RtlDecompressBuffer 函數使用的是COMPRESSION_FORMAT_LZNT1)

完成駐留

釋放器的0x101處含有2個32位的整數,來表明駐留是如何實現的。第一個值表明惡意軟件如何在沒有管理員權限的情況下完成駐留。

OceanLotus最新後門分發技術

第二個整數表明惡意軟件以提升後的權限完成駐留。

OceanLotus最新後門分發技術

是擴展的文件名,展示的名字是文件名但是如何已經存在

符串Revision 1。攻擊者通過服務確保駐留是有彈性的:如果服務失敗了,服務在1秒後就會重新開始。然後新服務key的註冊表值WOW64會被設置為4,表明它是32位的服務。

計劃任務是通過許多COM接口創建的,包括ITaskScheduler, ITask, ITaskTrigger, IPersistFile和ITaskScheduler。惡意軟件要創建一個隱藏的任務,用當前用戶或管理員信息設置賬戶信息,並設置觸發條件。

這是一個每日任務,週期是24小時,兩次執行中間的時間間隔為10分鐘,也就是說該任務會一直運行。

惡意位

在本文的例子中,可執行文件TCPSVCS.exe (AcroTranscoder.exe)是合法的軟件側加載DLL。其DLL函數只調用一個函數,一些不透明謂詞包括:

OceanLotus最新後門分發技術

圖7 —opaque predicate

在進行一些欺騙檢查後,代碼會T

PCS.exe的.text 域,將保護機制修改為PAGE_EXECUTE_READWRITE,並用一些無關指令覆蓋:

OceanLotus最新後門分發技術

圖8 — 沒有副作用的指令序列

最後,會加入一個Flash Video Exten

ll導出的函數FLVCore::Uninitialize(void)的地址的CALL指令。也就是說,在加載惡意DLL後,當在TCPSVCS.exe運行時調用WinMain時,指令指針會執行NOP,最後在下一階段調用FLVCore::Uninitialize(void)。

該函數簡單創建一個以{181C8480-A975-411C-AB0A-630DB8B0A221}開頭的mutex,後面是當前用戶名。然後讀取釋放的.db3擴展的文件,其中含有與位置無關的代碼,並使用CreateThread來執行其內容。

.db3文件的內容就是OceanLotus常用的shellcode。研究人員使用模擬器腳本成功的解壓了其payload。

腳本會提取最後一個階段的組件。該組件是之前分析過的一個的後門。惡意軟件的配置文件在PE資源中是加密的。配置文件與之前分析的相同,但是C2服務器是不同的:

  • andreagahuvrauvin[.]combyronorenstein[.]comstienollmache[.]xyz

OceanLotus使用的技術再一次繞過了AV。通過選擇隨機的文件名,並用隨機數據填充可執行文件,減少了可靠的IoC數量。因為使用DLL側加載,攻擊者必須釋放合法的AcroTranscoder二進制文件。

自解壓文檔

在使用RTF文件後,攻擊者開始使用自提取技術。運行時,字體去的RAR文件會釋放和執行final payload的DLL文件。2019年1月開始,OceanLotus開始重用自提取技術但是修改了一些配置。

誘餌文件

文檔THICH-THONG-LAC-HANH-THAP-THIEN-VIET-NAM(1).EXE是2018年首次出現的。該SFX文件是偽造的,描述表明該文件是一個JPEG圖像。SFX腳本如下所示:

OceanLotus最新後門分發技術

圖9 — SFX命令

惡意軟件釋放{9ec60ada-a200-4159-b310-807189

}.ocx (SHA-1: EFAC23B0E6395B1178BCF7086F72344B24C04DCC) 和圖片2018 thich thong lac.jpg.

誘餌圖片如下所示:

OceanLotus最新後門分發技術

圖10 — 誘餌圖片

OCX文件的控制流與其他OceanLotus組件類似:含有大量的JZ/JNZ和PUS

令序列。

OceanLotus最新後門分發技術

圖11 — 混淆的代碼

在過濾了垃圾代碼後,regsvr32.exe會調用export DllRegisterSer

圖12 — 安裝器主代碼

DllRegisterServer第一次調用時會將註冊表值HKCU\\SOFTWARE\\Classes

\\{E08A0F4B-1F65-4D4D-9A09-BD4625B9C5A1}\\Model設定為DLL(0x10001DE0)中編碼的偏移量。

該函數第二次調用時會讀取許多相同的值,執行位於該地址的函數。然後該資源會被讀取和執行,許多內存中的操作會被執行。

Shellcode與之前oceanlotus攻擊活動中使用的PE loader相同。可以用miasm模擬腳本來模擬。最後釋放 db293b825dcc419ba7dc2c49fa2757ee.dll,加載到內存中並執行DllEntry。

DLL會提取資源的內容,用AES-256-CBC解密,用LZMA解壓縮。資源使用的是非常容易逆向的特定格式。

OceanLotus最新後門分發技術

圖13 — 安裝器配置的結構

根據特權級別,二進制數據會被寫入%appdata%\\Intel\\logs\\BackgroundUpload

pl 或%windir%\\System32\\BackgroundUploadTask.cpl。

然後,創建一個名為BackgroundUploadTask[junk].job的任務來完成駐留,其中[junk]是0x9D和0xA0字節的集合。

任務的應用名是%windir%\\System32\\control.exe,參數值是複製的二進制文件的路徑。隱藏的任務被設定為每天運行。

從結構上看,CPL文件是一個DLL文件,其內部名為 ac8e06de0a6c4483af9837d96504127e.dll,會導出一個CPlApplet函數。該文件會解密其唯一的資源{A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll,然後加載該DLL並調用DllEntry。

後門配置文件

後門中含有嵌入在資源中的加密的配置文件。配置文件的結構與之前的很像。

OceanLotus最新後門分發技術

圖14 — 後門配置結構

結論

OceanLotus仍然活躍,而且還在不斷髮展和進化。該組織使用不同的工具集和誘餌文件。攻擊者將payload封裝

件相關的文檔中,並且使用不同的技術,重用一些公開的漏洞利用代碼。而且使用不同的技術來減少留在受害者機器中的痕跡,以降低被安全產品檢測到的概率。從前面的例子中可以看出,文件名都是隨機生成的,而且OceanLotus也修改了二進制文件來避免被檢測到。

本文翻譯自:https://www.welivesecurity.com/2019/03/20/fake-or-fake-keeping-up-with-ocnlotus-decoys/

歡迎來安全脈搏查看更多的乾貨文章和我們一起交流互動哦!

脈搏地址:安全脈搏 | 分享技術,悅享品質

微博地址:Sina Visitor System

【注:安全脈搏所有文章未經許可,謝絕轉載】

OceanLotus最新後門分發技術

OceanLotus最新後門分發技術

OceanLotus最新後門分發技術

OceanLotus最新後門分發技術

OceanLotus最新後門分發技術

OceanLotus最新後門分發技術

OceanLotus最新後門分發技術

OceanLotus最新後門分發技術

OceanLotus最新後門分發技術

OceanLotus最新後門分發技術

OceanLotus最新後門分發技術

OceanLotus最新後門分發技術

OceanLotus最新後門分發技術

OceanLotus最新後門分發技術


分享到:


相關文章: