
Un kit d'outils MS SQL en C# conçu 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 la wiki.
Vous pouvez télécharger une copie de SQLRecon depuis la page des releases. Sinon, n'hésitez pas à 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.
Des conseils en matière de prévention, détection et atténuation ont également été fournis 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 dans le drapeau du module d'énumération (/e:, /enum:). Le wiki détaille 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.
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:) est requis et permet 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, mais cela peut être modifié optionnellement en fournissant un nom de base de données personnalisé via le drapeau base de données (/database:)./debug est optionnel et affiche toutes les requêtes SQL exécutées par un module, sans les exécuter réellement sur le(s) hôte(s) distant(s). Un exemple de cela peut être trouvé dans le wiki.1433 par défaut, mais cela peut être modifié optionnellement en utilisant le drapeau /port:.3 secondes, mais cette valeur peut être modifiée optionnellement en fournissant une valeur de délai d'attente (/t:, /timeout:) qui correspond au nombre de secondes avant de terminer la tentative de connexion./v, /verbose est optionnel et affiche toutes les requêtes SQL exécutées par un module avant de les exécuter sur le(s) hôte(s) distant(s). Un exemple de cela peut être trouvé 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é. Ceci est destiné aux fonctionnalités d'authentification et d'autorisation Azure EntraID.
Les modules SQL sont exécutés contre une ou plusieurs instances de serveur Microsoft SQL. Ces modules doivent être passés dans le drapeau module (/m:, /module:).