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 — Une boîte à outils C# MS SQL conçue pour la reconnaissance offensive et la post-exploitation. | Kitploit
Outils/GitHubGitHub/xforcered/sqlrecon
Escalade de PrivilègesReconnaissanceAttaques de Mots de PasseExploitationMouvement LatéralPost-ExploitationTests d'IntrusionRed TeamingSécurité des Bases de Données
GitHubxforcered/sqlrecon

SQLRecon

Une boîte à outils C# MS SQL conçue pour la reconnaissance offensive et la post-exploitation.

39938il y a 1 anVé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
Voir le dépôt

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

Modules d'énumération

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.

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.

Fournisseurs d'authentification - Détails supplémentaires

  • Hôtes : Le flag host (/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.
  • Base de données : SQLRecon se connecte à la base master par défaut ; toutefois, cela peut être modifié en fournissant un nom de base personnalisé via le flag base de données (/database:).
  • Débogage : Le flag /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.
  • 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é à l'aide du flag /port:.
  • Délai d'attente : Le délai de connexion par défaut à la base de données SQL est de 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.

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.

Modules SQL

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

Modules SQL - Standard

Le flag host (/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.

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

Modules SQL - Impersonation

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

  • Un utilisateur à usurper doit être spécifié (/i:, /iuser:).
  • Un module prenant en charge l'impersonation doit être spécifié (/m:, /module:).

Le wiki contient des détails sur l'utilisation de chaque module prenant en charge l'exécution via Impersonation.

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 flag link permet d'indiquer un ou plusieurs serveurs SQL liés. Par exemple, si SQL01 a un lien vers SQL02, et que 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 prenant en charge l'exécution liée doit être spécifié (/m:, /module:).

Le wiki contient des détails sur l'utilisation de chaque module prenant 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 serveur Microsoft SQL final d'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 flag /l:, /link:. Si SQL01 a un lien vers SQL02, que SQL02 a un lien vers PAYMENTS01, et que vous souhaitez exécuter un module sur PAYMENTS01, l'argument serait /l:SQL02,PAYMENTS01.
  • Le flag /chain doit être inclus pour exécuter le module contre le serveur SQL final de la chaîne liée fournie.
  • Un module prenant en charge l'exécution en chaîne liée doit être spécifié (/m:, /module:).

Le wiki contient des détails sur l'utilisation de chaque module prenant en charge l'exécution sur le serveur SQL final fourni dans une Chaîne de serveurs SQL liés.

Modules SCCM

SQLRecon possè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 flag de 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 contient 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 répertorie tous les utilisateurs de la table RBAC_Admins. Il s'agit de tous les utilisateurs configurés avec un certain niveau d'accès à SCCM.
  • Le module Sites répertorie tous les autres sites avec des données stockées dans la table DPInfo des bases de données SCCM. Cela peut offrir des pistes 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'y est connecté en dernier. NOTE : Ceci ne se met à jour qu'une fois par semaine par défaut et ne sera pas à jour à 100 %. Utilisez /option: comme argument facultatif (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âches.
  • 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 identifiants pour joindre des systèmes à des domaines, mapper des partages, exécuter des commandes, etc.

Étendre SQLRecon

Si vous souhaitez étendre SQLRecon, veuillez vous référer à la section contribution et extension dans le wiki.

Je vous encourage à ouvrir une 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 la prise en charge de l'authentification basée sur les hash 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)
  • Azaël Martin (n3rada)
  • Daniel Duggan (rasta-mouse)
  • Dave Cossa (G0ldenGunSec)
  • Dwight Hohnstein (djhohnstein)
  • Joshua Magri (passthehashbrowns)

Historique

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 ; la fonction créée est désormais également supprimée correctement.
  • Correction d'un problème où les requêtes RPC contenant une instruction AT échouaient 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 d'une logique pour prendre en charge l'exécution d'assemblys CLR sur SQL Server 2016 et versions antérieures. Ceci concerne le module clr. Exécution prise en charge dans tous les contextes.
  • Ajout d'une logique pour charger un assembly CLR de serveur LDAP sur SQL Server 2016 et versions antérieures. Ceci concerne 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.
  • Mise à jour de la documentation (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, que SQL02 a un lien vers SQL03, et que 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 entre l'exécution standard, par impersonation, liée et en chaîne.
  • Ajout de la prise en charge des chaînes à tous les modules liés.
  • Ajout de la prise en charge 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.
v3.6
  • L'exécution contre plusieurs serveurs SQL fournis dans le flag /host ou /h est désormais prise en charge à l'aide de valeurs séparées par des virgules.
  • L'exécution contre plusieurs serveurs SQL liés fournis dans le flag /link ou /l est désormais prise en charge à l'aide de valeurs séparées par des virgules.
  • Remplacement de /lhost par /link.
  • Suppression des modules 's' et création du commutateur /s, /sccm pour les modules SCCM.
  • Ajout de la prise en charge de l'impersonation à 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, notamment le nom de l'instance et le port TCP via le protocole UDP.
v3.5
  • Correction d'un bug où l'exécution liée d'adsi ne supprimait pas le serveur LDAP.
  • Suppression de l'exécution des travaux d'agent de l'adsi liée, au profit d'openquery/rpc.
  • Remplacement de /lhost par /adsi dans le module adsi.
  • Remplacement de /rhost par /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 de la prise en charge de l'impersonation pour le module smb.
  • Ajout de la prise en charge de l'impersonation pour le module info.
  • Ajout de la prise en charge de l'exécution liée pour le module info.
v3.3
  • Création des modules rows, iRows et lRows.
  • Mise à jour de sLogons pour inclure un filtre facultatif.
  • Correction d'un 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.
  • Remplacement du module d'énumération domain par SqlSpns.
v3.1* Changé le constructeur de `SetAuthenticationType.cs` en une nouvelle méthode appelée `EvaluateAuthenticationType`. * Créé `CreateSqlConnectionObject` dans `SetAuthenticationType.cs`, ce qui étend SQLRecon pour prendre en charge plusieurs objets de connexion SQL simultanés. * Créé `ADSI.cs`, qui intègre les attaques par identifiants ADSI comme décrit [ici](https://www.tarlogic.com/blog/linked-servers-adsi-passwords/). * Créé les modules `adsi`, `iAdsi` et `lAdsi`. * Créé les modules `lLinks` et `iLinks`. * Mis à jour le README, les cas de test et le wiki avec de nouveaux exemples.
v3.0
  • Implémentation de la vérification des erreurs pour les utilisateurs impersonnés inexistants.
  • Créé ExecuteImpersonationQuery et ExecuteImpersonationCustomQuery.
  • Supprimé Impersonate.cs
  • Ajouté le module checkRpc.
  • Ajouté le module iCheckRpc.
  • Ajouté le module lCheckRpc.
  • Refondu les modules SCCM.
  • Refondu l'analyse des arguments SCCM.
  • Mise en camelCase des commandes du menu d'aide pour une lecture plus facile.
  • Mis à jour les tests avec les nouveaux modules.
v2.9
  • Renommé EnableDisable.cs en ConfigureOptions.cs
  • Révision complète des configurations d'options avancées.
  • Implémentation de la vérification des erreurs RPC partout où ExecuteLinkedCustomQueryRpcExec est appelé.
v2.8
  • Créé PrintUtils.cs, qui implémente une classe d'impression pour une sortie standardisée.
  • Déplacé TablePrinter de Help.cs vers PrintUtils.cs.
  • Standardisé le format d'impression pour toutes les sorties console à l'aide de la classe PrintUtils.
  • Modifié les 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
  • Changé l'authentification Azure en AzureAD.
  • Créé l'authentification AzureLocal.
  • Ajouté le module disableRpc.
  • Ajouté le module enableRpc.
  • Ajouté le module iEnableRpc.
  • Ajouté le module iDisableRpc.
  • Supprimé le module lEnableRpc.
  • Supprimé le module lDisbleRpc.
  • Mis à jour les tests avec les nouveaux modules.
v2.6.1
  • Correctifs de bogues pour lAgentCmd.
  • Corrigé la stabilité de clr, iClr et lClr en utilisant SqlCommand.ExecuteNonQuery lors de la création de la procédure stockée.
  • Corrigé le bogue de lClr où il ne supprimait pas les assemblys ou procédures stockées créés.
v2.6
  • Ajouté le module columns.
  • Ajouté le module iColumns.
  • Ajouté le module iDatabases.
  • Ajouté le module iSearch.
  • Ajouté le module iTables.
  • Ajouté le module lColumns.
  • Ajouté le module lSearch.
v2.5
  • Correction de divers bogues dans les modules SCCM.
  • Organisé le menu d'aide à l'aide d'un tableau.
  • Amélioré la sortie fournie par ExecuteLinkedCustomQueryRpcExec.
  • Amélioré les commentaires de code dans l'ensemble.
  • Amélioré la cohérence des noms de méthodes dans les fonctions d'exécution de commandes.
  • Amélioré la modularité grâce à une meilleure utilisation de la programmation orientée objet.
  • Modifié l'indicateur de port SQL personnalisé en x.
  • Déplacé Random.cs dans le répertoire utilities.
  • Standardisé le style d'impression pour le rendre plus cohérent dans tous les modules.
  • Créé des bancs de test standard, d'impersonation et liés.
v2.4
  • Changé l'authentification Windows en WinToken.
  • Créé l'authentification WinDomain, qui utilise le nom d'utilisateur et le mot de passe du domaine AD pour l'authentification via impersonation. Consultez Impersonation.cs.
  • Refondu l'analyse et la gestion des arguments dans ArgumentLogic.cs, SQLAuthentication.cs et ModuleHandler.cs.
  • ModuleHandler.cs n'utilise plus une énorme instruction if/else if/else pour exécuter les modules. À la place, la réflexion est désormais utilisée pour appeler les méthodes correspondant aux noms des modules de commandes.
  • Ajouté le répertoire commands, qui contient des variables globales utilisées dans tout le programme.
  • Intégré tous les fournisseurs d'authentification dans SQLAuthentication.cs.
  • Déplacé l'analyse des arguments de Program.cs vers .
v2.3
  • Ajout de la fonctionnalité SCCM.
  • Ajout des modules SCCM, qui peuvent être exécutés à l'aide de la commande sccm.
  • Corrigé la vérification du statut RPC sur les serveurs SQL liés.
  • Ajout de la capacité à télécharger des assemblys .NET via HTTP/S.
v2.2
  • Élargi les rôles interrogés dans les modules roles, iRoles et lRoles.
  • Créé les modules users, iUsers et lUsers.
  • Corrigé le hash qui n'était pas supprimé de sp_drop_trusted_assembly dans les modules clr et iClr.
  • Créé le module lAgentCmd.
  • Créé le module lClr.
v2.1.6
  • Ajouté le module info.
  • Corrections dans le menu d'aide.
  • Résolu les problèmes liés aux arguments obligatoires avec l'authentification Local et Azure.
v2.1.5
  • Ajout d'un module pour énumérer les SPN du domaine (-e domain).
v2.1.4
  • Corrigé un problème mineur de formatage de chaîne.
v2.1.3
  • Ajout de l'indicateur -r dans les modes d'authentification Windows et Local afin de pouvoir fournir des ports TCP non standard.
v2.1.2
  • Amélioré la logique concernant les chaînes de connexion nulles.
v2.1.1
  • Supprimé Environment.Exit de TestAuthentication.cs.
v2.1
  • Créé AgentJobs.cs.
  • Créé agentStatus.
  • Créé iAgentStatus.
  • Créé lAgentStatus.
  • Créé agentCmd.
  • Créé iAgentCmd.
v2.0
  • Créé clr.
  • Créé iEnableClr.
  • Créé iDisbleClr.
  • Créé iClr.
  • Créé iWhoami.
  • Créé iMapped.
  • Créé iRoles.
  • Créé lEnableRpc.
  • Créé lDisableRpc.
  • Créé lWhoai.
  • Créé lEnableXp.
  • Créé lDisableXp.
  • Créé lEnableOle.
  • Créé lDisableOle.
v1.2
  • Créé le module lSmb.
  • Créé le module lWhoami.
  • Créé le module lRoles.
v1.1
  • Corrigé le module oldCmd.
  • Corrigé le module iOleCmd.
  • Corrigé le module lDatabases.
  • Corrigé le module lTables.
  • Nettoyé la base de code.
  • Corrigé les incohérences dans le menu d'aide.
Télécharger l’outil
  • Verbeux : Le flag /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.
  • Nom du moduleDescriptionImpersonationExécution liéeExécution en chaîne liéeNécessite un contexte privilégié
    CheckRpcObtenir une liste des serveurs liés et leur statut RPC.✅✅✅❎
    DatabasesAfficher toutes les bases de données.✅✅✅❎
    ImpersonateÉnumérer les comptes d'utilisateur pouvant être usurpés.✅✅✅❎
    InfoAfficher des informations sur le serveur SQL.✅✅✅❎
    LinksÉnumérer les serveurs SQL liés.✅✅✅❎
    UsersAfficher quels comptes d'utilisateur et groupes peuvent s'authentifier auprès de la base de données.✅✅✅❎
    WhoamiAfficher vos privilèges.✅✅✅❎
    Query /c:QUERYExécuter une requête SQL.✅✅✅❎
    Smb /unc:UNC_PATHCapturer le hash NetNTLMv2.✅✅✅❎
    Columns /db:DATABASE /table:TABLEAfficher toutes les colonnes de la base de données et de 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 de la base de données fournie.✅✅✅❎
    EnableRpc /rhost:LINKED_HOSTActiver RPC et RPC out 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 out 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:COMMANDExécuter une commande système à l'aide de travaux d'agent.✅✅✅✔️
    Adsi /adsi:SERVER_NAME /lport:LOCAL_PORTObtenir les identifiants 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.✅✅✅✔️
    OleCmd /c:COMMAND /subsystem:(OPTIONAL)Exécuter une commande système à l'aide des procédures d'automatisation OLE.✅✅✅✔️
    XpCmd /c:COMMANDExécuter une commande système à l'aide de xp_cmdshell.✅✅✅✔️
    Nom du moduleDescriptionImpersonationNé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 identifiants chiffrés stockés par SCCM.✅❎
    TaskListAfficher toutes les séquences de tâches, sans accéder au contenu des données de tâches.✅❎
    TaskDataDéchiffrer toutes les séquences de tâches en texte clair.✅❎
    DecryptCredentialsDéchiffrer un blob d'identifiants SCCM. Doit être exécuté dans un processus à intégrité élevée ou SYSTEM sur le serveur SCCM.❌✔️
    AddAdmin /user:DOMAIN\USERNAME /sid:SIDÉlever un compte fourni au rang d'« Administrateur complet » dans SCCM.✅✔️
    RemoveAdmin /user:ADMIN_ID /remove:STRINGSupprime les privilèges d'un utilisateur, ou supprime entièrement un utilisateur de la base de données SCCM.✅✔️
  • Le module Credentials répertorie les identifiants stockés par SCCM pour une utilisation dans diverses fonctions. Ces identifiants ne peuvent pas être déchiffrés à distance car la clé est stockée sur le serveur SCCM. Toutefois, ce module fournit des informations sur l'intérêt de tenter d'obtenir la clé.
  • Le module DecryptCredentials tente de déchiffrer les blobs d'identifiants SCCM récupérés. Ce module doit être exécuté dans un processus à intégrité élevée ou SYSTEM sur un serveur SCCM.
  • Le module AddAdmin élève le compte spécifié au rang d'« 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 : /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 requiert des privilèges sysadmin ou équivalents, car l'écriture dans les tables de la base de données SCCM est nécessaire.
  • Le module RemoveAdmin supprime les privilèges d'un utilisateur en retirant entièrement un utilisateur nouvellement ajouté de la base de données SCCM. Si l'utilisateur existait déjà d'une certaine manière, ce module supprime simplement les trois rôles qui ont été ajoutés au compte via des écritures dans la table des autorisations. Utilisez les arguments fournis par la sortie de la commande sAddAdmin pour exécuter cette commande. Ce module requiert des privilèges sysadmin ou équivalents, car l'écriture dans les tables de la base de données SCCM est nécessaire.
  • Ajout du mode verbeux (/verbose, /v), qui affiche toutes les requêtes SQL qui seront exécutées pendant 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 Server.
  • 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 la base de données. Crédit à Azaël Martin (n3rada).
  • Amélioration du module impersonation pour inclure les principaux Windows et les utilisateurs de la base de données. Crédit à Azaël Martin (n3rada).
  • Ajout de la récupération d'adresses IP dans le module d'énumération sqlspns. Crédit à Azaël Martin (n3rada).
  • Normalisation de la sortie console en markdown lorsque cela s'applique. Crédit à Azaël Martin (n3rada).
  • Ajout de la prise en charge DNS au module /enum:info.
  • Ajout de l'argument facultatif /subsystem au module olecmdexec, qui accepte l'exécution via les sous-systèmes d'automatisation OLE CmdExec ou PowerShell.
  • Mise à jour des harnais de test pour refléter les changements de CLI et les nouveaux modules.
  • Remplacement de l'authentification AzureAD par EntraID.
  • Déplacement de la logique des arguments dans des méthodes individuelles au sein de 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 de fiabilité et de fonctionnalité significatifs pour tous les fournisseurs d'authentification et modules.
  • ArgumentLogic.cs
  • Supprimé le répertoire authentication.
  • Modifié le style de code pour mieux suivre le guide de style de code C#/.NET de Microsoft.
  • Changé Help.cs d'une méthode en un constructeur.
  • Changé CaptureHash.cs d'une méthode en un constructeur.
  • Changé Impersonate.cs d'une méthode en un constructeur.
  • Refactorisé l'ensemble de la base de code.
  • Créé lEnableClr.
  • Créé lDisableClr.
  • Créé lXpCmd.
  • Créé lXpOle.
  • Créé Random.cs.
  • Créé EnableDisable.cs.
  • Implémenté des noms d'assembly générés aléatoirement pour clr.
  • Implémenté des noms de variables et de méthodes générés aléatoirement pour ole.
  • Fusionné les modules mapped et roles dans whoami.
  • Fusionné les modules lMapped et lRoles dans lWhoami.
  • Fusionné les modules iMapped et iRoles dans iWhoami.
  • Refactorisé l'ensemble de la base de code.