Adobe Flash零日漏洞(cve-2018-4878)在野攻擊完全分析報告

2021-02-15 嘶吼專業版

背景

2018年1月31日,韓國計算機應急響應小組發布了一則關於Adobe Flash Player的 0day 漏洞警告,並稱早在2017年11月中旬,就有黑客利用該漏洞實施有針對性的攻擊。

2018年2月1日, Adobe官方發布了Adobe Flash Player系列產品的安全通告(APSA18-01),一個最新的Adobe Flash零日漏洞被發現針對韓國地區的人員發起攻擊,該0day漏洞編號為CVE-2018-4878。

2018年2月5日,Adobe官方發布漏洞補丁,修復CVE-2018-4878零日漏洞

在CVE-2018-4878零日漏洞的補丁真空期,360核心安全高級威脅應對團隊迅速反應,率先截獲了該漏洞的在野攻擊並發布分析預警。在官方發布漏洞補丁,零日漏洞得到妥善解決後,本次我們發布在野攻擊的完全分析報告,幫助大家從不同角度推知此次高級威脅攻擊的全貌。

圖1

漏洞文檔攻擊流程分析

攻擊者對相關人員精心策劃了社會工程學攻擊,通過即時聊天工具和郵箱向相關人員發送包含漏洞及惡意代碼的excel誘餌文檔,誘騙受害者打開中招。

圖2  誘餌文檔內容

誘餌文檔中包含了一個ActiveX對象,該對象對應的是一個swf文件。

圖3 包含在文檔中的ActiveX對象文件

打開文檔後ActiveX對象會自動播放flash內容,允許播放後將從雲端實施下一步攻擊。

圖4

誘餌文檔中的flash播放後,下一步將請求遠程URL www.dylboiler.co.kr/admincenter/files/boad/4/manager.php

圖4.1

url請求參數包含id(唯一標識符)、fp_vs(flash版本)、os_vs(系統信息)

圖5

誘餌文檔中的flash將解密遠程URL地址返回的加密文件流,動態執行包含cve-2018-4878漏洞的flash內容。

圖6

cve-2018-4878漏洞荷載所在網站是一個正規的韓國公司網站,疑似該網站已經被攻擊者入侵並完全控制,攻擊者可以在網站上添加任意的惡意代碼。

圖7

CVE-2018-4878零日漏洞分析

我們對cve-2018-4878漏洞文件流進行分析,發現樣本通過操作Flash的com.adobe.tvsdk包中的DRMManager對象進行攻擊。

該部分漏洞的關鍵代碼存在於method_3方法中,該方法new了一個class_8的對象,並傳給drmManager.initialize,然後將var_16置空。

圖8

在class_2的構造函數中 LocalConnection().connect會主動調用gc釋放沒有的引用的內存,而第二次的LocalConnection().connect調用會產生異常,異常處理過程中又會new一個class_8的對象賦值給var_13。

圖9

之後創建了一個定時器,定時器處理函數中,判斷var_13.a1成員的值是否被修改。

圖10

如果發現值被修改了,則調用flash_24/25方法。

圖11

在flash_25方法中又會new 一個class_7的 ByteArray對象賦值給var_17。

圖12

var_17是個ByteArray對象,通過修改ByteArray對象的Length可以完成任意內存讀寫,該處的漏洞利用技巧和hacking team的flash exploit技巧類似,相關代碼已經開源就不再詳述。

圖13

進一步我們對該漏洞進行調試分析,將var_13 = new class_8();代碼注釋掉將會觸發空指針訪問崩潰。

eax=6906d8e9 ebx=00000000 ecx=00000000 edx=00000000 esi=08055d28 edi=0685b020

eip=6850e148 esp=024fd5c0 ebp=024fd5f0 iopl=0         nv up ei pl nz ac po nc

cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00210212

Flash32_28_0_0_137!DllUnregisterServer+0x14ecda:

6850e148 8b4904          mov     ecx,dword ptr [ecx+4] ds:0023:00000004=????????

回溯發現地址數據來自esi+0c位置

6850e142 8b4e0c          mov     ecx,dword ptr [esi+0Ch]

