
Un kit de herramientas C# 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, 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.
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.
# 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.
/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.master de forma predeterminada; sin embargo, esto se puede cambiar opcionalmente proporcionando un nombre de base de datos personalizado mediante el indicador database (/database:)./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.1433 de forma predeterminada; sin embargo, esto se puede cambiar opcionalmente usando el indicador /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. Puede encontrar un ejemplo de esto en la wiki.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.
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:).