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

2024-09-04 05:12

本文主要是介绍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传送门】

这篇关于MAT:一款针对MSSQL服务器的安全检测与审计工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1135090

相关文章

Python极速搭建局域网文件共享服务器完整指南

《Python极速搭建局域网文件共享服务器完整指南》在办公室或家庭局域网中快速共享文件时,许多人会选择第三方工具或云存储服务,但这些方案往往存在隐私泄露风险或需要复杂配置,下面我们就来看看如何使用Py... 目录一、android基础版:HTTP文件共享的魔法命令1. 一行代码启动HTTP服务器2. 关键参

基于Python实现简易视频剪辑工具

《基于Python实现简易视频剪辑工具》这篇文章主要为大家详细介绍了如何用Python打造一个功能完备的简易视频剪辑工具,包括视频文件导入与格式转换,基础剪辑操作,音频处理等功能,感兴趣的小伙伴可以了... 目录一、技术选型与环境搭建二、核心功能模块实现1. 视频基础操作2. 音频处理3. 特效与转场三、高

SpringBoot改造MCP服务器的详细说明(StreamableHTTP 类型)

《SpringBoot改造MCP服务器的详细说明(StreamableHTTP类型)》本文介绍了SpringBoot如何实现MCPStreamableHTTP服务器,并且使用CherryStudio... 目录SpringBoot改造MCP服务器(StreamableHTTP)1 项目说明2 使用说明2.1

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

MySQL进行数据库审计的详细步骤和示例代码

《MySQL进行数据库审计的详细步骤和示例代码》数据库审计通过触发器、内置功能及第三方工具记录和监控数据库活动,确保安全、完整与合规,Java代码实现自动化日志记录,整合分析系统提升监控效率,本文给大... 目录一、数据库审计的基本概念二、使用触发器进行数据库审计1. 创建审计表2. 创建触发器三、Java

Nginx安全防护的多种方法

《Nginx安全防护的多种方法》在生产环境中,需要隐藏Nginx的版本号,以避免泄漏Nginx的版本,使攻击者不能针对特定版本进行攻击,下面就来介绍一下Nginx安全防护的方法,感兴趣的可以了解一下... 目录核心安全配置1.编译安装 Nginx2.隐藏版本号3.限制危险请求方法4.请求限制(CC攻击防御)

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

Python使用pip工具实现包自动更新的多种方法

《Python使用pip工具实现包自动更新的多种方法》本文深入探讨了使用Python的pip工具实现包自动更新的各种方法和技术,我们将从基础概念开始,逐步介绍手动更新方法、自动化脚本编写、结合CI/C... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核