Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
SQLRecon — Un kit de herramientas C# MS SQL diseñado para reconocimiento ofensivo y post-explotación. | Kitploit
Herramientas/GitHubGitHub/xforcered/sqlrecon
Escalada de PrivilegiosReconocimientoAtaques de ContraseñasExplotaciónMovimiento LateralPost-ExplotaciónPruebas de PenetraciónRed TeamingSeguridad de Bases de Datos
GitHubxforcered/sqlrecon

SQLRecon

Un kit de herramientas C# MS SQL diseñado para reconocimiento ofensivo y post-explotación.

39938hace 1 añoRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio

  licence badge wiki Badge stars badge forks badge issues badge

SQLRecon

SQLRecon es un conjunto de herramientas para Microsoft SQL Server diseñado para reconocimiento ofensivo y post-explotación. Para obtener información detallada sobre cómo usar cada técnica, consulta la wiki.

Puedes descargar una copia de SQLRecon desde la página de releases. Alternativamente, siéntete libre de compilar la solución tú mismo. Esto debería ser tan sencillo como clonar el repositorio, hacer doble clic en el archivo de la solución y compilar.

También se ha proporcionado orientación sobre prevención, detección y mitigación para todos los defensores que estáis ahí fuera.

Echa un vistazo a mi publicación en el sitio web de IBM Security Intelligence. Si prefieres los vídeos, entonces echa un vistazo a mi presentación en Black Hat.

Módulos de enumeración

Los módulos de enumeración no requieren que se proporcione un proveedor de autenticación. Estos módulos deben pasarse mediante el indicador de módulo de enumeración (/e:, /enum:). La wiki tiene detalles sobre el uso de módulos de enumeración.``` Info - Show information about the SQL server. /h:, /host -> SQL server hostname or IP. Multiple hosts supported. /port: -> (OPTIONAL) Defaults to 1434 (UDP). /t:, timeout: -> (OPTIONAL) Defaults to 3s.

SqlSpns - Use the current user token to enumerate the AD domain for MSSQL SPNs. /d:, /domain: -> (OPTIONAL) NETBIOS name or FQDN of domain.

root@kitploit:~
# Authentication Providers

SQLRecon admite un conjunto diverso de proveedores de autenticación (`/a:, /auth:`) para permitir la interacción con un Microsoft SQL Server.```
WinToken   - Use the current users token to authenticate against the SQL database
             /h:, /host:     -> SQL server hostname or IP

WinDomain  - Use AD credentials to authenticate against the SQL database
             /h:, /host:     -> SQL server hostname or IP. Multiple hosts supported.
             /d:, /domain:   -> NETBIOS name or FQDN of domain.
             /u:, /username: -> Username for domain user.
             /p:, /password: -> Password for domain user.

Local      - Use local SQL credentials to authenticate against the SQL database
             /h:, /host:     -> SQL server hostname or IP. Multiple hosts supported.
             /u:, /username: -> Username for local SQL user.
             /p:, /password: -> Password for local SQL user.

EntraID    - Use Azure EntraID credentials to authenticate against the Azure SQL database
             /h:, /host:     -> SQL server hostname or IP. Multiple hosts supported.
             /d:, /domain:   -> FQDN of domain (DOMAIN.COM).
             /u:, /username: -> Username for domain user.
             /p:, /password: -> Password for domain user.

AzureLocal - Use local SQL credentials to authenticate against the Azure SQL database
             /h:, /host:     -> SQL server hostname or IP. Multiple hosts supported.
             /u:, /username: -> Username for local SQL user.
             /p:, /password: -> Password for local SQL user.

