Ir al contenido

Herramientas y automatización para Microsoft SQL Server

Por

Madurezreviewed
Última revisión
Publicado
Última actualización

El workflow de SQL Server mantiene instancia, endpoint, principal y base actual. No mezcles resultados de instancias distintas del mismo host.

Pregunta Herramienta Diferencia
instancias y Browser Nmap descubrimiento preautenticación
sesión administrada sqlcmd cliente oficial
autenticación Windows desde Linux impacket-mssqlclient integra NTLM/Kerberos y helpers
contexto y permisos T-SQL fuente efectiva

sqlcmd -S recibe servidor, instancia o puerto. -E usa credenciales integradas. -U fija un login SQL y -Q ejecuta una consulta:

Consultar contexto con autenticación integrada
sqlcmd -S 'FQDN\INSTANCE' -E -Q "SELECT @@VERSION, SUSER_SNAME(), USER_NAME();"

Evita -P PASSWORD. Omítelo para que se solicite o utiliza el mecanismo de secretos previsto por el entorno.

-l fija el timeout de inicio de sesión en segundos y -t el timeout de cada consulta. -b devuelve un código de salida distinto de cero cuando SQL Server informa un error con gravedad suficiente. -r1 envía todos los mensajes de error a stderr y -o conserva el output en un archivo:

Ejecutar una consulta acotada y conservar canales separados
sqlcmd -S 'FQDN\INSTANCE' -E `
-l 15 -t 60 -b -r1 `
-Q "SELECT @@VERSION, SUSER_SNAME(), USER_NAME();" `
-o evidence\sqlcmd-context.txt

La receta distingue un timeout de login de una consulta que supera un minuto y permite que la automatización detecte el error por el código de salida. El archivo no incluye necesariamente los mensajes enviados a stderr. Captura ese canal por separado cuando forme parte de la evidencia.

Abrir TDS con Impacket
impacket-mssqlclient 'DOMAIN/USERNAME@FQDN' -windows-auth

Si usas Kerberos, prepara DNS, hora, ticket y SPN antes de añadir -k. Cambiar simultáneamente hostname, mecanismo y credencial oculta la causa de un fallo.

ms-sql-info obtiene instancias. ms-sql-config, ms-sql-dac, ms-sql-empty-password y ms-sql-ntlm-info responden preguntas distintas:

Descubrir Browser e identidad NTLM
sudo nmap -sU -p 1434 --script ms-sql-info TARGET_IP
nmap -sV -p 1433 --script ms-sql-info,ms-sql-ntlm-info TARGET_IP

Los scripts ms-sql-brute, ms-sql-query y ms-sql-xp-cmdshell autentican o ejecutan acciones. No los incluyas por prefijo. Inspecciona argumentos y categorías con nmap --script-help 'ms-sql-*'.

SQL Browser ausente no descarta instancias. Un login correcto puede carecer de acceso a una base. sysadmin, IMPERSONATE, ownership, database trust y linked servers son caminos distintos. Confirma siempre mediante T-SQL y registra auth_scheme, encrypt_option y base actual.