6850e145 8b4908          mov     ecx,dword ptr [ecx+8]

6850e148 8b4904          mov     ecx,dword ptr [ecx+4]

0:005> dd 066e4100

066e4100  066e4f60 00000000 00000000 00000000

066e4110  00000000 00000000 00000000 00000000

由於這裡我們已經把var_13創建代碼注釋了,說明還有其他對象被錯誤的釋放了,LocalConnection().connect會主動調用gc釋放沒有的引用的內存,所以這裡我們再把這部分注釋,並在 6850e142 8b4e0c          mov     ecx,dword ptr [esi+0Ch] 處設置斷點,觀察被釋放的數據內容。

圖14

斷點命中後,可以發現數據其實是class_8對象的內容,也就是var_16的內存。

eax=67c1d8e9 ebx=00000000 ecx=0607b2e0 edx=00000000 esi=04785d28 edi=0626b020

eip=670be148 esp=022fcfc0 ebp=022fcff0 iopl=0         nv up ei pl nz ac po nc

cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00200212

Flash32_28_0_0_137!DllUnregisterServer+0x14ecda:

670be148 8b4904          mov     ecx,dword ptr [ecx+4] ds:0023:0607b2e4=060ba4c0

0:005> dd 0618e100

0618e100  67c51a88 00000002 0607b2e0 07d98040

0618e110  00001111 00002222 00003333 00004444

0618e120  00005555 00006666 00007777 00008888

0618e130  00009999 0000aaaa 00001111 00002222

最終分析確認cve-2018-4878零日漏洞是drmManager.initialize沒有正確的處理所持有的對象導致UAF漏洞。

Shellcode攻擊流程分析

接下來,漏洞觸發執行的shellcode會通過進程名,判斷用戶是否安裝了AhnLab、ViRobot APT Shield和360三款中韓常用的安全軟體,以採取不同的方案進行攻擊。

圖15

l  三款安全軟體,任意一款存在的環境

直接調用wininet系列函數下載http://www.1588-2040.co.kr/conf/product_old.jpg所對應的惡意荷載執行。

l  未安裝三款安全軟體,或可能存在其他未知安全軟體的環境

創建cmd進程,針對cmd進程通過遠程線程注入代碼的方式下載http://www.1588-2040.co.kr/conf/product.jpg所對應的惡意荷載執行。

圖16

l  兩款韓國安全軟體共存的環境

Shellcode將會直接退出,不做任何操作。

Shellcode所下載的惡意荷載地址所在網站,同樣是一個正規的韓國公司網站,疑似該網站也已被攻擊者入侵並完全控制,用於放置最終的惡意荷載。

圖17

惡意荷載分析

最終執行的惡意荷載會分為兩個階段的程序,第一個階段是Dropper荷載釋放程序,第二個階段是利用網絡雲盤進行C&C控制的後門程序。

荷載釋放程序(Dropper)

程序從資源中加載名為JOK的資源,資源的內容為實際執行的Shellcode,程序新啟動wscript.exe,通過遠程線程的方式將shellcode注入到wscript進程中執行,最終Shellcode會從內存中解密釋放PE文件,自行加載節區重定位在內存中執行最終的後門程序。

圖18