Proveedores de autenticación - Detalles adicionales

  • Hosts: El indicador de host (/h:, host:) es obligatorio y permite uno o más servidores SQL. Si desea ejecutar un módulo contra varios servidores SQL, separe los hosts con una coma, por ejemplo /h:SQL01,10.10.10.2,SQL03.
  • Base de datos: SQLRecon se conecta a la base de datos master de forma predeterminada; sin embargo, esto se puede cambiar opcionalmente proporcionando un nombre de base de datos personalizado mediante el indicador database (/database:).
  • Depuración: El indicador /debug es opcional y muestra todas las consultas SQL que ejecuta un módulo, sin ejecutarlas realmente en los hosts remotos. Puede encontrar un ejemplo de esto en la wiki.
  • Puerto: En algunos casos, es posible que un Microsoft SQL Server no esté escuchando en un puerto TCP estándar. Algunos ejemplos son el clúster de conmutación por error de Microsoft SQL Server o los puertos TCP dinámicos. SQLRecon se conecta a las bases de datos a través del puerto TCP 1433 de forma predeterminada; sin embargo, esto se puede cambiar opcionalmente usando el indicador /port:.
  • Tiempo de espera: El tiempo de conexión predeterminado a la base de datos SQL es de 3 segundos; sin embargo, este valor se puede cambiar opcionalmente proporcionando un valor de tiempo de espera (/t:, /timeout:) que corresponde al número de segundos antes de terminar el intento de conexión.

Tenga en cuenta que el proveedor de autenticación EntraID requiere que la Biblioteca de autenticación de Azure Active Directory (ADAL) o la Biblioteca de autenticación de Microsoft (MSAL) exista en el sistema desde el que se ejecuta SQLRecon. Esto es para la funcionalidad de autenticación y autorización de Azure EntraID.

Módulos SQL

Los módulos SQL se ejecutan contra una o más instancias de Microsoft SQL Server. Estos módulos deben pasarse al indicador de módulo (/m:, /module:).

Módulos SQL - Estándar

El indicador de host (/h:, host:) es obligatorio y permite uno o más servidores SQL. Si desea ejecutar un módulo contra varios servidores SQL, separe los hosts con una coma, por ejemplo /h:SQL01,10.10.10.2,SQL03.

La wiki tiene detalles sobre el uso de cada módulo que admite la ejecución en una o más instancias de SQL Server.

Módulos SQL - Suplantación

Los módulos de suplantación se ejecutan contra una o más instancias de Microsoft SQL Server, bajo el contexto de un usuario SQL suplantado. Todos los módulos de suplantación tienen los siguientes requisitos mínimos:

  • Se debe especificar un usuario de suplantación (/i:, /iuser:).
  • Se debe especificar un módulo que admita la suplantación (/m:, /module:).

La wiki tiene detalles sobre el uso de cada módulo que admite la ejecución mediante suplantación.

Módulos SQL - Vinculados

Los módulos vinculados se ejecutan en una o más instancias de un Microsoft SQL Server vinculado. Todos los módulos vinculados tienen los siguientes requisitos mínimos:

  • Se debe especificar un servidor SQL vinculado (/l:, /link:). El indicador de vínculo permite uno o más servidores SQL vinculados. Por ejemplo, si SQL01 tiene un vínculo con SQL02, y SQL01 tiene un vínculo con DB04, puede separar los hosts vinculados con una coma, y se ejecutará un módulo en cada servidor SQL vinculado, por ejemplo /l:SQL02,DB04.
  • Se debe especificar un módulo que admita la ejecución vinculada (/m:, /module:).

La wiki tiene detalles sobre el uso de cada módulo que admite la ejecución en una o más instancias de un servidor SQL vinculado.

Módulos SQL - Cadena vinculada

Los módulos de cadena vinculada se ejecutan en el Microsoft SQL Server final de una cadena de servidores vinculados. Todos los módulos de cadena vinculada tienen los siguientes requisitos mínimos:

  • Se debe especificar una cadena de servidores SQL vinculados en el indicador /l:, /link:. Si SQL01 tiene un vínculo con SQL02, y SQL02 tiene un vínculo con PAYMENTS01, y desea ejecutar un módulo en PAYMENTS01, entonces el argumento sería /l:SQL02,PAYMENTS01.
  • El indicador /chain debe incluirse para ejecutar el módulo contra el servidor SQL final de la cadena vinculada proporcionada.
  • Se debe especificar un módulo que admita la ejecución de cadena vinculada (/m:, /module:).

