概述
近年來,烏克蘭和俄羅斯兩國之間繚繞國土問題的爭論不停,產生瞭克裡米亞半島問題、自然氣爭端、烏克蘭台灣東邊危機等事務。隨同著兩國危機事務愈演愈烈之時,在收集空間中產生的安全事務可能比實際越發劇烈。2015年聖誕節期“至於你說的,一定有妖。”藍沐繼續說道。 “媽覺得只要你婆婆不針對你,不陷害你,她不是妖,和你有什麼關係?在她間烏克蘭國傢電力部分遭到瞭APT組織的強烈進犯,使烏克蘭西部的 140 萬名住民在寒冷中遭受瞭年夜停電的煎熬,都會墮入發急喪失慘重,而響應的俄羅斯所遭遇的APT進犯,外界卻少少有表露。
2018年11月25日,烏俄兩國又突發瞭“刻赤海峽”事務,烏克蘭的數艘水師軍艦在向刻赤海峽飛行期間,與俄羅斯水師產生瞭劇烈沖突,激發瞭全世界的高度關註。在2018年11月29日,“刻赤海峽”事務後稍晚時光,360高等要挾應答團隊就在寰球范圍內第一時光發明瞭一路針對俄羅斯的APT進犯步履。值得註意的是這次進犯相干樣原來源於烏克蘭,進犯目的則指向俄羅斯總統辦公室所屬的醫療機構。進犯者特別預備瞭一份俄文內在的事務的員工問卷文檔,該文檔運用瞭最新的Flash 0day縫隙cve-2018-15982和帶有自毀效能的專屬木馬步伐入行進犯,種種手藝細節表白該APT組織不吝價錢要攻陷目的,但同時又十分當心謹嚴。在發明進犯後,咱們第一時光將0day縫隙的細節講演瞭Adobe民間,Adobe民間實時相應後在12月5日加急發佈瞭新的Flash 32.0.0.101版本修復瞭這次的0day縫隙。
圖1:縫隙文檔內在的事務
依照被進犯醫療機構的網站(http://www.p2f.ru) 先容,該醫療機組成立於1965年,創始人是俄羅斯聯邦總統辦公室,是專門為俄羅斯聯邦最高行政、立法、司法政府的事業職員、迷信傢和藝術傢提供辦事的專門研究醫療機構。因為此次進犯屬於360在寰球范圍內的初次發明,聯合被進犯目的醫療機構的本能機能特點,咱們將這次APT進犯定名為“毒針”步履。今朝咱們還無奈斷定進犯者的念頭和成分,但該醫療機構的特殊配景和辦事的敏動人群,使這次進設立登記犯表示出瞭明白的定向性,同時進犯產生在“刻赤海峽”危機的敏感時段,也為進犯帶上瞭一些未知的政治用意。
進犯者經由過登記地址程送達rar緊縮包倡議進犯,關上緊縮包內的釣餌文檔就會中招。完全進犯流程如下:
圖3: 縫隙文檔進犯經過歷程
當受益者關上員工問卷文檔後,將會播放Flash 0day文件。
圖4: 播放Flash 0day縫隙
觸發縫隙後, winrar解壓步伐將會操縱緊縮包內文件,履行終極的PE荷載backup.exe。
圖5: 縫隙履行入程樹商業登記
0day縫隙剖析
經由過程剖析咱們發明這次的CVE-2018-15982 0day縫隙是flash包com.adobe.tvsdk.mediacore.metadata中的一個UAF縫隙。Metadata類的setObject在將String類型(屬於RCObject)的對象保留到Metadata類對象的keySet成員時,沒有運用DRCWB(Deferred Reference Counted, with Write Barrier)。進犯者應商業登記地址用這一點,經由過程強制GC得到一個垂懸指針,在此基本上經由過程多次UAF入行多次類型攪渾,隨後借助兩個自界說類的交互操縱完成恣意地址讀寫,在此基本上泄露ByteArray的虛表指針,從而繞過ASLR,最初借助HackingTeam泄露代碼中的方法繞過DEP/CFG,履行shellcode。
設立登記 縫隙成因剖析
在縫隙的觸發經過歷程,flash中Metadata的實例化對象地址,如下圖所示。
輪迴挪用Metadata的setObject方式後,Metadata對象的keySet成員,如下圖所示。
keySet成員的部門值,如下圖所示。
強制渣登記地址滓歸收後keySet成員被開釋的內存部門,如下圖所示。
在n商業登記地址ew Class5重用內存後,將招致類型攪渾。如下圖所示。
後續進犯者還經由過程判定String對象的length屬性是否為24來斷定縫隙應用是否勝利。(假如應用勝利會形成類型攪渾,此時經由過註冊公司程獲取String對象的length屬性現實為獲取Class5的第一個成員變量的值24)。
經由過程入一個步驟反編譯深刻剖析,咱們可以發明Metadata類的setObject對應的Native函數如下圖所示,現實效能存在於setObject_impl裡。
在Object_impl裡,會間接將傳進的鍵(String對象)保留到Metadata的keySet成員裡。
註冊地址 Buffer構造體界說如下(keySet成員的構造體有必定差別)。
add_keySet中保留傳進的鍵(String對象),如下代碼所示。
這個時辰渣滓歸收機制以為傳進的鍵未被援用,從而歸收響應內存,然而Metadata對象的keySet公司地址成員中仍保存著被歸收的內存的指針,後續經由過程new Class5來重用被歸收的內存,形成UAF縫隙。
縫隙應用剖析
在現實的進犯經過歷程中,應用代碼起首申請0x1000個String對象,然後當即開釋此中的一半,從而形成大批String對象的內存浮泛,為前面的應用做預備。
隨工商登記地址後,應用代碼界說瞭一個Metadata對象,借助setObject方式將key-value對保留到該對象中,Metadata對象的keySet成員保留著一個指向一片包括一切key(以String情勢存儲)的內存區域的指針。緊接著強制觸發GC,因為keySet成員沒有運用DRCWB,keySet成員內保留著一個指向上述內存區域的垂懸指針,隨後讀取keySet到arr_key數組,供前面運用。
獲得垂懸指針後,應用代碼當即申請0x100個Class5類對象保留公司註冊到vec5(vec5是一個向量對象),因為Class5類對象的內存鉅細和String對象的內存鉅細一致(32位下均為0x30字節),且相干對象調配在統一個堆內,依據mmgc內存調配算法,會有Class5對象占據之前被開釋的String對象的內存空間。
此中Class5對象界說如下,可以望到該Class5有2個uint類型的成員變量,分離初始化為0x18和2200(0x898)。
公司登記地址 隨後遍歷key_arr數組,找到此中長度變為為0x18的字符串對象(在內存中,String對象的length字段和Class5的m_1成員重合),在此基本上判定以後位於32位仍是64位周遭的狀況,據此入進不同的應用分支。
接上圖,可以望到:在找到被Class5對象占用的String索引後,應用代碼將arr_key的相干屬性清零,這使得arr_key數組內元素(包含已占位Class5對象)的援用計數削減變為0,在MMgc中,對象在援用計數減為0後會马上入進ZCT(zero count table)。隨後應用代碼強制觸發GC,把ZCT中的內存歸收,入進後續應用流程。上面咱們重要剖析32位周遭的狀況下的應用流程。
上面咱們重要剖析32位周遭的狀況下的應用流程,在32位分支下,在開釋瞭占位的Class5對象後,應用代碼當即申請256個Class3對象並保留到另一個向量對象vec3註冊公司中,此經過歷程會重用之前被開釋的某個(或若幹)Class5對象的內存空間。
此中Class3對象的界說如下,它和Class5很是類似,兩者在內存中都占用0x30字節。
可以望到Class3有一個m_ba成員和一個m_Class1成員,m_ba被初始化為一個ByteArray對象,m_Class1被初始化為一個Class1對象,Class1對象界說如下:
Class3對象占位實現後,應用代碼當即遍歷vec5尋覓一個被Class3對象占用內存的原Class5對象。找到後,保留該Class5對象的索引到this.index_1,並保留該對象(曾經變為Class3對象)的m_Class1成員到this.ori_cls1_addr,供後續規復運用。
兩輪UAF後來,應用代碼緊接著應用工商登記上述保留的index_1索引,借助vec5[index_1]往修正被重用的Class3對象的m_Class1成員。隨後當即遍歷vec3往尋覓被修正的Class3對象,將該對象在vec3中的索引保留到this.index_2。
到今朝為止,應用代碼曾經獲得兩個可以操作統一個對象的vector(vec5和vec3),以及該對象在各自vec中的索引(i裴毅一遍一遍的看著身邊的轎子,彷彿希望能透過他的眼睛,看清楚到底是什麼東西。坐在轎車裡坐的樣子。ndex_1和index_2)。接上去應用代碼將在此基本上結構恣意地址讀寫原語。
咱們來望一下32位下恣意地址讀寫原語的完成,從下圖可以望到,借助兩個攪渾的Class對象,可以完成恣意地址讀寫原語,相干代碼在上圖和下圖的正文中曾經寫得很清晰,此處不再過多描寫。關於減往0x10的偏移的闡明,可以參考咱們之前對cve-2018-5002縫隙的剖析文章。
64位下的恣意地址讀寫原語和32位下年夜同小異,隻不外64位下將與Class公司登記5攪渾的類對象換成瞭Class2和Class4。此外還結構瞭一個Class0用於64位下的地址讀取。
以下是這三個類的界說。
以下是64位下的恣意地址讀寫原語,64位下的讀寫原語一次隻能讀寫32位,以是對一個64位地址需求分兩次讀寫。
應用代碼借助恣意地址讀寫結構瞭一系列效能函數,並借助工商登記這些效能函數終極讀取kernel32.dll的VirtualProtect函數地址,供前面Bypass DEP運用。
應用終極采用與HackingTeam完整一致的伎倆來Bypass DEP/CFG。因為相干經過歷程在網上已有描寫,此處不再過多詮釋。32和64位下公司註冊的shellcode分離放在的Class6和Class7兩個類內, shellcode終極挪用cmd啟動WINRAR相干入程,相干下令行參數如下:
縫隙補丁剖析
Adobe民間在12月5日發佈的Flash 32.0.0.101版本修復瞭這次的0day縫隙,咱們經由過程靜態剖析發明該次縫隙補丁是用一個Array對象來存儲全部鍵,而不是用相似Buffer構造體來存儲鍵,從而營業地址打消援用的問題。
1、某次Metadata實例化對象如下圖所示,地址為0x7409540。
2、可以望到Metadata對象的偏移0x1C處不再是相似Buffer構造體的佈局,而是一個Array對象,經由過程Array對象來存儲鍵值則不會有之前的問題。
3、輪迴挪用setObject設置完鍵值後keySet中的值如下所示。
4、強制渣滓歸收發明保留的ketSet中的指針仍指向有用地字符串,闡明強制渣滓歸收並沒有歸收鍵值對象。
終極荷載剖析
PE荷載backup.exe將本身假裝成瞭NVIDIA顯卡把持臺步伐,並領有具體文件闡明和版本號。
文件運用已被吊銷的證書入行瞭數字署名。
PE荷載backup.exe啟動後將在當地用戶的公司地址步伐數據目次開釋一個N公司地址出租VIDIAControlPanel.exe。該文件和backup.exe文件領有同樣的文件信息和數字署商業登記名,但文件鉅細不同。
經由入一個步驟的剖析,咱們發明PE荷載是一個經由VMP強加密“是的,女士。”蔡修只得辭職,點了點頭。的後門步伐,經由過程解密還原,咱們發明主步伐重要效能為創立一個窗口動靜輪迴,有8個重要效能線程,其重要效能如下:
線程效能:
主動靜輪迴效能:
線程效能剖析
0 剖析抗衡線程
檢修步伐自身的名稱是否切合哈希定名規定,如切合則設置自毀標志。
1 叫醒線程
監控用戶流動情形,假如用戶有鍵盤鼠標流動則發送0x401動靜給主窗口步伐,叫醒創立註冊規劃義務線程。
2 休眠線程
取以後TickCount 入行比力,低位小於100則發送 WM_COPYDATA指令 主窗口輪迴在接受這一指令後,會休眠必定時光
3 按時自毀線程
解密步伐中的時光字符串與以後體系時光入行比力,假如以後體系時光較年夜,則設置標志位,並向主窗口發送0x464動靜(履行自毀)。
4 通訊線程
獲取機械信息 包含CPU型號,內存運用情形,硬盤運用情形,體系版本,體系言語,時區 用戶名,SID,安裝步伐列表等信息。
向 188.241.58.68 發送POST
銜接勝利時,繼承向辦事器發送數據包
切合前提時,入進RunPayload函數公司地址出租(現實並未捕捉到切合前提的情形)
RunPayload函數
LoadPE
RunShellCode
5 註冊設立登記自啟動線程
1、起首拿到線程6中保留的AppData\Local目次下的NVIDIAControlPanel文件路徑,運用該路徑或許該路徑的短路徑與以後文件模塊路徑判定是否雷同。
2、隨後測驗考試關上註冊表HKEY_CURRENT_USER下SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\StartupFolder。
3、查問以後註冊表路徑下NVIDIAControlP登記地址anel鍵值是否存在,假如不存在或許為禁用狀況則設置鍵值為啟用的鍵值02,00,00,00,00,00,00,00,00,00,00,00。
6 註冊規劃義務線程
檢討自身是否運轉在System入程
假如運轉在system入程, 則彈出Aborting動靜, 退出入程,並清算周遭的狀況
並不停向 Windows Update窗口送達退出動靜
三種文件拷貝方法
01.其運用瞭三種不同的方法往拷貝自身文件:
在監測到殺軟相干入程後來, 會運用Bits公司登記_IBackgroundCopyManager方法入行自拷貝
假如沒有相干殺軟入程, 會運用iFileOperation 方法入行自拷貝
假如在以上事業方法之行收場, 仍未有文件拷貝到目的目次, 則履行開釋BAT方法入行自拷貝
Bits_IBackgroundCopyManager
(5ce34c0d-0dc9-4c1f-897c-daa1b78cee7c)
iFileOperation
{3ad05575-8857-4850-9277-11b85bdb8e09}
批處置文件開釋
創立批處置文件,拷貝自身來開釋文件。
固定開釋常駐後門: F951362DDCC37337A70571D6EAE公司地址出租8F122
檢測殺軟
檢測的殺軟包含F-Secure, Panda, ESET, Avira, Bitdefender, Norton, Kaspersky 經由過程查找名稱和特定驅公司地址動文件完成
檢測的殺軟後來會履行自毀流程
添加規劃義務
人打賞
0
人 點贊
舉止禮儀和妻子一樣,而不是名義上的正式妻子。”
主帖得到的海角分:0
舉報 |
樓主
| 埋紅包