值得注意的是,此次程序的PDB路徑,與2017年11月思科報告的Group 123 組織的ROKRAT木馬(http://blog.talosintelligence.com/2018/01/korea-in-crosshairs.html?m=1)存在關聯。

l  d:\HighSchool\version 13\2ndBD\T+M\T+M\Result\DocPrint.pdb

l  D:\HighSchool\version 13\First-Dragon(VS2015)\Sample\Release\DogCall.pdb

同時,程序的執行流程和技術細節也與思科報告中的dropper程序一致,疑似是同一系列的ROKRAT木馬程序。

圖19

網盤後門程序(Cloud Drive RAT)

該程序使用公共網盤作為C&C伺服器,用來存儲截屏信息或者進行插件下載;相對於傳統的CC伺服器,使用公共網盤提高了流量識別的難度,因為網盤類網址均為可信的白域名。

圖20

使用的雲盤信息如下:

程序中出現的URL

對應網盤

程序主要流程分析

程序首先生成了一個8位元組的隨機字符串,用來作為本次通訊的標識,該字符串在隨後的上傳和CC命令執行都有涉及

圖21

隨後對作業系統版本和當前執行和環境進行檢查

圖22

收集計算機、用戶名、BIOS信息

圖23

嘗試加載下列DLL,嘗試獲取VMwareTools版本號和BIOS版本信息,進而判斷是不是處於沙箱環境或者調試中

圖24

l  沙箱環境列表

Dll名稱和對應沙箱和調試環境

在判斷沙箱環境之後,程序開始創建工作線程,執行相應的功能。

圖25

該後門程序使用公共雲盤進行數據中轉,程序中內置了4種雲盤,分別是box,dropbox,pcloud, yandex,此次截獲的樣本使用的為pcloud網盤。

圖26

程序通過GDI API來實現截取受害機器屏幕的功能,並將圖片保存在temp目錄下,命名方式為隨機產生的表示序號+當前截圖的序號

圖27

圖28

隨後,程序會讀取圖片數據,並刪除temp目錄下的圖片,將之前收集到的環境信息和圖片數據一起上傳到雲盤中。

圖29

l  上傳的數據格式

偏移地址、長度和信息

程序會循環向網盤請求名為 def_ + 隨機標示的文件,通過對該文件進行解析,獲取雲端的C&C指令進行攻擊。

圖30

l  雲控C&C命令列表

指令序號與功能

在完成命令解析後,程序還會調用網盤的刪除API將對應的指令文件刪除

圖31

我們推測在實際的攻擊過程中,攻擊者會收集截圖等信息後,選取其中有價值的目標,再上傳定製的指令文件到網盤中進行攻擊。

攻擊信息溯源

通過對程序的逆向分析,我們發現了網盤的Token權限並沒有被嚴格限制,通過該Token可以獲得網盤的註冊信息和保存在網盤中的內容,從中我們定位到了攻擊者的網盤註冊郵箱為cheseolum@naver.com,註冊時間為2017年12月11日,與韓國響應中心公告的11月開始攻擊的時間相近。

圖32

在1月31日攻擊正式對外曝光後,仍然有大量新的中招者向該雲盤上傳信息,在獲取到的截屏信息中,我們發現了大量的病毒檢測沙箱和樣本分析人員。從截屏信息中判斷,大部分分析人員在根據https://github.com/brianwrf/CVE-2017-4878-Samples 中的樣本在進行病毒分析。

圖33

在截圖排查中,我們還意外發現了疑似國內安全從業者的電腦桌面截屏,可能是其在下載分析樣本時不慎中招。

圖34

總結

通過分析我們可以發現此次攻擊是通過精心策劃的,攻擊周期長達三個月以上,攻擊者通過入侵兩個正規公司網站放置惡意荷載,使用正常的雲盤服務作為C&C基礎設施,不計成本利用零日漏洞,開發精巧的攻擊方案。在攻擊過程中所使用的大量資源,都表明這不是個人和一般團隊能夠實施的,這是一起典型的APT攻擊。隨著漏洞信息逐漸公開,相關單位和普通用戶都需提高安全防範意識,及時更新Flash版本,並開啟安全軟體防禦可能出現的漏洞威脅。

相關焦點

  • Adobe Flash零日漏洞(CVE-2018-4878)在野攻擊完全分析報告
    2018年2月5日,Adobe官方發布漏洞補丁,修復CVE-2018-4878零日漏洞在CVE-2018-4878零日漏洞的補丁真空期,360安全衛士無需升級就能完美防禦此次漏洞攻擊。在此期間,360核心安全高級威脅應對團隊迅速反應,率先截獲了該漏洞的在野攻擊並發布分析預警。
  • Adobe Flash零日漏洞 (cve-2018-4878)在野攻擊預警分析
    ,該0day漏洞編號為CVE-2018-4878,目前最新版本28.0.0.137及其以前版本的Adobe Flash Player均受漏洞影響,Adobe官方將於2月5日發布漏洞補丁。在野攻擊分析攻擊者對相關人員精心策劃了社會工程學攻擊,通過即時聊天工具和郵箱向相關人員發送包含漏洞及惡意代碼的excel誘餌文檔,誘騙受害者打開中招。
  • Adobe Flash Player遠程代碼執行漏洞(CVE-2018-4878)預警
    ,漏洞編號 CVE-2018-4878,Adobe計劃在2月5號推送修復補丁。有關CVE-2018-4878的Flash漏洞已經被發現在野利用,攻擊者通過分發嵌入了惡意Flash的email來進行攻擊,漏洞可以通過網頁,office文檔觸發。韓國安全員Simon Choi聲稱自2017年11月中旬就有部分韓國人遭受到該漏洞攻擊。
  • 【病毒預警】用於惡意廣告的Adobe Flash零日漏洞
    趨勢科技中國在此通知您: 趨勢科技發現新的用於惡意廣告的Adobe Flash零日漏洞 趨勢科技的研究小組發現了一種新的在惡意廣告攻擊中利用到的Adobe Flash
  • 內網環境復現Flash漏洞
    漏洞概述   2018年2月1號,Adobe官方發布安全通報(APSA18-01),聲明Adobe Flash 28.0.0.137及其之前的版本,存在高危漏洞(CVE-2018-4878)。相關知識介紹    2.1 exp介紹    EXP = Exploit的中文意思是「漏洞利用」。意思是一段對漏洞如何利用的詳細說明或者一個演示的漏洞攻擊代碼,可以使得讀者完全了解漏洞的機理以及利用的方法。
  • 香港一電信公司遭遇黑客攻擊 Adobe Flash漏洞再次成為突破口
    攻擊者利用一個已知的Adobe Flash零日漏洞(CVE-2018-4878)在該公司網站的主頁面上添加了一個嵌入式Adobe Flash文件。 利用細節包含惡意代碼的網站圖像:根據相關信息顯示,CVE-2018-4878漏洞最早是由韓國計算機應急響應小組(KR-CERT)發現的,而KR-CERT表示,來自朝鮮的黑客組織已經成功將這個漏洞運用到了實際攻擊活動中。
  • Windows內核事務管理器中的零日漏洞(CVE-2018-8611)
    2018年10月,我們的AEP(自動防漏洞)系統檢測到微軟Windows作業系統的一個漏洞。進一步的分析使我們發現了ntoskrnl.exe中的一個零日漏洞。我們於2018年10月29日向微軟報告。與先前報告的win32k.sys(CVE-2018-8589和CVE-2018-8453)中的漏洞不同,CVE-2018-8611是一個特別危險的威脅 - 內核事務管理器驅動程序中的漏洞。由於系統過濾緩解不適用於ntoskrnl.exe系統調用,因此它也可以用於逃避現代Web瀏覽器(包括Chrome和Edge)中的「沙箱」。
  • Adobe Flash Player 任意代碼執行漏洞(CVE-2018-15981)預警
    (CVE-2018-15981)。該漏洞影響Adobe Flash Player 31.0.0.148及以前版本,成功利用會導致任意代碼執行。360-CERT對漏洞進行分析,認為該漏洞利用難度低且影響範圍廣,危害嚴重。
  • 勒索病毒利用Flash高危漏洞掛馬攻擊,色情網站為傳播源頭
    此次攻擊中,黑客通過在色情網站某些頁面中嵌入帶有CVE-2018-4878 Flash漏洞攻擊代碼的SWF文件,當網民訪問色情網站時,觸發惡意代碼,導致電腦被勒索病毒感染,中毒用戶會被勒索比特幣。騰訊安全專家建議用戶使用騰訊電腦管家或騰訊御點修復漏洞安裝補丁,避免因本機Flash Player版本過低導致網頁掛馬攻擊。同時,建議用戶在瀏覽某些高風險網站時,確保安全軟體處於開啟狀態。
  • CVE-2018-8414:SettingContent-ms文件任意代碼執行漏洞及在野攻擊分析
    而該新型攻擊方式被公開後就立刻被黑客和APT組織納入攻擊武器庫用於針對性攻擊,並衍生出各種利用方式:誘導執行、利用Office文檔執行、利用PDF文檔執行。2018年8月14日,微軟發布了針對該缺陷的系統補丁,對應的漏洞編號為:CVE-2018-8414。
  • 二進位漏洞研究入門之上篇
    在筆者看來,小明的動機可以有如下幾個:對該領域充滿興趣,願意花時間研究接到任務要進行office漏洞研究,側重於靜態掃描,例如需要寫一個殺毒引擎接到任務要進行office漏洞研究,側重於動態分析,例如需要構建一套office漏洞動態分析系統,並在此基礎上捕獲一個零日漏洞假設小明的動機是上述第3點,目前他在該領域的基礎為零,該如何啟動自己的研究?
  • 黑客在野利用 Adobe Reader 0day 漏洞
    聚焦原始碼安全,網羅國內外最新資訊!
  • CVE-2018-15982漏洞詳細分析
    swf文件:0x2 樣本攻擊流程分析攻擊樣本是個docx文檔,一開始可能會以為是利用的office漏洞,其實從上文的分析也能看出實際是利用flash漏洞,文檔打開並不會自動運行,需要誘導選擇播放flash漏洞後才能觸發。
  • 「噩夢公式」二代 –2018年微軟修復的首個Office 0day漏洞(CVE-2018-0802)分析
    這是繼360在全球範圍內首家截獲Office 0day漏洞(CVE-2017-11826)在野攻擊以來,發現的第二起利用零日漏洞的在野高級威脅攻擊。360核心安全團隊一直與微軟保持積極溝通,一起推進該0day漏洞的修復,讓漏洞得到妥善解決後再披露漏洞信息。
  • 【乾貨】Adobe Flash Player漏洞(CVE-2016-4117)樣本分析
    0×0 漏洞簡介CVE-2016-4117是出現在ActionScript的com.adobe.tvsdk.mediacore.timeline.operations.DeleteRangeTimelineOperation類中的一個類型混淆漏洞,最終可能導致遠程代碼執行,在今年五月份的時候首次出現野外樣本。
  • 【在野利用】Apple Mail多個嚴重漏洞在野利用通告
    多個在野漏洞分析,該漏洞在一定的條件下可以無交互觸發遠程代碼執行漏洞,漏洞等級:嚴重。Apple Mail存在多個漏洞,其中包含一個堆溢出漏洞最為嚴重,惡意攻擊者可以向用戶發送特製郵件觸發攻擊,完成遠程代碼執行。該漏洞影響搭載iOS 6及更高版本(包括iOS 13.4.1)的iPhone和iPad。目前Apple官方僅提供了一個beta版本的補丁程序,還未出正式版補丁,漏洞還處於在野利用的狀態。
  • 微軟警告,IE瀏覽器零日漏洞正被在野利用
    9月8日,微軟安全團隊警告,IE瀏覽器中的一個零日漏洞正被積極利用,惡意的微軟Office文檔可以借用該漏洞對計算機發起攻擊
  • 科普:Zero Day Exploit/Attack(零日漏洞/攻擊)
    然後黑客就會自己編寫此漏洞的利用腳本,對系統或應用程式發動攻擊。通常,從系統或應用程式新漏洞的發現到利用,不會超過24小時,由此就形像地把這種攻擊稱為零日攻擊,將被利用的新漏洞稱為零日漏洞或者零時差漏洞(Zero-day Exploit、Zero-day、0-day),而零日攻擊或零時差攻擊(Zero-day Attack)則是指利用這種漏洞進行的攻擊。
  • Apple發布安全更新,修復3個已被在野利用的0day;研究人員稱Windows IIS伺服器中的漏洞可影響WinRM
    【漏洞補丁】Apple發布安全更新,修復3個已被在野利用的0day【安全播報】美國運通因發送400多萬垃圾郵件被英國罰款9萬英鎊微軟未續訂Exchange的SSL證書,Chrome提示禁止訪問【威脅情報】研究人員稱Windows IIS伺服器中的漏洞可影響WinRM【分析報告】