成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

打開文件夾就運(yùn)行?COM劫持利用新姿勢(shì)

安全 網(wǎng)站安全
打開文件夾就能運(yùn)行指定的程序?這不是天方夜譚,而是在現(xiàn)實(shí)世界中確實(shí)存在的。利用本文探討的COM劫持技術(shù),可以輕松實(shí)現(xiàn)出打開文件夾就運(yùn)行指定代碼的功能。

打開文件夾就能運(yùn)行指定的程序?這不是天方夜譚,而是在現(xiàn)實(shí)世界中確實(shí)存在的。利用本文探討的COM劫持技術(shù),可以輕松實(shí)現(xiàn)出打開文件夾就運(yùn)行指定代碼的功能。對(duì)于COM劫持技術(shù),國(guó)內(nèi)很少有資料進(jìn)行原理闡述,本文結(jié)合自身分析經(jīng)驗(yàn)對(duì)COM劫持技術(shù)進(jìn)行歸納總結(jié)。同時(shí),希望各大安全廠商針對(duì)此類利用做好防護(hù),保護(hù)用戶信息安全。

前言

所謂“罵人先罵娘,擒賊先擒王”,首先給出讀者最最關(guān)心的劫持文件夾的利用方法的效果展示:

為了理解本文內(nèi)容,我們首先要了解COM的一些基本的概念:

接口:一組函數(shù)的總稱,這些函數(shù)也被稱為”方法”,通常情況下,接口的名稱都是以“I”開關(guān),例如:”IShellFolder”.接口可以繼承。

Component object class(coclass):也就是組件,組件包含在一個(gè)DLL或者exe文件中,它包含了一個(gè)或多個(gè)接口的實(shí)現(xiàn)代碼。組件實(shí)現(xiàn)了它包含的所有接口。

COM object:是組件的一個(gè)實(shí)例。

COM server:一個(gè)dll或者exe文件,包含了一個(gè)或者多個(gè)組件。

COM library:是操作系統(tǒng)的一部分,負(fù)責(zé)響應(yīng)用戶程序。

GUID:唯一的、128位的標(biāo)識(shí)對(duì)象的標(biāo)識(shí). 全局唯一標(biāo)識(shí)符,是唯一的一個(gè)ID,類似于物理網(wǎng)址那樣。

CLSID:class id,唯一的標(biāo)識(shí)組件。

IID:interface id,用來(lái)標(biāo)識(shí)接口。

此外,對(duì)于windows操作系統(tǒng),存在著虛擬文件夾,控制面板,我的電腦等都是系統(tǒng)中的虛擬文件夾。這種虛擬文件夾在注冊(cè)表中都會(huì)有一個(gè)CLSID與之對(duì)應(yīng),例如,我的電腦對(duì)應(yīng)的CLSID是{20D04FE0-3AEA-1069-A2D8-08002B30309D},控制面板的CLSID是{21EC2020-3AEA-1069-A2DD-08002B30309D}。

那么怎樣可以看到這些虛擬文件夾呢?以“我的電腦”虛擬文件夾為例,在開始–運(yùn)行中輸入”:: {20D04FE0-3AEA-1069-A2D8-08002B30309D”就可以打開我的電腦。但需要注意的是,在WIN7下,輸入::{21EC2020-3AEA-1069-A2DD-08002B30309D}可以打開控制面板,但在xp系統(tǒng)下,打開控制面板需要輸入的命令為:”::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}”。

利用方法

作為演示,我們執(zhí)行代碼的功能為,彈出一個(gè)類似與下圖的對(duì)話框,其中顯示出了調(diào)用這個(gè)DLL的進(jìn)程路徑及PID信息。

把大象裝進(jìn)冰箱里需要三步,我們的利用也分為三步:

1.精選CLSID,盡量選擇系統(tǒng)應(yīng)用范圍廣的CLSID,這樣的模塊可以保證系統(tǒng)在進(jìn)行很多功能時(shí)都會(huì)加載dll。我們選擇的CLSID為:{b5f8350b-0548-48b1-a6ee-88bd00b4a5e7},其對(duì)應(yīng)著CAccPropServicesClass類。

修改注冊(cè)表,將CLSID對(duì)應(yīng)的DLL文件修改成實(shí)現(xiàn)了某些待定功能的文件(這個(gè)文件是由我們精心構(gòu)造的,不然無(wú)法利用成功)。

可通過(guò)將下列數(shù)據(jù)導(dǎo)入到注冊(cè)表實(shí)現(xiàn)

  1. Windows RegistryEditor Version 5.00  
  2. [HKEY_CLASSES_ROOT\CLSID\{b5f8350b-0548-48b1-a6ee-88bd00b4a5e7}] 
  3. [HKEY_CLASSES_ROOT\CLSID\{b5f8350b-0548-48b1-a6ee-88bd00b4a5e7}\InProcServer32] 
  4. @="freebuf.dll" 
  5. "ThreadingModel"="Apartment" 

 

2. 新建文件夾,以CLSID做為后綴名,同時(shí)將我們的利用dll拷貝到系統(tǒng)目錄下:

這里的文件名可以充分發(fā)揮想象力(騙術(shù)),利用社會(huì)工程學(xué),起個(gè)誘惑的文件夾名,比如,目標(biāo)喜歡日本姑娘,文件夾就叫做” 小澤にほんごかなニホンゴ(カナ).{b5f8350b-0548-48b1-a6ee-88bd00b4a5e7}”

3. 打開文件夾,成功利用

利用的步驟很簡(jiǎn)單,其中最為關(guān)鍵是我們實(shí)現(xiàn)代碼的dll以及CLSID的選擇,這不是一個(gè)普通的dll,而是dll中的”戰(zhàn)斗dll”,這是一個(gè)實(shí)現(xiàn)了COM接口的dll,并且在dll的導(dǎo)出函數(shù)的返回值有特殊要求。具體可以參見文末附件中的代碼。

