Skip to content
KitploitKITPLOIT
OutilsBlog
Log in
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
MSSQLand — Outil de post-exploitation C# ciblé pour Microsoft SQL Server (MS SQL / MSSQL) parcourant des chaînes de serveurs liés de toute profondeur avec usurpation d'identité de connexion en cascade à chaque saut. | Kitploit
Outils/GitHubGitHub/n3rada/mssqland
Escalade de PrivilègesOutils d'ImpersonationMouvement LatéralAudit de ConfigurationCollecte d'InformationsPost-ExploitationTests d'IntrusionRed TeamingSécurité des Bases de Données
GitHubn3rada/mssqland

MSSQLand

Outil de post-exploitation C# ciblé pour Microsoft SQL Server (MS SQL / MSSQL) parcourant des chaînes de serveurs liés de toute profondeur avec usurpation d'identité de connexion en cascade à chaque saut.

75975il 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
Voir le dépôt

✈️ MSSQLand

Atterrissez en toute élégance sur votre Microsoft SQL Server (MS SQL) SGBD cible, comme si vous arriviez en voyage d'affaires avec une coupe de champagne à la main. 🥂

Capacités de chaînage de MSSQLand

MSSQLand est un outil de post-exploitation C# pour Microsoft SQL Server (MSSQL / MS SQL) conçu pour les opérateurs red team. Conçu pour s'exécuter directement dans l'environnement cible via vos beacons (par exemple, en utilisant execute-assembly dans Cobalt Strike ou Havoc, ou toute commande dotnet), il vous permet de traverser des chaînes de serveurs liés, d'usurper l'identité de toute connexion rencontrée en cours de route, et d'émerger du dernier saut avec l'action souhaitée. Le tout avec une empreinte OPSEC minimale et aucune dépendance externe.

  • Traversée de serveurs liés : encapsulation automatique via OPENQUERY / EXEC AT sur des chaînes de profondeur arbitraire
  • Usurpation d'identité : EXECUTE AS LOGIN à chaque saut avec usurpation en cascade multi-utilisateur
  • Authentification : jeton Windows courant, pass-the-hash via usurpation de jeton du beacon, Kerberos
  • Découverte : SQL Browser (UDP 1434), énumération des SPN Active Directory via LDAP, broadcast, scan de ports TDS
  • ConfigMgr / SCCM / MECM : actions dédiées cm-* pour la reconnaissance et l'exploitation des bases de données Microsoft Configuration Manager
  • Sortie : tableaux compatibles Markdown avec horodatages, export CSV pour des livrables de test d'intrusion propres

[!TIP] MSSQLand est construit avec .NET Framework 4.8, en pensant à une exécution en assembly, utilisant le contexte courant. Si vous devez vous connecter en utilisant des hashs NT/LM ou un ticket Kerberos, consultez la section Pass-the-Hash.

[!NOTE] N'oubliez pas les bases. Lors d'une évaluation de sécurité, il est parfois plus simple d'utiliser SQL Server Management Studio (SSMS).

🧸 Utilisation

MSSQLand.exe [options] <host> [options] <action> [action-options]
MSSQLand.exe <host> --probe

Les flags globaux (-c, -l, --debug, etc.) sont acceptés à n'importe quelle position, y compris après le nom de l'action ; les tokens non reconnus après l'action sont passés tels quels à l'action.

[!NOTE] Omettre <action> effectue uniquement un test de connexion. Il s'authentifie et se termine sans exécuter de requêtes. Idéal pour valider des identifiants avec une empreinte OPSEC minimale.

[!TIP] Évitez de saisir manuellement tous les appels RPC Out ou OPENQUERY. Laissez l'outil gérer toute chaîne de serveurs liés avec l'argument -l, afin de pouvoir vous concentrer sur la vue d'ensemble.

Format : server:port/user@database ou toute combinaison server/user@database:port.

  • server (obligatoire) - Le nom d'hôte ou l'IP du serveur SQL
  • :port (optionnel) - Numéro de port (par défaut : 1433, également courant : 1434, 14333, 2433)
  • /user (optionnel) - Utilisateur à usurper sur ce serveur ("execute as login")
    • Prend en charge l'usurpation en cascade : /user1/user2/user3 exécute EXECUTE AS LOGIN = 'user1'; EXECUTE AS LOGIN = 'user2'; EXECUTE AS LOGIN = 'user3';
    • Chaque /user ajoute un nouveau contexte d'usurpation sur la pile de sécurité
  • @database (optionnel) - Contexte de base de données
