
mssqlproxy es un conjunto de herramientas diseñado para realizar movimiento lateral en entornos restringidos a través de un Microsoft SQL Server comprometido mediante la reutilización de sockets
mssqlproxy es un kit de herramientas diseñado para realizar movimiento lateral en entornos restringidos a través de un Microsoft SQL Server comprometido mediante reutilización de sockets. El cliente requiere impacket y privilegios sysadmin en el servidor SQL.
Por favor, lea este artículo atentamente antes de continuar.
Consta de tres partes:
Puede compilar las bibliotecas o descargarlas desde releases (x64).
Para generar la DLL principal, simplemente importe el proyecto a Visual Studio (reciclador.sln) y compílelo.
Para generar el ensamblado CLR, primero debe encontrar el compilador de C#:
Get-ChildItem -Recurse "C:\Windows\Microsoft.NET\" -Filter "csc.exe" | Sort-Object fullname -Descending | Select-Object fullname -First 1 -ExpandProperty fullname
Luego,
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /target:library .\assembly.cs
Una vez que las dos bibliotecas estén compiladas, suba la DLL principal (reciclador) al servidor de destino.
Las opciones de autenticación son las mismas que en el mssqlclient original. Opciones de 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)
También hemos implementado dos comandos (dentro del shell SQL) para descargar y subir archivos. En cuanto a la funcionalidad del proxy, tenemos cuatro comandos:
-clr para leer el CLR generado desde un archivo DLL local.-reciclador), que se puede subir usando el comando upload.-local-port, escuchará en el puerto 1337/tcp.Una vez iniciado el proxy, puede conectar sus proxychains ;)
Nota #1: si se utiliza una conexión no directa (por ejemplo, proxies intermedios), se necesita la bandera -no-check-src-port, para que el servidor solo verifique la dirección de origen.
Nota #2: por el momento, solo se admiten objetivos IPv4 (ni direcciones DNS ni IPv6).
Nota #3: ¡úselo con cuidado! por ahora, el servicio MSSQL fallará si intenta establecer múltiples conexiones concurrentes.
Importante: Es importante detener mssqlproxy presionando Ctrl+C en el cliente. Si no, el servidor puede fallar y tendrá que reiniciar el servicio MSSQL manualmente.
Pablo Martinez (@xassiz), Juan Manuel Fernandez (@TheXC3LL) [ www.blackarrow.net - www.tarlogic.com ]
Todo el código incluido en este proyecto está licenciado bajo los términos de la licencia MIT. El mssqlclient.py se basa en Impacket.