日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

c++ dll继续使用然后强制删除dll文件_Windows 10系统安全风险,近300个系统执行文件容易遭受劫持攻击...

發(fā)布時(shí)間:2024/9/19 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++ dll继续使用然后强制删除dll文件_Windows 10系统安全风险,近300个系统执行文件容易遭受劫持攻击... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一個(gè)簡(jiǎn)單的VBScript足以讓用戶獲得管理權(quán)限并完全繞過Windows 10上的UAC。

在普華永道英國(guó)安全研究人員Wietze Beukema的最新報(bào)告中,我們了解到將近300個(gè)Windows 10可執(zhí)行文件容易受到DLL劫持的攻擊。

在普華永道英國(guó)安全研究人員Wietze Beukema的最新報(bào)告中,我們了解到將近300個(gè)Windows 10可執(zhí)行文件容易受到DLL劫持的攻擊。

“事實(shí)證明,System32文件夾中的近300個(gè)可執(zhí)行文件容易受到相對(duì)路徑DLL劫持的攻擊。您知道嗎,使用一個(gè)簡(jiǎn)單的VBScript,其中一些EXE可以用于提升此類執(zhí)行,而完全繞開UAC?”Beukema解釋說。

此處提到的漏洞是相對(duì)路徑DLL劫持,這是當(dāng)攻擊者可能導(dǎo)致合法Windows可執(zhí)行文件加載攻擊者選擇的任意DLL時(shí),很可能是出于惡意目的。

DLL劫持攻擊可以證明對(duì)熟練的攻擊者有用,因?yàn)樗鼈兛梢允谟柚T如任意代碼執(zhí)行,特權(quán)提升和目標(biāo)系統(tǒng)持久性之類的功能。

Beukema博客文章中涵蓋了DLL劫持的各種技術(shù),包括DLL替換,DLL代理,DLL搜索順序劫持,Phantom DLL劫持,DLL重定向,WinSxS DLL替換以及相對(duì)路徑DLL劫持。

一個(gè)有效的例子

為了在實(shí)踐中演示相對(duì)路徑DLL劫持,Beukema著重研究了Windows 10(v1909)計(jì)算機(jī)上“ C: Windows System32”文件夾中存在的庫(kù)。

他將合法的winstat.exe進(jìn)程復(fù)制到了系統(tǒng)上的downloads文件夾中。然后,他運(yùn)行了進(jìn)程監(jiān)視工具procmon,以更好地了解EXE在執(zhí)行過程中查找的DLL。

進(jìn)程監(jiān)視器顯示訪問的DLL

“這使我們能夠識(shí)別每個(gè)應(yīng)用程序查詢的所有DLL,這將是所有潛在的可劫持DLL候選對(duì)象。但是并不能自動(dòng)得出所有這些也都已加載(并因此執(zhí)行)的結(jié)果。”研究人員解釋說。

“找出正確加載了哪些DLL的最可靠方法是編譯我們自己的DLL版本,并在成功加載后將其寫入唯一文件。如果我們隨后對(duì)所有目標(biāo)可執(zhí)行文件和DLL重復(fù)上述方法,則將導(dǎo)致文件收集,這些文件告訴我們已確認(rèn)哪些DLL容易受到DLL劫持。”

但是,對(duì)攻擊者構(gòu)成挑戰(zhàn)的是編譯一個(gè)可以由可執(zhí)行文件啟動(dòng)的自定義版本的DLL,而不會(huì)出現(xiàn)任何問題。為了獲得對(duì)合法DLL結(jié)構(gòu)的可靠了解,Beukema建議使用DLL Export Viewer之類的工具進(jìn)行分析。

該工具通過枚舉所有外部函數(shù)名稱來深入了解我們?cè)噲D重新編譯的DLL結(jié)構(gòu),這些名稱隨后將在DLL Hijacking漏洞中重復(fù)使用。

查找易受攻擊的可執(zhí)行文件的方法

研究人員提供了一個(gè)完整的庫(kù)列表,這些庫(kù)是劫持攻擊的理想選擇。

他補(bǔ)充說:“這些不僅僅是理論上的目標(biāo),這些已經(jīng)過測(cè)試并證實(shí)是有效的。該列表包括287個(gè)可執(zhí)行文件和263個(gè)唯一的DLL。”

通過github.com/wietze/windows-dll-hijacking/提供了包含這些庫(kù)的完整列表的CSV。

一些限制

研究人員針對(duì)此示例攻擊所解釋的一些警告包括:

1)僅運(yùn)行不需要任何參數(shù)的可執(zhí)行文件

2)避免使用具有高級(jí)GUI和錯(cuò)誤報(bào)告功能的應(yīng)用程序

3)避免使用C ++編寫的DLL。

研究人員已經(jīng)在Windows 10 64位(操作系統(tǒng)內(nèi)部版本18362.476)上進(jìn)行了測(cè)試,但表示:“某些[DLL]在[32位Windows]上將無法使用。您可以使用32位GCC編譯C文件,然后將可以正常使用。”

請(qǐng)注意,如Twitter線程中突出顯示的那樣,此處說明的攻擊可能不適用于所有Windows版本。

繞過UAC

