
Une boîte à outils C# MS SQL conçue pour la reconnaissance offensive et la post-exploitation.
SQLRecon est un toolkit Microsoft SQL Server conçu pour la reconnaissance offensive et la post-exploitation. Pour des informations détaillées sur l'utilisation de chaque technique, consultez le wiki.
Vous pouvez télécharger une copie de SQLRecon depuis la page releases. Vous pouvez également compiler la solution vous-même. Cela devrait être aussi simple que de cloner le dépôt, double-cliquer sur le fichier solution et compiler.
Un guide de prévention, de détection et d'atténuation a également été fourni pour tous les défenseurs.
Consultez mon article de blog sur le site IBM Security Intelligence. Si vous préférez les vidéos, regardez ma présentation à Black Hat.
Les modules d'énumération ne nécessitent pas de fournisseur d'authentification. Ces modules doivent être passés à l'option de module d'énumération (/e:, /enum:). Le wiki contient des détails sur l'utilisation des modules d'énumération.```
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.
# Fournisseurs d'authentification
SQLRecon prend en charge un ensemble diversifié de fournisseurs d'authentification (`/a:, /auth:`) pour permettre l'interaction avec un serveur 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:) est obligatoire et permet d'indiquer un ou plusieurs serveurs SQL. Si vous souhaitez exécuter un module contre plusieurs serveurs SQL, séparez les hôtes par une virgule, par exemple /h:SQL01,10.10.10.2,SQL03.master par défaut ; toutefois, cela peut être modifié en fournissant un nom de base personnalisé via le flag base de données (/database:)./debug est facultatif et affiche toutes les requêtes SQL exécutées par un module, sans les exécuter réellement sur le ou les hôtes distants. Un exemple est disponible dans le wiki.1433 par défaut, mais cela peut être modifié à l'aide du flag /port:.3 secondes ; toutefois, cette valeur peut être modifiée en fournissant un délai (/t:, /timeout:) qui correspond au nombre de secondes avant l'abandon de la tentative de connexion./v, /verbose est facultatif et affiche toutes les requêtes SQL exécutées par un module avant de les exécuter sur le ou les hôtes distants. Un exemple est disponible dans le wiki.Veuillez noter que le fournisseur d'authentification EntraID nécessite que la bibliothèque d'authentification Azure Active Directory (ADAL) ou la bibliothèque d'authentification Microsoft (MSAL) existe sur le système à partir duquel SQLRecon est exécuté. Cela est nécessaire pour les fonctionnalités d'authentification et d'autorisation Azure EntraID.
Les modules SQL sont exécutés contre une ou plusieurs instances de Microsoft SQL Server. Ces modules doivent être passés dans le flag module (/m:, /module:).