內網滲透之——mssql資料庫提權之——xp_cmdshell執行系統命令

賣N孩的X火柴發表於2020-03-12

條件

所謂利用資料進行提權,利用的其實是資料庫的執行許可權,所以只要我們滿足以下條件即可進行提權:
1、 必須獲得sa的賬號密碼或者與sa相同許可權的賬號密碼,且mssql沒有被降權。
2、 必須可以以某種方式執行sql語句,例如:webshell或者是1433埠的連線。

提權基本思路過程與原理

1.MSSQL在Windows server類的作業系統上,預設具有system許可權。System許可權在Windows server2003中許可權僅比管理員小;而在2003以上的版本,則為最高許可權。
2.獲取webshell之後可嘗試在伺服器各個站點的目錄尋找sa的密碼(某些站點直接在web應用程式中使用sa連線資料庫),一般情況下,.net(aspx)的站點資料庫連線字串在web.config或者和global.aspx也有可能是編譯在DLL檔案當中。
3.通過埠掃描檢視1433(mssql預設埠)是否對外開放,如果對外開放可使用遠端連線,使用sql聯結器連線進行提權,如果沒有對外開放,則使用webshell自帶的mssql資料庫連線功能連線至mssql資料庫。
4.sa作為mssql的預設最高許可權的賬戶,在正常情況下,可以通過xp_cmdshell等方式執行系統命令。

此處介紹另一種方法:利用爆破不上傳websheel進行提權

1.使用nmap進行埠掃描,檢視1433埠是否開放,如果開放即可遠端連線

2.使用華軍1433弱密碼口令掃描工具爆破sa使用者密碼
命令列安裝路徑下輸入以下命令(ip.txt裡寫要爆破的ip,pass.txt裡是字典,寫好後都放到安裝目錄下),就會在安裝路徑裡生成1.txt檔案,裡面記錄了掃描結果

exeHack1.exe -i ip.txt -p pass.txt -o 1.txt

3.navicat sql server利用sa使用者遠端連線

4.之後使用xp_cmdshell執行系統命令

4.1 開啟xp_cmdshell擴充套件儲存過程

navicat sql server裡新建查詢,輸入以下命令:(1開啟,0關閉,關閉時從下往上依次關閉)

use master;
exec sp_configure 'show advanced options',1;
reconfigure;
exec sp_configure 'xp_cmdshell',1;
reconfigure;

4.2 執行系統命令
新建查詢,輸入以下命令,可看到當前使用者為system,之後whoami處替換命令即可

use master;
exec master..xp_cmdshell "whoami";

相關文章