Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
SQLRecon — Un kit d'outils MS SQL en C# conçu pour la reconnaissance offensive et la post-exploitation. | Kitploit
Outils/GitHubGitHub/skahwah/sqlrecon
ReconnaissanceExploitationCollecte d'InformationsPost-ExploitationTests d'IntrusionAuthentificationRed TeamingSécurité des Bases de Données
GitHubskahwah/sqlrecon

SQLRecon

Un kit d'outils MS SQL en C# conçu pour la reconnaissance offensive et la post-exploitation.

Voir le dépôt
814129il y a 2 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

  licence badge wiki Badge stars badge forks badge issues badge

SQLRecon

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.

Modules d'énumération

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.

root@kitploit:~
# 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.

Fournisseurs d'authentification - Détails supplémentaires

  • Hôtes : Le drapeau hôte (/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.
  • Base de données : SQLRecon se connecte à la base de données 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:).
  • Débogage : Le drapeau /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.
  • Port : Dans certains cas, un serveur Microsoft SQL peut ne pas écouter sur un port TCP standard. Quelques exemples sont le clustering de basculement Microsoft SQL Server, ou les ports TCP dynamiques. SQLRecon se connecte aux bases de données via le port TCP 1433 par défaut, mais cela peut être modifié optionnellement en utilisant le drapeau /port:.
  • Délai d'attente : Le temps de connexion par défaut à la base de données SQL est de 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.

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.

Modules SQL

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:).

Modules SQL - Standard

