
Un kit de herramientas C# para MS SQL diseñado para reconocimiento ofensivo y post-explotación.
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, consulte la wiki.
Puede descargar una copia de SQLRecon desde la página de versiones. Alternativamente, siéntase libre de compilar la solución usted 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 guía de prevención, detección y mitigación para todos los defensores.
Echa un vistazo a mi artículo en el blog de IBM Security Intelligence. Si prefieres videos, mira mi presentación en Black Hat.
Los Módulos de Enumeración no requieren que se proporcione un proveedor de autenticación. Estos módulos deben pasarse a la bandera de módulo de enumeración (/e:, /enum:). La wiki tiene detalles sobre cómo usar 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.
# Proveedores de autenticación
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.
Pth - Authenticate using an NT hash (pass-the-hash) over raw TDS/NTLM. Elevated privileges or SeImpersonate is not required.
/h:, /host: -> SQL server hostname or IP. Multiple hosts supported.
/d:, /domain: -> NETBIOS domain name.
/u:, /username: -> Domain username.
/hash: -> NT hash (32 hex chars, 8846f7eaee8fb117ad06bdd830b7586c) or LM:NT format.
/h:, host:) es obligatoria y permite uno o más servidores SQL. Si deseas ejecutar un módulo contra múltiples servidores SQL, separa los hosts con una coma, por ejemplo /h:SQL01,10.10.10.2,SQL03.master por defecto, sin embargo, esto se puede cambiar opcionalmente proporcionando un nombre de base de datos personalizado a través de la bandera de base de datos (/database:)./debug es opcional y muestra todas las consultas SQL que ejecuta un módulo, sin ejecutarlas realmente en los hosts remotos. Un ejemplo de esto se puede encontrar en la wiki.1433 por defecto, sin embargo, esto se puede cambiar opcionalmente usando la bandera /port:.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./v, /verbose es opcional y muestra todas las consultas SQL que ejecuta un módulo antes de ejecutarlas en los hosts remotos. Un ejemplo de esto se puede encontrar en la wiki.Ten 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) existan en el sistema desde el que se ejecuta SQLRecon. Esto es para la funcionalidad de autenticación y autorización de Azure EntraID.
Los módulos SQL se ejecutan contra una o más instancias de Microsoft SQL Server. Estos módulos deben pasarse a la bandera de módulo (/m:, /module:).