昨天的Linux PrivEsc中已經介紹過提權的基本概念了,所以今天就直接進入正題吧
與Linux的提權一樣,有一些常見的Windows提權手段,像是Windows Version和一些設定,我們可以透過輸入一些指令獲得這台機器的基本訊息,例如:
systeminfo
這個指令可以提供此機器的Windows硬體與軟體環境參數,也可以將此結果丟給Windows Exploit Suggester,python3 wes.py systeminfo.txt
,這會幫你判別出那些提權漏洞最有可能存在,並列出相關CVE和KB
圖源同上
wmic qfe
這個指令可以會提供此機器存在的patch和更新
set
Get-ChildItem Env: | ft Key,Value
列出所有環境變數
whoami /priv
or whoami /groups
whoami /all
可以看到圖中的SeImpersonatePrivilege的狀態(State)是Enalbe,這就可以使用Juicy Potato,這個工具是一個local提權工具,讓攻擊者可以從一個較低權限的帳戶提升到NT AUTHORITY\SYSTEM
,也就是Windows中的Administrator
帳戶。
圖源同Juicy Potato Github
net share
列出網路共享
WMIC /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntivirusProduct Get displayName
列出防毒軟體
%SYSTEMROOT%\repair\SAM
%SYSTEMROOT%\System32\config\RegBack\SAM
%SYSTEMROOT%\System32\config\SAM
%SYSTEMROOT%\repair\system
%SYSTEMROOT%\System32\config\SYSTEM
%SYSTEMROOT%\System32\config\RegBack\system
也可能可以從這些地方找到密碼,再使用如pwdump
,samdump2
,johntheripper
來破解密碼
REG QUERY HKLM /F "password" /t REG_SZ /S /K
可以用來找出registry中的金鑰或密碼,相似的指令還有reg query "HKLM\SOFTWARE\Microsoft\Windows NT\Currentversion\Winlogon"
等等
tasklist /v
,Get-Process
除了這些指令可以幫助提權外,還有像是DLL Hijacking、$PATH Interception和Windows Kernel漏洞、具有漏洞的Driver等等
這些只是Windows提權的一小部分,實際上提權手段種類繁多,也會依據不同環境有不同的變種和方法,而提權考驗的是對於該系統的經驗、知識儲備和各種軟體的熟悉程度以及資安新聞的follow,例如我曾碰過一台機器,用了一些常規方法和一個script都沒有看到特別有價值的東西,反而在手動瀏覽目錄時看到teamviewer,就想到可以拿來進行提權。
Script
Fireeye的SessionGopher
各種script都有其優點和針對性,搭配使用加上手動檢查效果更好