# Sonde de connectivité : vérifie si le serveur est actif sans s'authentifier
MSSQLand.exe localhost --probe

# Test de connexion uniquement (aucune action exécutée, s'authentifie et quitte)
MSSQLand.exe localhost -c token

# Exécute une action spécifique
MSSQLand.exe localhost -c token info
MSSQLand.exe localhost:1434@db03 -c token info
MSSQLand.exe LAB-SQL01@AdventureWorks -c token tables -n Customer

🔗 Chaîne de serveurs liés

Enchaînez plusieurs serveurs SQL à l'aide du flag -l avec le point-virgule (;) comme séparateur :

-l SQL01;SQL02/user;SQL03@database

Syntaxe :

  • Point-virgule (;) - Sépare les serveurs dans la chaîne
  • Barre oblique (/) - Spécifie l'utilisateur à usurper ("execute as login")
    • Prend en charge l'usurpation en cascade : /user1/user2 exécute des usurpations séquentielles
  • Arobase (@) - Spécifie le contexte de base de données
  • Crochets ([...]) - Utilisés pour protéger le nom du serveur d'une division par nos délimiteurs

Exemples :

# Chaîne simple
-l SQL01;SQL02;SQL03

# Avec usurpation et bases de données
-l SQL01/admin;SQL02;SQL03/manager@clients

# Usurpation en cascade (usurper user1, puis user2 sur SQL01)
-l SQL01/user1/user2;SQL02;SQL03

# Cascade mixte (SQL01 : user1→user2, SQL03 : user3→user4→user5)
-l SQL01/user1/user2;SQL02;SQL03/user3/user4/user5@database

# Les noms de serveurs peuvent contenir des tirets, des points (pas besoin de crochets)
-l SQL-01;SERVER.001;HOST.DOMAIN.COM

# Les crochets ne sont nécessaires que si le nom du serveur contient des caractères délimiteurs
-l [SERVER;PROD];SQL02;[SQL03@clients]@clientdb

[!NOTE] La spécification de port (:port) s'applique uniquement à la connexion initiale à l'hôte. Les chaînes de serveurs liés (-l) utilisent les noms de serveurs liés tels que configurés dans sys.servers, et non les combinaisons hôte:port.

🔍 Découverte

Ces modes ne nécessitent aucune authentification et fonctionnent avant d'avoir des identifiants.

📡 Service de navigation

Le service SQL Server Browser écoute sur UDP 1434 et répond aux requêtes de découverte avec la liste des instances SQL Server en cours d'exécution sur un hôte, y compris leurs noms, versions et ports TCP. Utile lorsque la cible exécute des instances nommées sur des ports dynamiques, sans avoir à deviner ou scanner.

# Interroge le service SQL Browser sur un hôte spécifique (UDP 1434)
MSSQLand.exe LAB-SQL03 --browse

📂 Requêtes LDAP

Active Directory expose les enregistrements SQL Server via des Service Principal Names (SPNs) stockés sur les comptes d'ordinateur et de service. MSSQLand interroge AD via LDAP pour les SPNs MSSQLSvc/* afin d'énumérer les instances SQL Server dans le domaine, ou dans toute la forêt via le Global Catalog.

# Trouve les serveurs SQL dans Active Directory via LDAP (domaine courant)
MSSQLand.exe --findsql

# Cible un domaine spécifique
MSSQLand.exe --findsql pgd.lab

# Recherche dans toute la forêt via le Global Catalog (port 3268)
MSSQLand.exe --findsql pgd.lab --gc

La découverte est multicouche. Voir FindSqlServers.cs pour plus de détails.

📢 Broadcast

Le service SQL Server Browser répond également aux paquets UDP broadcast sur UDP 1434, permettant de découvrir toutes les instances SQL Server s'annonçant sur le sous-réseau local.

# Découverte par broadcast sur le réseau local (UDP 1434)
MSSQLand.exe --broadcast
MSSQLand.exe --broadcast --timeout 5
Télécharger l’outil