Windows下的幾種提權(quán)方式的粗略匯總
目錄
- 利用漏洞
- DLL相關(guān)
- 本地存儲(chǔ)的密碼
- 配置不當(dāng)?shù)姆?wù)
- 令牌操作
- 高權(quán)限安裝(AlwaysInstallElevated)
- 憑據(jù)爆破
隨著系統(tǒng)管理員的安全意識(shí)的普遍提高,提權(quán)越來越成為廣大滲透測(cè)試者所面臨共同問題。本人水平有限,粗淺地總結(jié)了下幾種提權(quán)方式,以及一些個(gè)人看法,并配合相應(yīng)的演示。可能對(duì)實(shí)戰(zhàn)沒什么太直接的幫助,算是幫大家溫習(xí)下基礎(chǔ)吧。
實(shí)驗(yàn)環(huán)境是kali和win2008,有時(shí)候用win10,畢竟個(gè)人用戶還是win10多啊。
一.利用漏洞
1.1.利用漏洞提權(quán),簡(jiǎn)單快捷,瞬間從0到1,美滋滋。
windows系統(tǒng)被爆出了很多提權(quán)漏洞,通常來說及時(shí)打補(bǔ)丁就能防止黑客在本地利用漏洞提權(quán)。換言之就是沒打補(bǔ)丁就能提權(quán),另外windows平臺(tái)上許多軟件也被爆出提權(quán)漏洞,所以說枚舉目標(biāo)機(jī)上打了哪些補(bǔ)丁、操作系統(tǒng)的版本以及安裝了哪些軟件對(duì)于利用漏洞提權(quán)來說十分重要。
1.2.測(cè)試方法
用wmic來收集信息,wmic和powershell可是滲透利器。命令中的對(duì)象和屬性名都不區(qū)分大小寫。
1.2.1.獲取當(dāng)前系統(tǒng)名稱
- wmic os get caption
1.2.2.枚舉補(bǔ)丁
- wmic qfe get Description,HotFixID,InstalledOn
可以用cmd命令稍微篩選下(此處命令為查看是否打了ms17010和ms08067的補(bǔ)?。?/p>
- wmic qfe get Description,HotFixID,InstalledOn | findstr /C:"KB4013389" /C:"KB958644"
powershell
https://github.com/rasta-mouse/Sherlock
msf模塊
得先獲得一個(gè)meterpreter shell
- use post/windows/gather/enum_patches
msf這個(gè)模塊其實(shí)也是用wmic去枚舉的補(bǔ)丁,然后做的篩選。其實(shí)可以與時(shí)俱進(jìn)的優(yōu)化一下。
可以看出是用wmic去枚舉的補(bǔ)丁。
這個(gè)模塊可以指定要檢測(cè)的補(bǔ)丁號(hào)如果不指定的話,會(huì)有默認(rèn)的幾個(gè)補(bǔ)丁會(huì)檢測(cè),存在下面這個(gè)數(shù)組??梢酝ㄟ^在這數(shù)組里加自己自定義的補(bǔ)丁號(hào)和提示信息。
檢測(cè)邏輯
1.2.3.枚舉當(dāng)前安裝的軟件
- wmic product get name,version
1.3.舉例
1.3.1.系統(tǒng)漏洞
***的漏洞(CVE-2018-8120)
- https://github.com/alpha1ab/CVE-2018-8120
這個(gè)補(bǔ)丁肯定沒打,其實(shí)不用枚舉。
用exp的時(shí)候注意下位數(shù),一下就成功了,預(yù)感又要有一大批服務(wù)器要遭殃了
炒一個(gè)之前提到的冷飯(smb跨協(xié)議憑據(jù)反射)
欺騙system來認(rèn)證,從而泄露憑證,這屬于"社工"windows系統(tǒng)。
漏洞編號(hào)MS16-075,補(bǔ)丁編號(hào)KB3164038 。
在不打補(bǔ)丁,并且不啟用smb簽名的情況下可以用(待考證)。
燙手山芋
- https://github.com/Kevin-Robertson/Tater
WPAD(Web Proxy Auto-Discovery protocol )是為了讓瀏覽器自動(dòng)發(fā)現(xiàn)代理服務(wù)器,使代理對(duì)于用戶來說是透明的,也就是說讓用戶不用自己配置代理,感受不到代理存在。
- https://www.ibm.com/developerworks/cn/linux/1309_quwei_wpad/
ie瀏覽器默認(rèn)會(huì)去嘗試自動(dòng)獲取配置,有的windwos服務(wù)也會(huì)去自動(dòng)獲取,比如windows更新服務(wù)。 Windows Defender updates服務(wù)是個(gè)高權(quán)限的服務(wù),我們可以通過nbns欺騙讓system通過http在假的 WPAD進(jìn)行ntlm認(rèn)證,我們?cè)侔褢{據(jù)反射回smb協(xié)議,從而取得高權(quán)限。
爛土豆
- https://github.com/breenmachine/RottenPotatoNG
GitHub上編譯好版本只能彈個(gè)cmd.exe,需要自行修改main方法,讓他可以執(zhí)行自定義的命令。稍作修改即可。
爛土豆比燙手山芋更可靠,因?yàn)椴挥玫却齏indows Defender updates服務(wù)來上鉤。所以說能用ms16-075,那就用爛土豆吧。win10系統(tǒng)記得先過uac,再提權(quán)。
1.3.2.第三方組件漏洞
win10pcap提權(quán)
- http://www.freebuf.com/news/82310.html
二.DLL相關(guān)提權(quán)
2.1.DLL注入
這種方法提權(quán),只能是在有漏洞的情況下吧
2.2.DLL劫持
powersploit下的powerup.ps1中的兩個(gè)方法Find-ProcessDLLHijack、Find-PathDLLHijack。(路徑太長(zhǎng)顯示不全。。。)
三.本地存儲(chǔ)的密碼
這個(gè)項(xiàng)目挺有趣的
- https://github.com/AlessandroZ/LaZagne
這個(gè)遠(yuǎn)控,把上面那個(gè)項(xiàng)目作為一個(gè)模塊加了進(jìn)去
- https://github.com/n1nj4sec/pupy/
powersploit里的powerup.ps1其中包括幾種搜集本地密碼的方法,就像之前一樣,把腳本導(dǎo)入進(jìn)去,直接調(diào)用方法就好。
- Get-UnattendedInstallFile
- Get-Webconfig
- Get-ApplicationHost
- Get-SiteListPassword
- Get-CachedGPPPassword
- Get-RegistryAutoLogon
3.1.自動(dòng)應(yīng)答文件
需要自動(dòng)化部署一些服務(wù)的時(shí)候,能用到這個(gè)
msf模塊
- post/windows/gather/enum_unattend
3.2.其他程序的配置文件
發(fā)現(xiàn)包含敏感關(guān)鍵詞的文件
在當(dāng)前目錄以及其子目錄中,不區(qū)分大小寫的查找:
- findstr /si password *.txt
- findstr /si password *.xml
- findstr /si password *.ini
遞歸的搜索目錄并且只顯示文件名
- C:\> dir /b /s unattend.xml
- C:\> dir /b /s web.config
- C:\> dir /b /s sysprep.inf
- C:\> dir /b /s sysprep.xml
- C:\> dir /b /s *pass*
- C:\> dir /b /s vnc.ini
3.3.GPP
windows下這些場(chǎng)景需要存儲(chǔ)和使用用戶憑證
- 映射驅(qū)動(dòng)(Drives.xml)
- 創(chuàng)建本地用戶
- 數(shù)據(jù)源(DataSources.xml)
- 打印機(jī)配置(Printers.xml)
- 創(chuàng)建/更新服務(wù)(Services.xml)
- 計(jì)劃任務(wù)(ScheduledTasks.xml)
- 更改本地Administrator密碼
所有域的組策略存儲(chǔ)在
- \\<DOMAIN>\SYSVOL\<DOMAIN>\Policies\
也就是這幾個(gè)路徑
- Services\Services.xml
- ScheduledTasks\ScheduledTasks.xml
- Printers\Printers.xml
- Drives\Drives.xml
- DataSources\DataSources.xml
powerspoit中的powerup.ps1的Get-CachedGPPPassword方法,也就是把這幾個(gè)路徑檢測(cè)檢測(cè),還能自動(dòng)解密。
四.配置不當(dāng)?shù)姆?wù)
獲取服務(wù)的信息(獲取本地以system權(quán)限啟動(dòng)的服務(wù))
- wmic service get name,pathname,startname | findstr /C:"LocalSystem"
4.1.服務(wù)相關(guān)注冊(cè)表可被修改
windows下每當(dāng)一個(gè)服務(wù)被創(chuàng)建的時(shí)候就會(huì)這個(gè)鍵下對(duì)應(yīng)的創(chuàng)建一組鍵值,一般這組鍵值只有管理員才能訪問,但是如果權(quán)限配置不當(dāng)還是有可能提權(quán)的。
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services
其中的ImagePath的值指向的是服務(wù)的啟動(dòng)程序所在的位置,如果這個(gè)地方可以修改的話,也就能劫持這個(gè)服務(wù)了。
4.2.可執(zhí)行文件可被修改
直接替換服務(wù)的可執(zhí)行文件,劫持服務(wù)提權(quán)。
用accesschk來檢測(cè)一下,可以修改的服務(wù)。
- https://technet.microsoft.com/en-us/sysinternals/accesschk.aspx
- accesschk.exe -uwcqv "你知道權(quán)限的用戶" * -accepteula
也可用msf模塊
- exploit/windows/local/service_permissions
powersploit中的powerup.ps1
獲取可以修改的服務(wù)
- Get-ModifiableService
4.3.可執(zhí)行文件路徑未被引號(hào)包裹
如果服務(wù)的可執(zhí)行文件路徑未被引號(hào)包裹,那么在遇到空格的時(shí)候,會(huì)導(dǎo)致截?cái)?,例如C:\Program Files\ 1.exe,如果未被引號(hào)包裹,在服務(wù)啟動(dòng)過程中會(huì)嘗試加載C:\Program.exe。所以查找到有缺陷的服務(wù),在可寫的路徑下插入后門,重啟服務(wù)即可提權(quán)。
msf模塊
- exploit/windows/local/trusted_service_path
powerup.ps1
- Get-ServiceUnquoted
五.令牌操作
通過office漏洞拿到win10的shell,先過uac,然后直接就可以導(dǎo)入system的令牌,瞬間獲得system權(quán)限。
不想用msf的話,可以參考這個(gè)鏈接
https://labs.mwrinfosecurity.com/blog/incognito-v2-0-released/
六.高權(quán)限安裝
https://msdn.microsoft.com/en-us/library/aa367561
windows中有一項(xiàng)組策略配置(一個(gè)系統(tǒng)配置,一個(gè)用戶配置兩個(gè)配置都啟用才行,并且相關(guān)的組策略對(duì)象都啟用才行)可以讓用戶在運(yùn)行.msi文件進(jìn)行安裝程序時(shí),始終以system權(quán)限運(yùn)行,而不是以當(dāng)前用戶的權(quán)限。
我感覺這個(gè)只有撞了大運(yùn)才會(huì)碰上吧23333,但是在滲透測(cè)試中還是要嘗試一下的。
涉及的注冊(cè)表鍵值及查詢方法是(只要值為1,則是啟用狀態(tài))
- reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer
- reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer
msf模塊
- exploit/windows/local/always_install_elevated
powersploit下的powerup.ps1腳本里有個(gè)Get-RegistryAlwaysInstallElevated可以檢測(cè)是否存在高權(quán)限安裝。
六.憑據(jù)爆破
爆破下高權(quán)限賬戶或者服務(wù)的口令。