背后的故事

通過(guò)上面的圖,可以看出,我們的DLL實(shí)際上是由verclsid.exe加載的。而verclsid.exe是通過(guò)shell32.dll中的函數(shù)調(diào)用起來(lái)的。在shell32.dll中SHExtCoCreateInstance函數(shù)成功調(diào)用后,verclsid.exe才會(huì)被加載。

而SHExtCoCreateInstance只是對(duì)_SHExtCoCreateInstance2的封裝

而通過(guò)ida看到_SHExtCoCreateInstance2調(diào)用了_ShouldLoadShellExt,所有_ShouldLoadShellExt成功返回(返回非0值),才能加載verclsid.exe.

_ShouldLoadShellExt在對(duì)注冊(cè)表Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked和Software\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved進(jìn)行判斷后,調(diào)用了_QueryClassInterface,而要求_QueryClassInterface返回一個(gè)非0值,就只能是下圖中的 v17=ExitCode==0代碼的地方。

綜全上面的過(guò)程,要想成功利用,只要使CreateProcessW函數(shù)調(diào)用verclsid.exe結(jié)束時(shí)的exitcode等于0。

對(duì)verclsid.exe分析

調(diào)用verclsid.exe傳遞的參數(shù)有:

/S:隨后調(diào)用OLE32!CoInitializeEx函數(shù)時(shí)的參數(shù);

/C : CLSID;

/I :Interface id;

/X:調(diào)用OLE32!CoCreateInstance函數(shù)時(shí)所需要的參數(shù)值;

隨后,通過(guò)下面的函數(shù)調(diào)用com組件

調(diào)用OLE32!CoCreateInstance

調(diào)用ppv->QueryInterface

隨后會(huì)調(diào)用

ppv->Release()

CoUninitialize()

然后,函數(shù)就正常返回,當(dāng)函數(shù)正常返回時(shí),verclsid.exe的exitcode等于0。這就保證了我們的dll能夠被加載成功。

所以,我們只需要寫一個(gè)COM服務(wù)dll,使verclsid.exe調(diào)用這個(gè)服務(wù)dll的接口時(shí),返回S_OK就OK了。具體關(guān)于COM服務(wù)dll的編寫,請(qǐng)參考附件鏈接。

附件下載:鏈接:http://pan.baidu.com/s/1ckPWDo 密碼:pniu

總結(jié)

 這種COM劫持技術(shù)最大的優(yōu)點(diǎn)在于,不需要進(jìn)行動(dòng)態(tài)的dll注入等操作,可以繞開主動(dòng)防御,此外,這種利用的加載進(jìn)行為操作系統(tǒng)的verclsid.exe,宿主進(jìn)程是天生的白進(jìn)程,也可以繞開白名單機(jī)制。而且劫持dll的加載是由系統(tǒng)底層機(jī)制決定的。另外,這種技術(shù)很可能被用于網(wǎng)絡(luò)黑產(chǎn),這也要求安全廠商提高對(duì)這種劫持行為的識(shí)別與檢測(cè)。

責(zé)任編輯:趙寧寧 來(lái)源: 黑吧安全網(wǎng)
相關(guān)推薦

2016-09-07 09:20:54

2024-12-06 15:11:34

Python文件夾目錄

2024-10-28 07:10:00

scroll標(biāo)記前端網(wǎng)格布局

2025-02-17 11:41:14

2024-04-30 11:49:16

瀏覽器前端開發(fā)折疊屏應(yīng)用

2025-02-19 12:00:00

SpringBootDeepSeekAI

2021-05-26 08:21:43

@Autowired項(xiàng)目@Resouce

2021-03-29 12:01:51

流量劫持瀏覽器漏洞

2024-01-18 15:17:56

谷歌云計(jì)算三星

2025-04-28 04:22:00

Spring動(dòng)態(tài)SQL

2009-10-27 08:56:22

VB.NET文件夾

2011-08-31 15:21:07

windows7庫(kù)文件夾

2018-02-25 11:24:02

APPiPhone手機(jī)

2025-02-07 10:52:00

2013-08-08 09:56:51

微軟Outlook

2019-02-27 09:08:20

Java 8StringJoineIDEA

2024-06-25 12:10:26

2023-07-18 09:00:00

ChatGPT文本轉(zhuǎn)語(yǔ)音

2025-04-21 03:30:00

2013-07-27 20:08:24

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 9久久精品 | 欧美性tv| 成人精品在线观看 | 精品三级在线观看 | 欧美性视频在线播放 | 亚洲精品短视频 | 国产91黄色 | 91视在线国内在线播放酒店 | 99精品一区二区 | 日韩在线免费播放 | 99小视频 | 日本一区二区三区在线观看 | 日本成人免费网站 | 国产精品久久久久久影院8一贰佰 | 欧美日韩一区不卡 | 成人免费在线视频 | 欧美一区中文字幕 | 久久首页| 亚洲成人黄色 | 中文字幕精品视频 | 仙人掌旅馆在线观看 | 午夜精品一区二区三区在线视频 | 亚洲视频一区在线观看 | 欧美精品一区二区蜜桃 | 久久久久久九九九九九九 | 一区二区三区免费 | 免费在线视频a | 久久亚洲二区 | 不卡一区 | 久久精品国产一区二区电影 | 中文字幕视频免费 | 国产福利91精品一区二区三区 | 国产精品一区二区三区四区 | 999久久久| 天天干天天玩天天操 | 亚洲精品国产综合区久久久久久久 | 日韩高清中文字幕 | 国产成人综合av | 国产美女网站 | 伊人网在线综合 | 欧美一极视频 |