Le drapeau hôte (/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.

Le wiki fournit des détails sur l'utilisation de chaque module qui prend en charge l'exécution sur une ou plusieurs instances de SQL Server.

Modules SQL - Usurpation

Les modules d'usurpation sont exécutés contre une ou plusieurs instances de serveur Microsoft SQL, dans le contexte d'un utilisateur SQL usurpé. Tous les modules d'usurpation ont les exigences minimales suivantes :

  • Un utilisateur d'usurpation doit être spécifié (/i:, /iuser:).
  • Un module qui prend en charge l'usurpation doit être spécifié (/m:, /module:).

Le wiki fournit des détails sur l'utilisation de chaque module qui prend en charge l'exécution en utilisant l'Usurpation.

Modules SQL - Liés

Les modules liés sont exécutés sur une ou plusieurs instances d'un serveur Microsoft SQL lié. Tous les modules liés ont les exigences minimales suivantes :

  • Un serveur SQL lié doit être spécifié (/l:, /link:). Le drapeau link permet un ou plusieurs serveurs SQL liés. Par exemple, si SQL01 a un lien vers SQL02, et SQL01 a un lien vers DB04, vous pouvez séparer les hôtes liés par une virgule, et un module sera exécuté sur chaque serveur SQL lié, par exemple /l:SQL02,DB04.
  • Un module qui prend en charge l'exécution liée doit être spécifié (/m:, /module:).

Le wiki fournit des détails sur l'utilisation de chaque module qui prend en charge l'exécution sur une ou plusieurs instances d'un Serveur SQL Lié.

Modules SQL - Chaîne liée

Les modules de chaîne liée sont exécutés sur le dernier serveur Microsoft SQL dans une chaîne de serveurs liés. Tous les modules de chaîne liée ont les exigences minimales suivantes :

  • Une chaîne de serveurs SQL liés doit être spécifiée dans le drapeau /l:, /link:. Si SQL01 a un lien vers SQL02, et SQL02 a un lien vers PAYMENTS01, et vous souhaitez exécuter un module sur PAYMENTS01, alors l'argument serait /l:SQL02,PAYMENTS01.
  • Le drapeau /chain doit être inclus pour exécuter le module contre le dernier serveur SQL dans la chaîne liée fournie.
  • Un module qui prend en charge l'exécution en chaîne liée doit être spécifié (/m:, /module:).

Le wiki fournit des détails sur l'utilisation de chaque module qui prend en charge l'exécution sur le dernier serveur SQL fourni dans une Chaîne de Serveurs SQL Liés.

Modules SCCM

SQLRecon dispose de plusieurs modules qui peuvent aider à énumérer et attaquer Microsoft System Center Configuration Manager (SCCM) et Microsoft Endpoint Configuration Manager (ECM). Le serveur SCCM ou ECM devra avoir une base de données Microsoft SQL exposée localement ou à distance.

Les modules SCCM doivent être passés dans le drapeau module SCCM (/s:, /sccm:).

La plupart des modules SCCM peuvent être exécutés dans le contexte d'un utilisateur SQL usurpé (/i:, /iuser:).

Le wiki fournit des détails sur l'utilisation de chaque module contre une base de données SCCM/ECM.

Modules SCCM - Détails supplémentaires
  • Le module Users liste tous les utilisateurs de la table RBAC_Admins. Ce sont tous les utilisateurs configurés pour un certain niveau d'accès à SCCM.
  • Le module Sites liste tous les autres sites avec des données stockées dans la table DPInfo des bases de données SCCM. Cela peut fournir des voies d'attaque supplémentaires car différents sites peuvent être configurés de différentes manières (non sécurisées).
  • Le module Logons interroge la table Computer_System_DATA pour récupérer tous les clients SCCM associés ainsi que l'utilisateur qui s'est connecté en dernier. NOTE : Cela ne se met à jour qu'une fois par semaine par défaut et ne sera pas à 100% à jour. Utilisez /option: comme argument optionnel (non requis) pour filtrer les clients SCCM.
  • Le module TaskList fournit une liste de toutes les séquences de tâches stockées dans la base de données SCCM, mais n'accède pas au contenu réel des données de tâche.
  • Le module TaskData récupère toutes les séquences de tâches stockées dans la base de données SCCM et les déchiffre en texte clair. Les séquences de tâches peuvent contenir des informations d'identification pour joindre des systèmes à des domaines, mapper des partages, exécuter des commandes, etc.

Extension de SQLRecon

Si vous êtes intéressé par l'extension de SQLRecon, veuillez vous référer à la section contribuer et étendre dans le wiki.

Je vous encourage à ouvrir un issue si vous avez des suggestions ou des idées.

Feuille de route

L'objectif est d'améliorer continuellement SQLRecon. Vous trouverez ci-dessous quelques domaines de recherche planifiés :

  • Implémenter le support de l'authentification basée sur le hachage NTLM.
  • Explorer les fonctionnalités enablerpc/disablerpc pour les serveurs SQL liés et en chaîne liée.

Crédits

Les personnes suivantes ont contribué directement ou indirectement à divers aspects de SQLRecon.

  • Adam Chester (xpn)
  • Andrew Smith (jakxx)
  • Azaël Martin (n3rada)
  • Crusher (chryzsh)
  • Daniel Duggan (rasta-mouse)
  • Dave Cossa (G0ldenGunSec)
  • Dwight Hohnstein (djhohnstein)
  • Javier Balanza (JBalanza)
  • Joshua Magri (passthehashbrowns)

Historique

v4.0
  • Ajout du fournisseur d'authentification NTLM pass-the-hash (/auth:pth). Implémente l'authentification TDS/NTLM brute via PTHTdsConnection, NtlmHelper et PthState afin que tous les modules fonctionnent sans informations d'identification en clair ni privilèges élevés. Les correctifs clés incluent les options de session ANSI après connexion, le découpage TDS multi-paquets, la gestion des blocages de flux TCP pour les connexions CLR simultanées, et la compatibilité avec la notation par crochets OPENQUERY.
  • Corrections de bugs dans les modules d'usurpation.
  • Corrections de bugs dans les modules adsi.
  • Corrections de bugs dans les modules ole.
  • Corrections de bugs dans _linkedChainRpcQuery
  • Correction d'un problème de longue date où System.Byte[] n'était jamais correctement converti et affiché dans la console.
  • Ajout des modules credentialobjectss et proxies (jakxx).
  • Mise à jour du README.md
  • Mise à jour du Wiki
v3.12
  • Ajout du support proxy pour agentcmd (jakxx).
  • Résolution de l'énumération role qui ne fonctionnait pas correctement sur la chaîne liée (passthehashbrowns).
  • Résolution du module impersonate qui ne fonctionnait pas correctement sur la chaîne liée (passthehashbrowns).
  • Résolution de EnableRpc/DisableRpc qui n'étaient pas disponibles sur les chaînes liées (passthehashbrowns).
  • Résolution du module XpCmd qui ne fonctionnait pas sur les chaînes liées, prend également en charge la sortie maintenant (passthehashbrowns).
  • Résolution des problèmes où les noms de serveurs liés contenant un caractère '.' causent des problèmes lorsqu'ils sont utilisés dans les requêtes EXEC AT à moins d'être entourés de crochets, cela pose problème si le nom du serveur lié est une adresse IP ou un FQDN (passthehashbrowns).
  • Ajustements de la logique pour la construction d'une requête de chaîne de serveurs liés. La logique existante utilise la récursivité et le cas de base attend un "0" comme premier élément du tableau, mais cela provoque un comportement contre-intuitif lors du développement de modules où il est nécessaire d'itérer sur la chaîne liée, comme la fonction .First renvoyant un "0". Je l'ai mise à jour pour que la fonction LinkedChainQuery crée un nouveau tableau avec un "0" au début, puis appelle la logique existante dans une fonction séparée, maintenant appelée (passthehashbrowns).
v3.11
  • Ajout de la fonctionnalité permettant de déchiffrer les informations d'identification stockées dans les sites configurés pour la haute disponibilité (avec serveurs actifs + passifs).
v3.10
  • Correction d'un problème dans le module impersonate pour gérer correctement les cas sysadmin (n3rada).
  • Implémentation de deux nouveaux modules SCCM scriptdata et cidata (G0ldenGunSec).
  • Optimisation des temps de chargement et d'exécution des DLL CLR (chryzsh).
  • Création du module auditstatus pour vérifier si l'audit SQL est en place (chryzsh).
  • Mise à jour des cas de test.
  • Mise à jour du README.
  • Mise à jour du Wiki.
v3.9
  • Ajout des bases de données auxquelles l'utilisateur a accès dans le module whoami (JBalanza).
  • Correction d'un problème dans le module adsi où le serveur LDAP n'a pas besoin d'être ajouté à la base de données msdb, et la fonction créée est maintenant correctement supprimée.
  • Correction d'un problème où les requêtes RPC avec une instruction AT échouent sur le serveur de destination si le nom d'hôte fourni est un FQDN.
  • Mise à jour du README.
  • Mise à jour du Wiki.
v3.8
  • Ajout de la logique pour prendre en charge l'exécution d'assemblies CLR sur SQL Server 2016 et versions antérieures. Ceci est pour le module clr. Exécution prise en charge dans tous les contextes.
  • Ajout de la logique pour charger un assembly CLR de serveur LDAP sur SQL Server 2016 et versions antérieures. Ceci est pour le module adsi. Exécution prise en charge dans tous les contextes.
  • Mise à jour du README.
  • Mise à jour du Wiki.
v3.7* Refactorisation complète de la base de code. * Documentation mise à jour (commentaires de code, README et wiki). * Exécution contre une chaîne de serveurs SQL liés. Par exemple, si `SQL01` a un lien vers `SQL02`, et `SQL02` a un lien vers `SQL03`, et `SQL03` a un lien vers `PAYMENTS01`. Il est désormais possible d'exécuter des commandes depuis `SQL01` sur `PAYMENTS01` en utilisant la chaîne de serveurs liés (`/link:SQL02,SQL03,PAYMENTS01 /chain`). Crédit à Azaël Martin (n3rada). * Suppression des modules '`l`' et '`i`', et introduction d'une logique de contexte afin que les noms de modules puissent être identiques pour l'exécution standard, en emprunt d'identité, liée et en chaîne. * Ajout du support de la chaîne pour tous les modules liés. * Ajout du support du débogage (`/debug`), qui affiche diverses informations de débogage et toutes les requêtes SQL qui seront exécutées par un module, sans les exécuter. * Ajout du mode verbeux (`/verbose, /v`), qui affiche toutes les requêtes SQL qui seront exécutées lors de l'exécution du module. * Ajout du délai d'attente (`/timeout, /t`), qui prend une valeur entière pour le délai d'attente de connexion à la base de données SQL. * Amélioration du module `links` pour inclure des informations détaillées. Crédit à Azaël Martin (n3rada). * Amélioration du module `whoami` pour inclure les principaux Windows et les utilisateurs de base de données. Crédit à Azaël Martin (n3rada). * Amélioration du module `impersonation` pour inclure les principaux Windows et les utilisateurs de base de données. Crédit à Azaël Martin (n3rada). * Ajout de la récupération d'adresse IP dans le module d'énumération `sqlspns`. Crédit à Azaël Martin (n3rada). * Standardisation de la sortie console en Markdown lorsque applicable. Crédit à Azaël Martin (n3rada). * Ajout du support DNS au module `/enum:info`. * Ajout de l'argument optionnel `/subsystem` au module `olecmdexec`, qui accepte l'exécution via les sous-systèmes d'automatisation OLE `CmdExec` ou `PowerShell`. * Mise à jour des bancs de test pour refléter les modifications de l'interface en ligne de commande et les nouveaux modules. * Changement de l'authentification `AzureAD` vers `EntraID`.
v3.6
  • L'exécution contre plusieurs serveurs SQL fournis dans le paramètre /host ou /h est désormais supportée en utilisant des valeurs séparées par des virgules.
  • L'exécution contre plusieurs serveurs SQL liés fournis dans le paramètre /link ou /l est désormais supportée en utilisant des valeurs séparées par des virgules.
  • Changement de /lhost en /link.
  • Suppression des modules 's' et création du commutateur /s, /sccm pour les modules SCCM.
  • Ajout du support de l'emprunt d'identité à tous les modules SCCM, à l'exception de DecryptCredentials.
  • Ajout d'un nouveau module d'énumération (/enum) appelé info qui peut utiliser un contexte non authentifié pour obtenir des informations sur le serveur SQL, y compris le nom de l'instance et le port TCP en utilisant le protocole UDP.
v3.5
  • Correction de bug où l'exécution liée adsi ne supprimait pas le serveur LDAP.
  • Suppression de l'exécution par tâche d'agent dans adsi lié, en faveur de openquery/rpc.
  • Changement de /lhost en /adsi dans le module adsi.
  • Changement de /rhost en /unc dans le module smb.
  • Suppression de CaptureHash.cs et simplification de la logique.
  • Suppression de SetEnumerationType.cs et simplification de la logique.
  • Renommage de Impersonation.cs en Impersonate.cs.
  • Renommage de OleCmdExec.cs en .
v3.4
  • Ajout du support de l'emprunt d'identité pour le module smb.
  • Ajout du support de l'emprunt d'identité pour le module info.
  • Ajout du support lié pour le module info.
v3.3
  • Création des modules rows, iRows et lRows.
  • Mise à jour de sLogons pour inclure un filtre optionnel.
  • Correction de bug où les modules xp_cmdshell n'affichaient pas la sortie des commandes dans la console.
  • Nettoyage du menu d'aide.
v3.2
  • Refonte de l'analyse des arguments de ligne de commande.
  • Mise à jour du README, des cas de test et du wiki avec de nouveaux exemples.
  • Refonte de l'analyse des arguments basée sur l'énumération et l'authentification.
  • Création de SetEnumerationType.cs.
  • Changement du module d'énumération domain en SqlSpns.
v3.1
  • Changement du constructeur de SetAuthenticationType.cs en une nouvelle méthode appelée EvaluateAuthenticationType.
  • Création de CreateSqlConnectionObject dans SetAuthenticationType.cs qui étend SQLRecon pour supporter plusieurs objets de connexion SQL simultanés.
  • Création de ADSI.cs, qui intègre les attaques par identifiants ADSI comme décrit ici.
  • Création des modules adsi, iAdsi et lAdsi.
  • Création des modules lLinks et iLinks.
  • Mise à jour du README, des cas de test et du wiki avec de nouveaux exemples.
v3.0
  • Implémentation de la vérification d'erreur pour les utilisateurs empruntés inexistants.
  • Création de ExecuteImpersonationQuery et ExecuteImpersonationCustomQuery.
  • Suppression de Impersonate.cs.
  • Ajout du module checkRpc.
  • Ajout du module iCheckRpc.
  • Ajout du module lCheckRpc.
  • Refonte des modules SCCM.
  • Refonte de l'analyse des arguments SCCM.
  • Mise en camel case des commandes dans le menu d'aide pour une lecture plus facile.
  • Mise à jour des tests avec les nouveaux modules.
v2.9
  • Renommage de EnableDisable.cs en ConfigureOptions.cs.
  • Refonte des configurations d'options avancées.
  • Implémentation de la vérification d'erreur RPC partout où ExecuteLinkedCustomQueryRpcExec est appelé.
v2.8
  • Création de PrintUtils.cs, qui implémente une classe d'impression pour une sortie standardisée.
  • Déplacement de TablePrinter de Help.cs vers PrintUtils.cs.
  • Standardisation du format d'impression pour toutes les sorties console en utilisant la classe PrintUtils.
  • Modification des modificateurs d'accès pour les classes et les variables de classe.
  • Ajout d'une vérification pour voir si le résultat est vide pour :
    • query
    • search
    • tables
    • lColumns
    • lQuery
    • lSearch
    • lTables
    • iColumns
v2.7
  • Changement de l'authentification Azure en AzureAD.
  • Création de l'authentification AzureLocal.
  • Ajout du module disableRpc.
  • Ajout du module enableRpc.
  • Ajout du module iEnableRpc.
  • Ajout du module iDisableRpc.
  • Suppression du module lEnableRpc.
  • Suppression du module lDisbleRpc.
  • Mise à jour des tests avec les nouveaux modules.
v2.6.1
  • Corrections de bugs de lAgentCmd.
  • Correction de la stabilité de clr, iClr et lClr en utilisant SqlCommand.ExecuteNonQuery lors de la création de la procédure stockée.
  • Correction d'un bug de lClr où il ne supprimait pas les assemblys ou procédures stockées créés.
v2.6
  • Ajout du module columns.
  • Ajout du module iColumns.
  • Ajout du module iDatabases.
  • Ajout du module iSearch.
  • Ajout du module iTables.
  • Ajout du module lColumns.
  • Ajout du module lSearch.
v2.5
  • Divers bugs corrigés dans les modules SCCM.
  • Organisation du menu d'aide à l'aide d'un tableau.
  • Amélioration de la sortie fournie par ExecuteLinkedCustomQueryRpcExec.
  • Amélioration des commentaires de code dans l'ensemble.
  • Amélioration de la cohérence des noms de méthodes entre les fonctions d'exécution de commandes.
  • Amélioration de la modularité grâce à une meilleure utilisation de la programmation orientée objet.
  • Changement du paramètre de port SQL personnalisé en x.
  • Déplacement de Random.cs dans le répertoire utilities.
  • Standardisation du style d'impression pour le rendre plus cohérent sur tous les modules.
  • Création de bancs de test standard, en emprunt d'identité et liés.
v2.4
  • Changement de l'authentification Windows en WinToken.
  • Création de l'authentification WinDomain, qui utilise un nom d'utilisateur et un mot de passe de domaine AD pour l'authentification via emprunt d'identité. Consultez Impersonation.cs.
  • Refonte de l'analyse et de la gestion des arguments dans ArgumentLogic.cs, SQLAuthentication.cs et ModuleHandler.cs.
  • ModuleHandler.cs n'utilise plus une immense instruction if/else if/else pour exécuter les modules. Désormais, la réflexion est utilisée pour appeler des méthodes correspondant aux noms des modules de commandes.
  • Ajout du répertoire commands, contenant des variables globales utilisées dans tout le programme.
  • Regroupement de tous les fournisseurs d'authentification dans SQLAuthentication.cs.
  • Déplacement de l'analyse des arguments de Program.cs vers .
v2.3
  • Ajout de fonctionnalités SCCM.
  • Ajout de modules SCCM, qui peuvent être exécutés en utilisant la commande sccm.
  • Correction de la vérification du statut RPC sur les serveurs SQL liés.
  • Ajout de la capacité à télécharger des assemblies .NET via HTTP/S.
v2.2
  • Extension des rôles interrogés dans les modules roles, iRoles et lRoles.
  • Création des modules users, iUsers et lUsers.
  • Correction du hachage non supprimé de sp_drop_trusted_assembly dans les modules clr et iClr.
  • Création du module lAgentCmd.
  • Création du module lClr.
v2.1.6
  • Ajout du module info.
  • Corrections dans le menu d'aide.
  • Résolution des problèmes d'arguments obligatoires avec les authentifications Local et Azure.
v2.1.5
  • Ajout d'un module pour énumérer les SPN de domaine (-e domain).
v2.1.4
  • Correction d'un problème mineur de formatage de chaîne.
v2.1.3
  • Ajout du paramètre -r dans les modes d'authentification Windows et Local afin que des ports TCP non standards puissent être fournis.
v2.1.2
  • Amélioration de la logique autour des chaînes de connexion nulles.
v2.1.1
  • Suppression de Environment.Exit de TestAuthentication.cs.
v2.1
  • Création de AgentJobs.cs.
  • Création de agentStatus.
  • Création de iAgentStatus.
  • Création de lAgentStatus.
  • Création de agentCmd.
  • Création de iAgentCmd.
v2.0
  • Création de clr.
  • Création de iEnableClr.
  • Création de iDisbleClr.
  • Création de iClr.
  • Création de iWhoami.
  • Création de iMapped.
  • Création de iRoles.
  • Création de lEnableRpc.
  • Création de lDisableRpc.
  • Création de lWhoai.
  • Création de lEnableXp.
  • Création de lDisableXp.
  • Création de lEnableOle.
v1.2
  • Création du module lSmb.
  • Création du module lWhoami.
  • Création du module lRoles.
v1.1
  • Correction du module oldCmd.
  • Correction du module iOleCmd.
  • Correction du module lDatabases.
  • Correction du module lTables.
  • Nettoyage de la base de code.
  • Correction des incohérences dans le menu d'aide.
Télécharger l’outil
  • Verbeux : Le drapeau /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.
  • Nom du moduleDescriptionUsurpationExécution liéeExécution en chaîne liéeNécessite un contexte privilégié
    AuditStatusVérifier si l'audit SQL est en place.✅✅✅❎
    CheckRpcObtenir une liste des serveurs liés et de leur statut RPC.✅✅✅❎
    DatabasesAfficher toutes les bases de données.✅✅✅❎
    ImpersonateÉnumérer les comptes utilisateurs qui peuvent être usurpés.✅✅✅❎
    InfoAfficher des informations sur le serveur SQL.✅✅✅❎
    LinksÉnumérer les serveurs SQL liés.✅✅✅❎
    UsersAfficher les comptes utilisateurs et les groupes qui peuvent s'authentifier contre la base de données.✅✅✅❎
    WhoamiAfficher vos privilèges.✅✅✅❎
    Query /c:QUERYExécuter une requête SQL.✅✅✅❎
    Smb /unc:UNC_PATHCapturer un hachage NetNTLMv2.✅✅✅❎
    Columns /db:DATABASE /table:TABLEAfficher toutes les colonnes dans la base de données et la table fournies.✅✅✅❎
    Rows /db:DATABASE /table:TABLEAfficher le nombre de lignes dans la table de base de données fournie.✅✅✅❎
    Search /keyword:KEYWORDRechercher des noms de colonnes dans la table fournie de la base de données à laquelle vous êtes connecté.✅✅✅❎
    Tables /db:DATABASEAfficher toutes les tables dans la base de données fournie.✅✅✅❎
    EnableRpc /rhost:LINKED_HOSTActiver RPC et RPC sortant sur un serveur lié.✅❌❌✔️
    EnableClrActiver l'intégration CLR.✅✅✅✔️
    EnableOleActiver les procédures d'automatisation OLE.✅✅✅✔️
    EnableXpActiver xp_cmdshell.✅✅✅✔️
    DisableRpc /rhost:LINKED_HOSTDésactiver RPC et RPC sortant sur un serveur lié.✅❌❌✔️
    DisableClrDésactiver l'intégration CLR.✅✅✅✔️
    DisableOleDésactiver les procédures d'automatisation OLE.✅✅✅✔️
    DisableXpDésactiver xp_cmdshell.✅✅✅✔️
    AgentStatusAfficher si l'agent SQL est en cours d'exécution et obtenir les travaux de l'agent.✅✅✅✔️
    AgentCmd /c:COMMAND /subsystem:(OPTIONAL) /proxy:(OPTIONAL)Exécuter une commande système en utilisant des travaux d'agent. Optionnellement spécifier un sous-système avec /subsystem:, par défaut 'PowerShell'. Optionnellement spécifier un compte proxy SQL Agent avec /proxy:.✅✅✅✔️
    Adsi /adsi:SERVER_NAME /lport:LOCAL_PORTObtenir des informations d'identification ADSI en clair depuis un serveur ADSI lié.✅✅✅✔️
    Clr /dll:DLL /function:FUNCTIONCharger et exécuter un assembly .NET dans une procédure stockée personnalisée.✅✅✅✔️
    CredentialObjectsObtenir les objets d'identification depuis sys.credentials.✅✅✅✔️
    OleCmd /c:COMMAND /subsystem:(OPTIONAL)Exécuter une commande système en utilisant des procédures d'automatisation OLE.✅✅✅✔️
    ProxiesObtenir les informations de proxy de l'agent SQL.✅✅✅✔️
    XpCmd /c:COMMANDExécuter une commande système en utilisant xp_cmdshell.✅✅✅✔️
    Nom du moduleDescriptionUsurpationNécessite un contexte privilégié
    UsersAfficher tous les utilisateurs SCCM.✅❎
    SitesAfficher tous les autres sites avec des données stockées.✅❎
    LogonsAfficher tous les clients SCCM associés et le dernier utilisateur connecté.✅❎
    CredentialsAfficher les informations d'identification chiffrées stockées par SCCM.✅❎
    TaskListAfficher toutes les séquences de tâches, mais sans accéder au contenu des données de tâche.✅❎
    TaskDataDéchiffrer toutes les séquences de tâches en texte clair.✅❎
    DecryptCredentialsTenter de déchiffrer un blob d'identification SCCM. Doit être exécuté dans un processus à haute intégrité ou SYSTEM sur le serveur SCCM.❌✔️
    AddAdmin /user:DOMAIN\USERNAME /sid:SIDÉlever un compte fourni à 'Administrateur complet' dans SCCM.✅✔️
    RemoveAdmin /user:ADMIN_ID /remove:STRINGSupprimer les privilèges d'un utilisateur, ou supprimer complètement un utilisateur de la base de données SCCM.✅✔️
    ScriptDataRenvoie tous les scripts configurés pour s'exécuter dans SCCM.✅✔️
    CIDataRenvoie toutes les CI configurées pour exécuter des scripts dans SCCM.✅✔️
  • Le module Credentials liste les informations d'identification stockées par SCCM pour être utilisées dans diverses fonctions. Ces informations d'identification ne peuvent pas être déchiffrées à distance car la clé est stockée sur le serveur SCCM. Cependant, ce module fournit un renseignement sur la pertinence de tenter d'obtenir la clé.
  • Le module DecryptCredentials tente de déchiffrer les blobs d'identification SCCM récupérés. Ce module doit être exécuté dans un processus à haute intégrité ou SYSTEM sur un serveur SCCM.
  • Le module AddAdmin élève le compte spécifié à 'Administrateur complet' dans SCCM. Si l'utilisateur cible est déjà un utilisateur SCCM, ce module ajoutera plutôt les privilèges nécessaires pour l'élever. Fournissez deux arguments, soit /user:current /sid:current si vous cherchez à ajouter l'utilisateur qui exécute actuellement le processus SQLRecon en tant qu''Administrateur complet' dans SCCM. Si vous cherchez à ajouter un autre utilisateur en tant qu''Administrateur complet' dans SCCM, spécifiez son nom d'utilisateur de domaine et son SID complet /user:DOMAIN\USERNAME /sid:S-1-5-.... Ce module nécessite des privilèges sysadmin ou similaires car l'écriture dans les tables de la base de données SCCM est requise.
  • Le module RemoveAdmin supprime les privilèges d'un utilisateur en supprimant complètement un utilisateur nouvellement ajouté de la base de données SCCM. Si l'utilisateur existait déjà en quelque capacité, ce module supprime simplement les trois rôles qui ont été ajoutés au compte via des écritures dans la table des permissions. Utilisez les arguments fournis par la sortie de la commande sAddAdmin pour exécuter cette commande. Ce module nécessite des privilèges sysadmin ou similaires car l'écriture dans les tables de la base de données SCCM est requise.
  • LinkedChainQueryRecurse
  • Déplacement de la logique des arguments dans des méthodes individuelles dans ModuleHandler.cs pour favoriser la simplification et l'extensibilité.
  • Déplacement de toutes les requêtes SQL dans Queries.cs.
  • Création de EnumerationModules.cs.
  • Création de FormatQuery.cs.
  • Création de SccmModules.cs.
  • Renommage de ModuleHandler.cs en SqlModules.cs.
  • OleAutomation.cs
  • Renommage de PrintUtils.cs en Print.cs.
  • Renommage de SQLServerInfo.cs en Info.cs.
  • iQuery
  • iSearch
  • Tests significatifs de fiabilité et de fonctionnalité contre tous les fournisseurs d'authentification et modules.
  • ArgumentLogic.cs
  • Suppression du répertoire authentication.
  • Changement de style de code pour mieux suivre le guide de style de code C#/.NET de Microsoft.
  • Changement de Help.cs d'une méthode en un constructeur.
  • Changement de CaptureHash.cs d'une méthode en un constructeur.
  • Changement de Impersonate.cs d'une méthode en un constructeur.
  • Refactorisation complète de la base de code.
  • Création de lDisableOle.
  • Création de lEnableClr.
  • Création de lDisableClr.
  • Création de lXpCmd.
  • Création de lXpOle.
  • Création de Random.cs.
  • Création de EnableDisable.cs.
  • Implémentation de noms d'assembly générés aléatoirement pour clr.
  • Implémentation de noms de variables et méthodes générés aléatoirement pour ole.
  • Fusion des modules mapped et roles dans whoami.
  • Fusion des modules lMapped et lRoles dans lWhoami.
  • Fusion des modules iMapped et iRoles dans iWhoami.
  • Refactorisation complète de la base de code.