当前位置: 首页 > news >正文

MAT:一款针对MSSQL服务器的安全检测与审计工具

关于MAT

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

功能介绍

1、执行自动检查并识别安全问题;

2、允许通过 Windows 集成身份验证以及 SQL 身份验证登录;

3、如果权限存在则快速激活 XP_cmdshell(本地以及链接服务器上);

4、通过 XP_cmdshell 方便地执行系统命令(本地以及单/双链接服务器);

5、方便执行 SQL 命令(本地以及链接服务器上);

6、通过 XP_dirtree 快速触发 NTLM 请求;

7、自定义存储过程-用于执行操作系统命令(本地);

8、自动检查并启用 RPC OUT(如果链接服务器禁用 RPC OUT,则链接服务器上的存储程序(如 xp_cmdshell)将不可用);

9、自动转储 MSSQL 用户哈希;

工具要求

Visual Studio

CommandLineParser.2.9.1(NuGet包)

Costura.Fody(NuGet包)

工具安装

源码编译

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

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 用户)登录。

工具参数选项

Options:-s, --server             SQL 服务器(必填)-u, --user               SQL 用户-p, --password         SQL 密码-d, --database         数据库名称 (默认: 'master')-r, --relay              通过XP_DIRTREE触发到给定IP的NTLM中继-i, --impersonate       模拟指定的SQL用户--dumphashes         如果当前用户具有管理员权限,则转储MSSQL用户哈希-l, --linked-server       链接的SQL服务器-e                     在本地(-e)或链接服务器(-e LINKEDSERVER)上启动XP_CMD Shell--os-command          在所选目标系统中执行的OS命令--sql-command         在所选目标系统中执行的SQL命令--double-link           使用双链接通过XP_CMD执行OS命令--stoprox              通过自定义程序集存储进程执行OS命令--help                 显示工具帮助信息--version              显示版本信息

工具运行演示

在执行安全检测和审计期间,如果在本地服务器上识别出本地 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检测到以下用户登录:

userx

user1

adminuser

拥有“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传送门】


http://www.mrgr.cn/news/18636.html

相关文章:

  • 数图亮相第三届中国区域零售创新峰会:共绘零售新蓝图,携手迈向新征程
  • git stash命令及丢失代码问题
  • 8、Django Admin后台中添加Logo
  • Scott Brinker:Martech中的AI会让买家体验更好还是更糟?这取决于…….
  • 解除禁售!Ozon重新开放电子产品等品类销售,Ozon出单了怎么发货?
  • 取图、壁纸,表情包小程序源码系统搭建,已对接好流量主轻松变现
  • 一文速学ChatBi“与数据库对话“大模型技术原理及框架一览
  • 人工智能大模型工作原理(包括数据收集与预处理、大模型训练、大模型部署与应用)
  • 网络热词、热梗、流行语网站汇总
  • 电话销售人员开发客户的基本过程 电销系统部署
  • 【性能飞升】OpenCV-Python改动一行代码性能提升百倍以上
  • THE UNIVERSITY OF MANCHESTER-NUMERICAL ANALYSIS 2Final Exam2021
  • Unity3D DOTS Component详解
  • IDEA Maven 源修改为国内阿里云镜像的正确方式
  • 【机器学习-神经网络】循环神经网络
  • 探索LLM大模型奥秘,新书《大模型入门:技术原理与实战应用》助你快速上手(附PDF下载)
  • 尾矿库位移监测站:为矿业行业的健康发展贡献力量
  • day46 代码随想录 单调栈难题 面试高频题
  • 用mintupgrade工具将Linux Mint 21.3升级到Linux Mint 22失败的解决办法
  • 3GPP R18 Network energy savings(NES) 之cell DTX/DRX