mssqlproxy ——通过套接字重用SQL Server在受限环境中执行横向移动

mssqlproxy

图片[1]-mssqlproxy ——通过套接字重用SQL Server在受限环境中执行横向移动 - JINGGR安全-JINGGR安全
图片[2]-mssqlproxy ——通过套接字重用SQL Server在受限环境中执行横向移动 - JINGGR安全-JINGGR安全

mssqlproxy是一个工具包,旨在通过套接字重用在受感染的 Microsoft SQL Server 中执行受限环境中的横向移动。客户端需要SQL Server 上的impacketsysadmin权限。

图片[3]-mssqlproxy ——通过套接字重用SQL Server在受限环境中执行横向移动 - JINGGR安全-JINGGR安全

在继续之前,请仔细阅读本文

它由三部分组成:

  • CLR 程序集:编译 assembly.cs
  • 核心DLL:编译reciclador.sln
  • 客户端:mssqlclient.py(基于Impacket的示例)

您可以编译这些库或从版本(x64) 下载它们。

汇编

要生成核心 DLL,只需将项目导入 Visual Studio (reciclador.sln) 并进行编译。

要生成 CLR 程序集,首先需要找到 C# 编译器:

Get-ChildItem -Recurse "C:\Windows\Microsoft.NET\" -Filter "csc.exe" | Sort-Object fullname -Descending | Select-Object fullname -First 1 -ExpandProperty fullname

然后,

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /target:library .\assembly.cs

用法

一旦两个库编译完成,就将核心DLL(reciclador)上传到目标服务器。

身份验证选项与原始 mssqlclient中的选项相同。mssqlproxy选项:

proxy mode:
  -reciclador path      Remote path where DLL is stored in server
  -install              Installs CLR assembly
  -uninstall            Uninstalls CLR assembly
  -check                Checks if CLR is ready
  -start                Starts proxy
  -local-port port      Local port to listen on
  -clr local_path       Local CLR path
  -no-check-src-port    Use this option when connection is not direct (e.g. proxy)

我们还实现了两个命令(在 SQL shell 中),用于下载和上传文件。与代理相关,我们有四个命令:

  • install:创建 CLR 程序集并将其链接到存储过程。您需要提供参数-clr以从本地 DLL 文件读取生成的 CLR。
  • 卸载:删除安装创建的内容。
  • check:检查是否一切准备就绪,可以启动代理。需要提供服务器 DLL 位置 ( ),可以使用upload-reciclador命令上传。
  • start:启动代理。如果-local-port未指定,它将监听端口 1337/tcp。

一旦代理启动,您就可以插入您的代理链;)

導播

注意事项1:如果使用非直接连接(例如中间的代理),则-no-check-src-port需要该标志,因此服务器仅检查源地址。

注意事项#2:目前,仅支持 IPv4 目标(也不支持 DNS 或 IPv6 地址)。

注意#3:谨慎使用!现在,如果您尝试建立多个并发连接,MSSQL 服务将崩溃

重要提示:务必在客户端按 Ctrl+C 停止 mssqlproxy。否则,服务器可能会崩溃,您必须手动重新启动 MSSQL 服务。

作者

巴勃罗·马丁内斯 ( @xassiz )、胡安·曼努埃尔·费尔南德斯 ( @TheXC3LL ) [ www.blackarrow.net – www.tarlogic.com ]

参考

国内下载链接

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享