Windows用戶帳戶控制(UAC)是Windows Vista及更高版本中添加的一項(xiàng)安全功能,該功能詢問用戶是否打算在執(zhí)行高風(fēng)險(xiǎn)應(yīng)用程序之前將其運(yùn)行。

Windows UAC提示

從Windows 7開始,由于一再要求用戶授權(quán)合法的過程(可能很快變得煩人),Microsoft在UAC框架內(nèi)引入了內(nèi)置的“例外”。有效地,這使受信任的系統(tǒng)DLL可以“自動(dòng)提升”特權(quán),而不必使用UAC提示來打擾用戶。

“考慮到這一點(diǎn),您可以嘗試通過使用標(biāo)記為自動(dòng)提升的可執(zhí)行文件來嘗試以提升的特權(quán)運(yùn)行任意代碼,該可執(zhí)行文件也容易受到DLL劫持的影響。如上一節(jié)所述,大約有35種這樣的可執(zhí)行文件。” Beukema解釋說。

如果成功利用了已執(zhí)行的惡意DLL,則可以將其用于創(chuàng)建提升權(quán)限的命令提示符,從而以管理特權(quán)對(duì)計(jì)算機(jī)進(jìn)行完全訪問。

DLL劫持啟動(dòng)提升的命令提示符

不過,這里有一個(gè)障礙。在期望任何DLL的“自動(dòng)提升”特權(quán)之前,操作系統(tǒng)希望這些DLL存在于受信任的目錄中,該目錄不是用戶可寫的。

“要解決的問題是受信任目錄的問題:自動(dòng)提升的可執(zhí)行文件和自定義DLL都必須位于受信任目錄中,但是這些都不是用戶可寫的。”

此處提供了一些方便的模仿技術(shù),例如創(chuàng)建一個(gè)模擬的“ C: windows system32”目錄(在Windows之后緊跟一個(gè)空格)。這個(gè)名稱異常的文件夾可能會(huì)誘使可執(zhí)行文件將攻擊者創(chuàng)建的目錄視為“受信任位置”。

是否能夠創(chuàng)建這樣的目錄應(yīng)被視為安全漏洞尚有爭(zhēng)議,因?yàn)樗鼮楣粽咛峁┝死肈LL劫持漏洞的途徑。

“這是否是適當(dāng)?shù)陌踩┒瓷写?-微軟認(rèn)為不是,但至少是一個(gè)缺陷,因?yàn)榇蠖鄶?shù)(非企業(yè))Windows計(jì)算機(jī)默認(rèn)使用的是“管理員帳戶”。無論哪種方式,這都為我們提供了一種出色的手段,通過它可以使DLL劫持更加強(qiáng)大。”研究人員說。

但是為什么使用 VBScript?

作者建議使用VBScript的原因之一是因?yàn)閯?chuàng)建名稱包含尾隨空格的Windows目錄不是通過“傳統(tǒng)方式”可以實(shí)現(xiàn)的。

“您可以像原始研究人員一樣,編譯一些C語(yǔ)言來完成此操作,但是事實(shí)證明,VBScript實(shí)際上也可以為我們做到這一點(diǎn)。以下概念驗(yàn)證表明,僅需幾行代碼,您就可以使它起作用:”

用VBScript編寫的PoC,可創(chuàng)建模擬“可信目錄”

當(dāng)受到用戶質(zhì)疑時(shí),Beukema解釋了為什么他在利用容易受到DLL劫持的可執(zhí)行文件時(shí)選擇了VBScript。

“我知道……這只是因?yàn)镻owerShell不允許您這樣做,而VBScript卻可以。而且由于它是VBScript,因此您無需帶上自己的編譯二進(jìn)制文件即可使用此技巧,這意味著,除了自定義DLL之外,您還可以使用Living of the Land +腳本來完成所有工作。”

檢測(cè)和預(yù)防技術(shù)

Beukema提出了一些預(yù)防方法,可以用來阻止此類攻擊,例如,如果您的計(jì)算機(jī)上存在模擬Windows 文件夾中的活動(dòng),則可以對(duì)其進(jìn)行查找。同樣,如果最終用戶足夠了解要執(zhí)行的操作,則將UAC設(shè)置調(diào)整為“始終通知”可以幫助防止此類攻擊。

另一個(gè)策略是監(jiān)視DLL創(chuàng)建和從意外文件路徑加載的實(shí)例:

“您可以從意外路徑中尋找前面提到的任何DLL的創(chuàng)建或加載,特別是在諸如%appdata%之類的臨時(shí)位置。畢竟,可以更改加載DLL的(合法)應(yīng)用程序的名稱,但DLL的文件名始終是固定的。”

Beukema建議,在構(gòu)建應(yīng)用程序時(shí),開發(fā)人員應(yīng)強(qiáng)制使用絕對(duì)而非相對(duì)路徑來加載DLL,以及其他幾種技術(shù)。這些都不是足夠簡(jiǎn)單的。

但是,如果適當(dāng)?shù)亟Y(jié)合使用,預(yù)防措施(如研究人員所解釋的那樣)可以長(zhǎng)期阻止DLL劫持攻擊。

總結(jié)

以上是生活随笔為你收集整理的c++ dll继续使用然后强制删除dll文件_Windows 10系统安全风险,近300个系统执行文件容易遭受劫持攻击...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。