0
点赞
收藏
分享

微信扫一扫

如何应对日益复杂的网络攻击?Edge SCDN(边缘安全加速)的应用场景探讨

穆风1818 2024-09-04 阅读 36

关于MAT

MAT是一款针对MSSQL服务器的安全检测与审计工具,该工具使用C#开发,可以帮助广大研究人员快速识别和发现MSSQL 服务器中的安全问题,并实现安全检测与审计目的。

功能介绍

工具要求

工具安装

源码编译

广大研究人员可以直接使用下列命令将该项目源码克隆至本地:

git clone https://github.com/SySS-Research/MAT.git

然后打开Visual Studio,加载项目代码,根据操作系统平台架构编译项目代码即可。

发布版本

除此之外,我们也可以直接访问该项目的【Releases页面】下载最新版本的MAT可执行程序。

工具使用

Example: MAT.exe [options]

Example: MAT.exe --server localhost -u sqlusername -p sqlpassword --os-command "whoami"

如果可执行文件在没有凭据的情况下执行(没有选项“-u:”或“-p:”),它将默认尝试使用 Windows 集成身份验证(当前登录的 Windows 用户)登录。

工具参数选项

工具运行演示

在执行安全检测和审计期间,如果在本地服务器上识别出本地 MSSQL Server 实例,我们就可以直接使用MAT手动与目标实例建立连接:

MAT.exe --server localhost

该工具显示收集到的Windows用户凭证可以登录 SQL Server“COM1”(Windows 集成身份验证 - 无需输入用户名/密码)。该工具提供以下输出:

用户属于“sysadmin”组。这允许用户激活 XP_CMD shell 并执行系统命令或列出 SQL 用户登录(这在后面很重要)。

激活 XP_cmdshell 后(MAT.exe --server localhost -e),可以随后执行系统命令(MAT.exe --server localhost --os-command "whoami")。

使用参数“--os-command”而不使用附加参数“--linked-server”会告诉工具在条目 SQL Server(COM1)上本地执行该命令:

下一步,可以测试用户 COM1\user 是否可用于访问链接服务器,MAT识别出了以下链接服务器:

在 SQL Server 上查询链接服务器时,服务器本身(在本例中为 COM1)也始终会列出。此处的实际链接服务器是“COM2”。直接尝试使用受感染的用户在此链接服务器上执行 SQL 命令会失败(MSSQL 工具会自动执行这些检查):

这是因为 COM1 上没有当前用户的登录映射,登录映射可以确定 SQL Server COM1 中的哪个用户与 COM2 中的哪个用户相关联。

因此,了解 COM1 上有哪些用户非常重要,这样才能测试这些用户是否存在登录映射(如果权限足够高,则可以通过 SQL Management Studio 直接在链接服务器对象“COM2”中检查这一点)。此前,MAT检测到以下用户登录:

拥有“sysadmin”权限的用户com1\user也可以模拟SQL用户。

因此,可以尝试模拟用户“userx”。通过参考用户/权限图表,可以发现模拟用户“userx”可以以“usery”的身份在 COM2 上执行 SQL 命令。需要注意的是,模拟后执行的所有操作都以模拟用户的身份进行。相关命令如下:

MAT.exe --server localhost --impersonate userx

使用该工具可获得以下结果:

在此演示场景中,该工具不仅能够在本地或链接服务器 COM2 上执行 OS 命令(通过 1 个链接),还可以从那里使用 SQL Server COM1 作为链接服务器(通过 2 个链接)。在三重链接场景中,COM1 将首先通过链接连接到 COM2,然后返回 COM1,然后再次通过链接连接到 COM2。指示“Pwn3d!”表示链接服务器上的映射用户属于“sysadmin”组,因此可以完全控制 SQL Server。

下图显示了每个 MSSQL 服务器的现有用户及其映射:

许可证协议

本项目的开发与发布遵循MIT开源许可协议。

项目地址

MAT:【GitHub传送门】

举报

相关推荐

0 条评论