今天就跟大家聊聊有關(guān)Windows Token九種權(quán)限的利用分別是怎么樣的,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
創(chuàng)新互聯(lián)為您提適合企業(yè)的網(wǎng)站設(shè)計(jì)?讓您的網(wǎng)站在搜索引擎具有高度排名,讓您的網(wǎng)站具備超強(qiáng)的網(wǎng)絡(luò)競(jìng)爭(zhēng)力!結(jié)合企業(yè)自身,進(jìn)行網(wǎng)站設(shè)計(jì)及把握,最后結(jié)合企業(yè)文化和具體宗旨等,才能創(chuàng)作出一份性化解決方案。從網(wǎng)站策劃到成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作, 我們的網(wǎng)頁(yè)設(shè)計(jì)師為您提供的解決方案。
0x00 前言
普通用戶(或者LocalService用戶)的特殊Token有哪些可利用方法呢?能否提權(quán)?如何判斷?
本文將要結(jié)合自己的經(jīng)驗(yàn),參考多個(gè)開(kāi)源工具和資料,嘗試對(duì)這個(gè)技巧做總結(jié),分享學(xué)習(xí)心得。
參考的開(kāi)源工具和資料:
Hot Potato: https://github.com/foxglovesec/Potato
powershell版本Hot Potato: https://github.com/Kevin-Robertson/Tater
Rotten Potato: https://github.com/breenmachine/RottenPotatoNG
lonelypotato: https://github.com/decoder-it/lonelypotato
Juicy Potato: https://github.com/ohpe/juicy-potato
https://github.com/hatRiot/token-priv
https://foxglovesecurity.com/2017/08/25/abusing-token-privileges-for-windows-local-privilege-escalation/
https://foxglovesecurity.com/2016/01/16/hot-potato/
https://foxglovesecurity.com/2016/09/26/rotten-potato-privilege-escalation-from-service-accounts-to-system/
https://foxglovesecurity.com/2017/08/25/abusing-token-privileges-for-windows-local-privilege-escalation/
0x01 簡(jiǎn)介
本文將要介紹以下內(nèi)容:
簡(jiǎn)要利用思路
SeImpersonatePrivilege權(quán)限對(duì)應(yīng)的利用思路和開(kāi)源代碼
SeAssignPrimaryPrivilege權(quán)限對(duì)應(yīng)的利用思路和開(kāi)源代碼
SeTcbPrivilege權(quán)限對(duì)應(yīng)的利用思路和開(kāi)源代碼
SeBackupPrivilege權(quán)限對(duì)應(yīng)的利用思路和開(kāi)源代碼
SeRestorePrivilege權(quán)限對(duì)應(yīng)的利用思路和開(kāi)源代碼
SeCreateTokenPrivilege權(quán)限對(duì)應(yīng)的利用思路和開(kāi)源代碼
SeLoadDriverPrivilege權(quán)限對(duì)應(yīng)的利用思路和開(kāi)源代碼
SeTakeOwnershipPrivilege權(quán)限對(duì)應(yīng)的利用思路和開(kāi)源代碼
SeDebugPrivilege權(quán)限對(duì)應(yīng)的利用思路和開(kāi)源代碼
0x02 簡(jiǎn)要利用思路
1、取得了目標(biāo)的訪問(wèn)權(quán)限后,查看可用權(quán)限
whoami /priv
例如,普通用戶具有的權(quán)限如下圖。
管理員用戶具有的權(quán)限如下圖。
iis用戶具有的權(quán)限如下圖。
Privilege Name項(xiàng)表示具有的權(quán)限,State表示權(quán)限的狀態(tài),我們可以通過(guò)WinAPI AdjustTokenPrivileges將權(quán)限設(shè)置為Disabled或者Enabled
可供參考的實(shí)現(xiàn)代碼:
https://github.com/3gstudent/Homework-of-C-Language/blob/master/EnablePrivilegeandGetTokenInformation.cpp
代碼實(shí)現(xiàn)了開(kāi)啟指定權(quán)限(SeDebugPrivilege),并且查看當(dāng)前用戶名稱(chēng)和具有的權(quán)限
2、如果包含以下九個(gè)權(quán)限,我們就可以對(duì)其進(jìn)一步利用
SeImpersonatePrivilege
SeAssignPrimaryPrivilege
SeTcbPrivilege
SeBackupPrivilege
SeRestorePrivilege
SeCreateTokenPrivilege
SeLoadDriverPrivilege
SeTakeOwnershipPrivilege
SeDebugPrivilege
注:
iis或者sqlserver的用戶通常具有SeImpersonatePrivilege和SeAssignPrimaryPrivilege權(quán)限
Backup service用戶通常具有SeBackupPrivilege和SeRestorePrivilege權(quán)限
0x03 SeImpersonatePrivilege權(quán)限的利用思路
參考資料:
https://github.com/hatRiot/token-priv/blob/master/abusing_token_eop_1.0.txt#L327
SeImpersonatePrivilege
身份驗(yàn)證后模擬客戶端(Impersonatea client after authentication)
擁有該權(quán)限的進(jìn)程能夠模擬已有的token,但不能創(chuàng)建新的token
以下用戶具有該權(quán)限:
本地管理員組成員和本地服務(wù)帳戶
由服務(wù)控制管理器啟動(dòng)的服務(wù)
由組件對(duì)象模型 (COM) 基礎(chǔ)結(jié)構(gòu)啟動(dòng)的并配置為在特定帳戶下運(yùn)行的COM服務(wù)器
通常,iis或者sqlserver用戶具有該權(quán)限
利用思路
利用NTLM Relay to Local Negotiation獲得System用戶的Token 可使用開(kāi)源工具Rotten Potato、lonelypotato或者Juicy Potato
通過(guò)WinAPI CreateProcessWithToken創(chuàng)建新進(jìn)程,傳入System用戶的Token 具有SeImpersonatePrivilege權(quán)限才能創(chuàng)建成功
該Token具有System權(quán)限
可供參考的測(cè)試代碼:
https://github.com/3gstudent/Homework-of-C-Language/blob/master/EnableSeImpersonatePrivilege.cpp
代碼實(shí)現(xiàn)了開(kāi)啟當(dāng)前進(jìn)程的SeImpersonatePrivilege權(quán)限,調(diào)用CreateProcessWithToken,傳入當(dāng)前進(jìn)程的Token,創(chuàng)建一個(gè)進(jìn)程,配合RottenPotato,可用來(lái)從LocalService提權(quán)至System權(quán)限。
0x04 SeAssignPrimaryPrivilege權(quán)限的利用思路
參考資料:
https://github.com/hatRiot/token-priv/blob/master/abusing_token_eop_1.0.txt#L359
SeAssignPrimaryPrivilege
向進(jìn)程(新創(chuàng)建或者掛起的進(jìn)程)分配token
通常,iis或者sqlserver用戶具有該權(quán)限
利用思路1
· 利用NTLM Relay to Local Negotiation獲得System用戶的Token
· 通過(guò)WinAPI CreateProcessAsUser創(chuàng)建新進(jìn)程,傳入System用戶的Token
· 該Token具有System權(quán)限
可供參考的測(cè)試代碼:
https://github.com/3gstudent/Homework-of-C-Language/blob/master/EnableSeAssignPrimaryTokenPrivilege.cpp
代碼實(shí)現(xiàn)了開(kāi)啟當(dāng)前進(jìn)程的SeAssignPrimaryTokenPrivilege權(quán)限,調(diào)用CreateProcessAsUser,傳入當(dāng)前進(jìn)程的Token,創(chuàng)建一個(gè)進(jìn)程,配合RottenPotato,可用來(lái)從LocalService提權(quán)至System權(quán)限。
利用思路2
利用NTLM Relay to Local Negotiation獲得System用戶的Token
通過(guò)WinAPI CreateProcess創(chuàng)建一個(gè)掛起的新進(jìn)程,參數(shù)設(shè)置為CREATE_SUSPENDED
通過(guò)WinAPI NtSetInformationProcess將新進(jìn)程的Token替換為System用戶的Token
該Token具有System權(quán)限
0x05 SeTcbPrivilege權(quán)限的利用思路
參考資料:
https://github.com/hatRiot/token-priv/blob/master/abusing_token_eop_1.0.txt#L418
SeTcbPrivilege
等同于獲得了系統(tǒng)的***權(quán)限
利用思路
· 調(diào)用LsaLogonUser獲得Token
將該Token添加至Local System account組
該Token具有System權(quán)限
可供參考的測(cè)試代碼:
https://github.com/3gstudent/Homework-of-C-Language/blob/master/EnableSeTcbPrivilege.cpp
代碼實(shí)現(xiàn)了開(kāi)啟當(dāng)前進(jìn)程的SeTcbPrivilege權(quán)限,登錄用戶test1,將其添加至Local System account組,獲得System權(quán)限,創(chuàng)建注冊(cè)表項(xiàng)HKEY_LOCAL_MACHINE\SOFTWARE\testtcb
0x06 SeBackupPrivilege權(quán)限的利用思路
參考資料:
https://github.com/hatRiot/token-priv/blob/master/abusing_token_eop_1.0.txt#L495
SeBackupPrivilege
用來(lái)實(shí)現(xiàn)備份操作,對(duì)當(dāng)前系統(tǒng)任意文件具有讀權(quán)限
利用思路
讀取注冊(cè)表HKEY_LOCAL_MACHINE\SAM、HKEY_LOCAL_MACHINE\SECURITY和HKEY_LOCAL_MACHINE\SYSTEM
導(dǎo)出當(dāng)前系統(tǒng)的所有用戶hash mimikatz的命令如下:
lsadump::sam /sam:SamBkup.hiv /system:SystemBkup.hiv
可供參考的測(cè)試代碼:
https://github.com/3gstudent/Homework-of-C-Language/blob/master/EnableSeBackupPrivilege.cpp
代碼實(shí)現(xiàn)了開(kāi)啟當(dāng)前進(jìn)程的SeBackupPrivilege權(quán)限,讀取注冊(cè)表,將其保存成文件C:\\test\\SAM、C:\\test\\SECURITY和C:\\test\\SYSTEM
0x07 SeRestorePrivilege權(quán)限的利用思路
參考資料:
https://github.com/hatRiot/token-priv/blob/master/abusing_token_eop_1.0.txt#L528
SeRestorePrivilege
用來(lái)實(shí)現(xiàn)恢復(fù)操作,對(duì)當(dāng)前系統(tǒng)任意文件具有寫(xiě)權(quán)限
利用思路1
獲得SeRestorePrivilege權(quán)限,修改注冊(cè)表HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
劫持exe文件的啟動(dòng)
實(shí)現(xiàn)提權(quán)或是作為后門(mén)
利用思路2
獲得SeRestorePrivilege權(quán)限,向任意路徑寫(xiě)入dll文件
實(shí)現(xiàn)dll劫持
實(shí)現(xiàn)提權(quán)或是作為后門(mén)
可供參考的測(cè)試代碼:
https://github.com/3gstudent/Homework-of-C-Language/blob/master/EnableSeRestorePrivilege.cpp
代碼實(shí)現(xiàn)了開(kāi)啟當(dāng)前進(jìn)程的SeRestorePrivilege權(quán)限,創(chuàng)建注冊(cè)表項(xiàng)HKEY_LOCAL_MACHINE\SOFTWARE\testrestore
0x08 SeCreateTokenPrivilege權(quán)限的利用思路
參考資料:
https://github.com/hatRiot/token-priv/blob/master/abusing_token_eop_1.0.txt#L577
SeCreateTokenPrivilege
用來(lái)創(chuàng)建Primary Token
利用思路
通過(guò)WinAPI ZwCreateToken創(chuàng)建Primary Token
將Token添加至local administrator組
該Token具有System權(quán)限
可供參考的測(cè)試代碼:
https://github.com/3gstudent/Homework-of-C-Language/blob/master/EnableSeCreateTokenPrivilege.cpp
代碼實(shí)現(xiàn)了開(kāi)啟當(dāng)前進(jìn)程的SeCreateTokenPrivilege權(quán)限,創(chuàng)建Primary Token,將其添加至local administrator組,開(kāi)啟SeDebugPrivilege和SeTcbPrivilege權(quán)限
0x09 SeLoadDriverPrivilege權(quán)限的利用思路
參考資料:
https://github.com/hatRiot/token-priv/blob/master/abusing_token_eop_1.0.txt#L626
SeLoadDriverPrivilege
用來(lái)加載驅(qū)動(dòng)文件
利用思路
創(chuàng)建驅(qū)動(dòng)文件的注冊(cè)表
reg add hkcu\System\CurrentControlSet\CAPCOM /v ImagePath /t REG_SZ /d "\??\C:\test\Capcom.sys" reg add hkcu\System\CurrentControlSet\CAPCOM /v Type /t REG_DWORD /d 1
加載驅(qū)動(dòng)文件Capcom.sys
Capcom.sys存在漏洞,系統(tǒng)加載后,可從普通用戶權(quán)限提升至System權(quán)限,利用代碼可參考:https://github.com/tandasat/ExploitCapcom
獲得System權(quán)限
可供參考的測(cè)試代碼: https://github.com/3gstudent/Homework-of-C-Language/blob/master/EnableSeLoadDriverPrivilege.cpp
代碼實(shí)現(xiàn)了開(kāi)啟當(dāng)前進(jìn)程的SeLoadDriverPrivilege權(quán)限,讀取注冊(cè)表項(xiàng)hkcu\System\CurrentControlSet\CAPCOM,加載驅(qū)動(dòng)文件Capcom.sys
0x0A SeTakeOwnershipPrivilege權(quán)限的利用思路
參考資料:
https://github.com/hatRiot/token-priv/blob/master/abusing_token_eop_1.0.txt#L688
SeTakeOwnershipPrivilege
同SeRestorePrivilege類(lèi)似,對(duì)當(dāng)前系統(tǒng)任意文件具有寫(xiě)權(quán)限
利用思路1
獲得SeTakeOwnershipPrivilege權(quán)限,修改注冊(cè)表HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
劫持exe文件的啟動(dòng)
實(shí)現(xiàn)提權(quán)或是作為后門(mén)
利用思路2
獲得SeTakeOwnershipPrivilege權(quán)限,向任意路徑寫(xiě)入dll文件
實(shí)現(xiàn)dll劫持
實(shí)現(xiàn)提權(quán)或是作為后門(mén)
可供參考的測(cè)試代碼:
https://github.com/3gstudent/Homework-of-C-Language/blob/master/EnableSeTakeOwnershipPrivilege.cpp
代碼實(shí)現(xiàn)了開(kāi)啟當(dāng)前進(jìn)程的SeTakeOwnershipPrivilege權(quán)限,修改注冊(cè)表項(xiàng)hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options的權(quán)限,普通用戶權(quán)限對(duì)其具有完整操作權(quán)限
后續(xù)的寫(xiě)操作:
reg add "hklm\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options" /v takeownership /t REG_SZ /d "C:\\Windows\\System32\\calc.exe"
0x0B SeDebugPrivilege權(quán)限的利用思路
參考資料:
https://github.com/hatRiot/token-priv/blob/master/abusing_token_eop_1.0.txt#L736
SeDebugPrivilege
用來(lái)調(diào)試指定進(jìn)程,包括讀寫(xiě)內(nèi)存,常用作實(shí)現(xiàn)dll注入
利用思路
找到System權(quán)限的進(jìn)程
dll注入
獲得System權(quán)限
可供參考的測(cè)試代碼:
https://github.com/3gstudent/Homework-of-C-Language/blob/master/EnableSeDebugPrivilege.cpp
代碼實(shí)現(xiàn)了開(kāi)啟當(dāng)前進(jìn)程的SeDebugPrivilege權(quán)限,向指定進(jìn)程注入dll
0x0C 小結(jié)
本文總結(jié)了普通用戶(或者LocalService用戶)Token中九種權(quán)限的利用方法,分析利用思路,完善實(shí)現(xiàn)代碼。
看完上述內(nèi)容,你們對(duì)Windows Token九種權(quán)限的利用分別是怎么樣的有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
網(wǎng)頁(yè)標(biāo)題:WindowsToken九種權(quán)限的利用分別是怎么樣的
當(dāng)前網(wǎng)址:http://bm7419.com/article34/pscgse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、標(biāo)簽優(yōu)化、網(wǎng)站設(shè)計(jì)、App設(shè)計(jì)、搜索引擎優(yōu)化、移動(dòng)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)