La wiki tiene detalles sobre el uso de cada módulo que admite la ejecución en el servidor SQL final proporcionado en una cadena de servidores SQL vinculados.

Módulos SCCM

SQLRecon tiene varios módulos que pueden ayudar a enumerar y atacar Microsoft System Center Configuration Manager (SCCM) y Microsoft Endpoint Configuration Manager (ECM). El servidor SCCM o ECM deberá tener una base de datos Microsoft SQL expuesta local o remotamente.

Los módulos SCCM deben pasarse al indicador de módulo SCCM (/s:, /sccm:).

La mayoría de los módulos SCCM se pueden ejecutar bajo el contexto de un usuario SQL suplantado (/i:, /iuser:).

La wiki tiene detalles sobre el uso de cada módulo contra una base de datos SCCM/ECM.

Módulos SCCM - Detalles adicionales
  • El módulo Users lista todos los usuarios de la tabla RBAC_Admins. Estos son todos los usuarios configurados con algún nivel de acceso a SCCM.
  • El módulo Sites lista todos los demás sitios con datos almacenados en la tabla DPInfo de las bases de datos de SCCM. Esto puede proporcionar vías de ataque adicionales, ya que diferentes sitios pueden configurarse de diferentes maneras (inseguras).
  • El módulo Logons consulta la tabla Computer_System_DATA para recuperar todos los clientes SCCM asociados junto con el usuario que inició sesión en ellos por última vez. NOTA: Esto solo se actualiza una vez por semana de forma predeterminada y no estará 100 % actualizado. Use /option: como argumento opcional (no requerido) para filtrar los clientes SCCM.
  • El módulo TaskList proporciona una lista de todas las secuencias de tareas almacenadas en la base de datos SCCM, pero no accede al contenido real de los datos de las tareas.
  • El módulo TaskData recupera todas las secuencias de tareas almacenadas en la base de datos SCCM y las descifra a texto plano. Las secuencias de tareas pueden contener credenciales para unir sistemas a dominios, asignar recursos compartidos, ejecutar comandos, etc.
  • El módulo enumera las credenciales almacenadas por SCCM para su uso en diversas funciones. Estas credenciales no se pueden descifrar de forma remota porque la clave se almacena en el servidor SCCM. Sin embargo, este módulo proporciona información sobre si tiene sentido intentar obtener la clave.

Ampliación de SQLRecon

Si está interesado en ampliar SQLRecon, consulte la sección de contribución y ampliación en la wiki.

Le animo a abrir un issue si tiene sugerencias o ideas.

Hoja de ruta

El objetivo es mejorar SQLRecon de forma continua. A continuación se enumeran algunas áreas de investigación planificadas:

  • Implementar soporte para autenticación basada en hash NTLM.
  • Explorar las funcionalidades de enablerpc/disablerpc para servidores SQL vinculados y en cadena.

Créditos

Las siguientes personas han contribuido directa o indirectamente a diversos aspectos de SQLRecon.

  • Adam Chester (xpn)
  • Azaël Martin (n3rada)
  • Daniel Duggan (rasta-mouse)
  • Dave Cossa (G0ldenGunSec)
  • Dwight Hohnstein (djhohnstein)
  • Joshua Magri (passthehashbrowns)

Historial

v3.9
  • Se agregaron las bases de datos a las que el usuario tiene acceso en el módulo whoami (JBalanza).
  • Se corrigió un problema en el módulo adsi donde el servidor LDAP no necesita agregarse a la base de datos msdb; además, la función creada ahora se elimina correctamente.
  • Se corrigió un problema donde las consultas RPC que tienen una declaración AT fallan en el servidor de destino si el nombre de host proporcionado es un FQDN.
  • Se actualizó el README.
  • Se actualizó la Wiki.
v3.8
  • Se agregó lógica para admitir la ejecución de ensamblados CLR en SQL Server 2016 y versiones anteriores. Esto es para el módulo clr. Ejecución admitida en todos los contextos.
  • Se agregó lógica para cargar un ensamblado CLR de servidor LDAP en SQL Server 2016 y versiones anteriores. Esto es para el módulo adsi. Ejecución admitida en todos los contextos.
  • Se actualizó el README.
  • Se actualizó la Wiki.
v3.7
  • Refactorización completa de la base de código.
  • Documentación actualizada (comentarios de código, README y wiki)
  • Ejecución contra una cadena de servidores SQL vinculados. Por ejemplo, si SQL01 tiene un vínculo con SQL02, y SQL02 tiene un vínculo con SQL03, y SQL03 tiene un vínculo con PAYMENTS01. Ahora es posible ejecutar comandos desde SQL01 en PAYMENTS01 usando la cadena de servidores vinculados (/link:SQL02,SQL03,PAYMENTS01 /chain). Crédito a Azaël Martin (n3rada).
  • Se eliminaron los módulos 'l' y 'i', y se introdujo lógica de contexto para que los nombres de los módulos puedan ser los mismos en la ejecución estándar, de suplantación, vinculada y en cadena.
  • Se agregó soporte de cadena a todos los módulos vinculados.
  • Se agregó soporte para depuración (/debug), que mostrará diversa información de depuración y todas las consultas SQL que ejecutará un módulo, sin ejecutarlas.
v3.6
  • Ahora se admite la ejecución contra múltiples servidores SQL proporcionados en el indicador /host o /h usando valores separados por comas.
  • Ahora se admite la ejecución contra múltiples servidores SQL vinculados proporcionados en el indicador /link o /l usando valores separados por comas.
  • Se cambió /lhost a /link.
  • Se eliminaron los módulos 's' y se creó la opción /s, /sccm para los módulos SCCM.
  • Se agregó soporte de suplantación a todos los módulos SCCM, con la excepción de DecryptCredentials.
  • Se agregó un nuevo módulo de enumeración (/enum) llamado info, que puede usar un contexto no autenticado para obtener información del servidor SQL, incluidos el nombre de la instancia y el puerto TCP mediante el protocolo UDP.
v3.5
  • Corrección de errores donde la ejecución vinculada de adsi no eliminaba el servidor LDAP.
  • Se eliminó la ejecución de trabajos del agente de adsi vinculado, en favor de openquery/rpc.
  • Se cambió /lhost a /adsi en el módulo adsi.
  • Se cambió /rhost a /unc en el módulo smb.
  • Se eliminó CaptureHash.cs y se simplificó la lógica.
  • Se eliminó SetEnumerationType.cs y se simplificó la lógica.
  • Se renombró Impersonation.cs a Impersonate.cs.
  • Se renombró OleCmdExec.cs a .
v3.4
  • Se agregó soporte de suplantación para el módulo smb.
  • Se agregó soporte de suplantación para el módulo info.
  • Se agregó soporte vinculado para el módulo info.
v3.3
  • Se crearon los módulos rows, iRows y lRows.
  • Se actualizó sLogons para incluir un filtro opcional.
  • Corrección de errores donde los módulos xp_cmdshell no imprimían la salida de los comandos en la consola.
  • Se limpió el menú de ayuda.
v3.2
  • Revisión completa del análisis de argumentos de línea de comandos.
  • Se actualizaron el README, los casos de prueba y la wiki con nuevos ejemplos.
  • Se rediseñó el análisis de argumentos basado en enumeración y autenticación.
  • Se creó SetEnumerationType.cs.
  • Se cambió el módulo de enumeración domain a SqlSpns.
v3.1* Se cambió el constructor de `SetAuthenticationType.cs` por un nuevo método llamado `EvaluateAuthenticationType`. * Se creó `CreateSqlConnectionObject` en `SetAuthenticationType.cs`, que extiende SQLRecon para soportar múltiples objetos de conexión SQL simultáneos. * Se creó `ADSI.cs`, que incorpora ataques de credenciales ADSI como se describe [aquí](https://www.tarlogic.com/blog/linked-servers-adsi-passwords/). * Se crearon los módulos `adsi`, `iAdsi` y `lAdsi`. * Se crearon los módulos `lLinks` e `iLinks`. * Se actualizaron el README, los casos de prueba y la wiki con nuevos ejemplos.
v3.0
  • Se implementó la comprobación de errores para usuarios suplantados inexistentes.
  • Se crearon ExecuteImpersonationQuery y ExecuteImpersonationCustomQuery.
  • Se eliminó Impersonate.cs.
  • Se añadió el módulo checkRpc.
  • Se añadió el módulo iCheckRpc.
  • Se añadió el módulo lCheckRpc.
  • Se rediseñaron los módulos SCCM.
  • Se rediseñó el análisis de argumentos de SCCM.
  • Se aplicó el formato camelCase a los comandos del menú de ayuda para facilitar la lectura.
  • Se actualizaron las pruebas con los nuevos módulos.
v2.9
  • Se renombró EnableDisable.cs a ConfigureOptions.cs.
  • Se revisaron por completo las configuraciones de opciones avanzadas.
  • Se implementó la comprobación de errores RPC en todos los lugares donde se llama a ExecuteLinkedCustomQueryRpcExec.
v2.8
  • Se creó PrintUtils.cs, que implementa una clase de impresión para la salida estandarizada.
  • Se movió TablePrinter de Help.cs a PrintUtils.cs.
  • Se estandarizó el formato de impresión para toda la salida de consola usando la clase PrintUtils.
  • Se cambiaron los modificadores de acceso para clases y variables de clase.
  • Se añadió una comprobación para ver si el resultado está vacío para:
    • query
    • search
    • tables
    • lColumns
    • lQuery
    • lSearch
    • lTables
    • iColumns
v2.7
  • Se cambió la autenticación Azure a AzureAD.
  • Se creó la autenticación AzureLocal.
  • Se añadió el módulo disableRpc.
  • Se añadió el módulo enableRpc.
  • Se añadió el módulo iEnableRpc.
  • Se añadió el módulo iDisableRpc.
  • Se eliminó el módulo lEnableRpc.
  • Se eliminó el módulo lDisbleRpc.
  • Se actualizaron las pruebas con los nuevos módulos.
v2.6.1
  • Se corrigieron errores en lAgentCmd.
  • Se corrigió la estabilidad de clr, iClr y lClr usando SqlCommand.ExecuteNonQuery al crear el procedimiento almacenado.
  • Se corrigió un error en lClr que no eliminaba los ensamblados o procedimientos almacenados creados.
v2.6
  • Se añadió el módulo columns.
  • Se añadió el módulo iColumns.
  • Se añadió el módulo iDatabases.
  • Se añadió el módulo iSearch.
  • Se añadió el módulo iTables.
  • Se añadió el módulo lColumns.
  • Se añadió el módulo lSearch.
v2.5
  • Se corrigieron varios errores en los módulos SCCM.
  • Se organizó el menú de ayuda usando una tabla.
  • Se mejoró la salida proporcionada por ExecuteLinkedCustomQueryRpcExec.
  • Se mejoró el comentado del código en todo el proyecto.
  • Se mejoró la coherencia de los nombres de los métodos en las funciones de ejecución de comandos.
  • Se mejoró la modularidad mediante un mejor uso de la programación orientada a objetos.
  • Se cambió la bandera de puerto personalizado del servidor SQL a x.
  • Se movió Random.cs al directorio utilities.
  • Se estandarizó el estilo de impresión para hacerlo más coherente en todos los módulos.
  • Se crearon bancos de pruebas estándar, de suplantación y vinculados.
v2.4
  • Se cambió la autenticación Windows a WinToken.
  • Se creó la autenticación WinDomain, que usa el nombre de usuario y la contraseña del dominio AD para autenticarse mediante suplantación. Consulta Impersonation.cs.
  • Se rediseñó el análisis y manejo de argumentos en ArgumentLogic.cs, SQLAuthentication.cs y ModuleHandler.cs.
  • ModuleHandler.cs ya no usa una enorme sentencia if/else if/else para ejecutar módulos. En su lugar, ahora se usa la reflexión para llamar a métodos que coinciden con los nombres de los módulos de comandos.
  • Se añadió el directorio commands, que contiene variables globales que se usan en todo el programa.
  • Se integraron todos los proveedores de autenticación en SQLAuthentication.cs.
  • Se movió el análisis de argumentos de Program.cs a ArgumentLogic.cs.
v2.3
  • Se añadió funcionalidad SCCM.
  • Se añadieron módulos SCCM, que se pueden ejecutar usando el comando sccm.
  • Se corrigió la comprobación del estado RPC en servidores SQL vinculados.
  • Se añadió la capacidad de descargar ensamblados .NET mediante HTTP/S.
v2.2
  • Se ampliaron los roles que se consultan en los módulos roles, iRoles y lRoles.
  • Se crearon los módulos users, iUsers y lUsers.
  • Se corrigió el hash que no se eliminaba de sp_drop_trusted_assembly en los módulos clr e iClr.
  • Se creó el módulo lAgentCmd.
  • Se creó el módulo lClr.
v2.1.6
  • Se añadió el módulo info.
  • Correcciones en el menú de ayuda.
  • Se resolvieron problemas con los argumentos obligatorios en la autenticación Local y Azure.
v2.1.5
  • Se añadió un módulo para enumerar SPN de dominio (-e domain).
v2.1.4
  • Se corrigió un problema menor de formato de cadenas.
v2.1.3
  • Se añadió la bandera -r a los modos de autenticación Windows y Local para poder indicar puertos TCP no estándar.
v2.1.2
  • Se mejoró la lógica en torno a las cadenas de conexión nulas.
v2.1.1
  • Se eliminó Environment.Exit de TestAuthentication.cs.
v2.1
  • Se creó AgentJobs.cs.
  • Se creó agentStatus.
  • Se creó iAgentStatus.
  • Se creó lAgentStatus.
  • Se creó agentCmd.
  • Se creó iAgentCmd.
v2.0
  • Se creó clr.
  • Se creó iEnableClr.
  • Se creó iDisbleClr.
  • Se creó iClr.
  • Se creó iWhoami.
  • Se creó iMapped.
  • Se creó iRoles.
  • Se creó lEnableRpc.
  • Se creó lDisableRpc.
  • Se creó lWhoai.
  • Se creó lEnableXp.
  • Se creó lDisableXp.
  • Se creó lEnableOle.
  • Se creó lDisableOle.
v1.2
  • Se creó el módulo lSmb.
  • Se creó el módulo lWhoami.
  • Se creó el módulo lRoles.
v1.1
  • Se corrigió el módulo oldCmd.
  • Se corrigió el módulo iOleCmd.
  • Se corrigió el módulo lDatabases.
  • Se corrigió el módulo lTables.
  • Se limpió la base de código.
  • Se corrigieron incoherencias en el menú de ayuda.
Descargar herramienta
  • Verboso: El indicador /v, /verbose es opcional y muestra todas las consultas SQL que ejecuta un módulo antes de ejecutarlas en los hosts remotos. Puede encontrar un ejemplo de esto en la wiki.
  • Nombre del móduloDescripciónSuplantaciónEjecución vinculadaEjecución de cadena vinculadaRequiere contexto privilegiado
    CheckRpcObtener una lista de servidores vinculados y su estado de RPC.✅✅✅❎
    DatabasesMostrar todas las bases de datos.✅✅✅❎
    ImpersonateEnumerar las cuentas de usuario que se pueden suplantar.✅✅✅❎
    InfoMostrar información sobre el servidor SQL.✅✅✅❎
    LinksEnumerar servidores SQL vinculados.✅✅✅❎
    UsersMostrar qué cuentas de usuario y grupos pueden autenticarse contra la base de datos.✅✅✅❎
    WhoamiMostrar sus privilegios.✅✅✅❎
    Query /c:QUERYEjecutar una consulta SQL.✅✅✅❎
    Smb /unc:UNC_PATHCapturar hash NetNTLMv2.✅✅✅❎
    Columns /db:DATABASE /table:TABLEMostrar todas las columnas de la base de datos y la tabla proporcionadas.✅✅✅❎
    Rows /db:DATABASE /table:TABLEMostrar el número de filas en la tabla de la base de datos proporcionada.✅✅✅❎
    Search /keyword:KEYWORDBuscar nombres de columnas en la tabla proporcionada de la base de datos a la que está conectado.✅✅✅❎
    Tables /db:DATABASEMostrar todas las tablas de la base de datos proporcionada.✅✅✅❎
    EnableRpc /rhost:LINKED_HOSTHabilitar RPC y RPC out en un servidor vinculado.✅❌❌✔️
    EnableClrHabilitar la integración de CLR.✅✅✅✔️
    EnableOleHabilitar los procedimientos de automatización OLE.✅✅✅✔️
    EnableXpHabilitar xp_cmdshell.✅✅✅✔️
    DisableRpc /rhost:LINKED_HOSTDeshabilitar RPC y RPC out en un servidor vinculado.✅❌❌✔️
    DisableClrDeshabilitar la integración de CLR.✅✅✅✔️
    DisableOleDeshabilitar los procedimientos de automatización OLE.✅✅✅✔️
    DisableXpDeshabilitar xp_cmdshell.✅✅✅✔️
    AgentStatusMostrar si el agente SQL se está ejecutando y obtener trabajos del agente.✅✅✅✔️
    AgentCmd /c:COMMANDEjecutar un comando del sistema usando trabajos del agente.✅✅✅✔️
    Adsi /adsi:SERVER_NAME /lport:LOCAL_PORTObtener credenciales ADSI en texto claro de un servidor ADSI vinculado.✅✅✅✔️
    Clr /dll:DLL /function:FUNCTIONCargar y ejecutar un ensamblado .NET en un procedimiento almacenado personalizado.✅✅✅✔️
    OleCmd /c:COMMAND /subsystem:(OPTIONAL)Ejecutar un comando del sistema usando procedimientos de automatización OLE.✅✅✅✔️
    XpCmd /c:COMMANDEjecutar un comando del sistema usando xp_cmdshell.✅✅✅✔️
    Nombre del móduloDescripciónSuplantaciónRequiere contexto privilegiado
    UsersMostrar todos los usuarios de SCCM.✅❎
    SitesMostrar todos los demás sitios con datos almacenados.✅❎
    LogonsMostrar todos los clientes SCCM asociados y el último usuario que inició sesión.✅❎
    CredentialsMostrar las credenciales cifradas almacenadas por SCCM.✅❎
    TaskListMostrar todas las secuencias de tareas, pero no acceder al contenido de los datos de las tareas.✅❎
    TaskDataDescifrar todas las secuencias de tareas a texto plano.✅❎
    DecryptCredentialsDescifrar un blob de credenciales de SCCM. Debe ejecutarse en un proceso de alta integridad o SYSTEM en el servidor SCCM.❌✔️
    AddAdmin /user:DOMAIN\USERNAME /sid:SIDElevar una cuenta proporcionada a 'Administrador completo' en SCCM.✅✔️
    RemoveAdmin /user:ADMIN_ID /remove:STRINGElimina los privilegios de un usuario, o elimina un usuario por completo de la base de datos SCCM.✅✔️
    Credentials
  • El módulo DecryptCredentials intenta descifrar los blobs de credenciales SCCM recuperados. Este módulo debe ejecutarse en un proceso de alta integridad o SYSTEM en un servidor SCCM.
  • El módulo AddAdmin eleva la cuenta especificada a 'Administrador completo' dentro de SCCM. Si el usuario objetivo ya es un usuario de SCCM, este módulo agregará los privilegios necesarios para elevarlo. Proporcione dos argumentos: /user:current /sid:current si busca agregar al usuario que actualmente ejecuta el proceso de SQLRecon como un 'Administrador completo' en SCCM. Si busca agregar a otro usuario como un 'Administrador completo' en SCCM, especifique su nombre de usuario de dominio y SID completo /user:DOMAIN\USERNAME /sid:S-1-5-.... Este módulo requiere sysadmin o privilegios similares, ya que se requiere escribir en las tablas de la base de datos SCCM.
  • El módulo RemoveAdmin elimina los privilegios de un usuario al eliminar por completo a un usuario recién agregado de la base de datos SCCM. Si el usuario ya existía de alguna forma, este módulo solo elimina los tres roles que se agregaron a la cuenta mediante escrituras en la tabla de permisos. Use los argumentos proporcionados por la salida del comando sAddAdmin para ejecutar este comando. Este módulo requiere sysadmin o privilegios similares, ya que se requiere escribir en las tablas de la base de datos SCCM.
  • Se agregó el modo verboso (/verbose, /v), que mostrará todas las consultas SQL que se ejecutarán durante la ejecución del módulo.
  • Se agregó tiempo de espera (/timeout, /t), que toma un valor entero para el tiempo de espera de conexión a la base de datos del servidor SQL.
  • Se mejoró el módulo links para incluir información detallada. Crédito a Azaël Martin (n3rada).
  • Se mejoró el módulo whoami para incluir entidades de seguridad de Windows y usuarios de bases de datos. Crédito a Azaël Martin (n3rada).
  • Se mejoró el módulo impersonation para incluir entidades de seguridad de Windows y usuarios de bases de datos. Crédito a Azaël Martin (n3rada).
  • Se agregó la recuperación de direcciones IP al módulo de enumeración sqlspns. Crédito a Azaël Martin (n3rada).
  • Se estandarizó la salida de consola a markdown cuando corresponde. Crédito a Azaël Martin (n3rada).
  • Se agregó soporte DNS al módulo /enum:info.
  • Se agregó el argumento opcional /subsystem al módulo olecmdexec, que acepta la ejecución mediante los subsistemas de automatización OLE CmdExec o PowerShell.
  • Se actualizaron los bancos de pruebas para reflejar los cambios en la CLI y los nuevos módulos.
  • Se cambió la autenticación AzureAD a EntraID.
  • Se movió la lógica de argumentos a métodos individuales dentro de ModuleHandler.cs para promover la simplificación y la extensibilidad.
  • Se movieron todas las consultas SQL a Queries.cs.
  • Se creó EnumerationModules.cs.
  • Se creó FormatQuery.cs.
  • Se creó SccmModules.cs.
  • Se renombró ModuleHandler.cs a SqlModules.cs.
  • OleAutomation.cs
  • Se renombró PrintUtils.cs a Print.cs.
  • Se renombró SQLServerInfo.cs a Info.cs.
  • iQuery
  • iSearch
  • Pruebas significativas de fiabilidad y funcionalidad contra todos los proveedores de autenticación y módulos.
  • Se eliminó el directorio authentication.
  • Se cambió el estilo del código para seguir mejor la guía de estilo de código C#/.NET de Microsoft.
  • Se cambió Help.cs de un método a un constructor.
  • Se cambió CaptureHash.cs de un método a un constructor.
  • Se cambió Impersonate.cs de un método a un constructor.
  • Se refactorizó toda la base de código.
  • Se creó lEnableClr.
  • Se creó lDisableClr.
  • Se creó lXpCmd.
  • Se creó lXpOle.
  • Se creó Random.cs.
  • Se creó EnableDisable.cs.
  • Se implementaron nombres de ensamblado generados aleatoriamente para clr.
  • Se implementaron nombres de variables y métodos generados aleatoriamente para ole.
  • Se integraron los módulos mapped y roles en whoami.
  • Se integraron los módulos lMapped y lRoles en lWhoami.
  • Se integraron los módulos iMapped y iRoles en iWhoami.
  • Se refactorizó toda la base de código.