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
ShadowSpray — Un outil pour spray des Shadow Credentials sur l'ensemble d'un domaine dans l'espoir d'abuser de DACLs GenericWrite/GenericAll depuis longtemps oubliées sur d'autres objets du domaine. | Kitploit
Outils/GitHubGitHub/dec0ne/shadowspray
Escalade de PrivilègesAnalyse des VulnérabilitésExploitationTests d'IntrusionAuthentificationRed Teaming
GitHubdec0ne/shadowspray

ShadowSpray

Un outil pour spray des Shadow Credentials sur l'ensemble d'un domaine dans l'espoir d'abuser de DACLs GenericWrite/GenericAll depuis longtemps oubliées sur d'autres objets du domaine.

Voir le dépôt
49079il y a 3 ansVé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

ShadowSpray

Un outil pour pulvériser des Shadow Credentials à travers un domaine entier, dans l'espoir d'exploiter des DACLs GenericWrite/GenericAll oubliées depuis longtemps sur d'autres objets du domaine.

Pourquoi cet outil

Dans de nombreuses missions, je vois (dans BloodHound) que le groupe « Everyone » / « Authenticated Users » / « Domain Users » ou un autre groupe large, contenant presque tous les utilisateurs du domaine, possède des DACLs GenericWrite/GenericAll sur d'autres objets du domaine.

example

Ces droits peuvent être abusés pour ajouter des Shadow Credentials sur l'objet cible et obtenir son TGT et son NT Hash.

Il m'est venu à l'esprit que nous pouvions simplement essayer de pulvériser des Shadow Credentials sur l'ensemble du domaine et voir ce qui prend (évidemment, cette approche est mieux adaptée aux missions non furtives, ne l'utilisez pas dans une red team où la furtivité est requise). Lorsqu'un Shadow Credential est ajouté avec succès, nous effectuons simplement toute la danse PKINIT + UnPACTheHash et voilà – nous obtenons les NT Hashes.

Comme le processus est extrêmement rapide, cela peut être utilisé dès le début de la mission, et avec un peu de chance, vous aurez déjà quelques utilisateurs et ordinateurs compromis avant même de commencer.

Remarque : J'ai recyclé beaucoup de code de mon outil précédent, donc les AV/EDR pourraient le signaler comme KrbRelayUp...

Comment fonctionne cet outil

Cela se déroule comme ceci :

  1. Connexion au domaine avec les identifiants fournis (ou utilisation de la session en cours).
  2. Vérifier que le niveau fonctionnel du domaine est 2016 (sinon, s'arrêter car l'attaque Shadow Credentials ne fonctionnera pas).
  3. Récupérer une liste de tous les objets du domaine (utilisateurs et ordinateurs) depuis LDAP.
  4. Pour chaque objet de la liste, effectuer les opérations suivantes :
    1. Essayer d'ajouter un KeyCredential à l'attribut « msDS-KeyCredentialLink » de l'objet.
    2. Si cela réussit, utiliser PKINIT pour demander un TGT en utilisant le KeyCredential ajouté.
    3. Si cela réussit, effectuer une attaque UnPACTheHash pour révéler le NT hash de l'utilisateur/ordinateur.
    4. Si --RestoreShadowCred a été spécifié : supprimer le KeyCredential ajouté (nettoyer derrière soi...).
  5. Si --Recursive a été spécifié : effectuer le même processus en utilisant chacun des comptes utilisateur/ordinateur que nous avons réussi à compromettre.

ShadowSpray prend en charge CTRL+C, donc si à tout moment vous souhaitez arrêter l'exécution, appuyez simplement sur CTRL+C et ShadowSpray affichera les NT Hashes récupérés jusqu'à présent avant de se terminer (comme montré dans la démo ci-dessous).

Démo

https://user-images.githubusercontent.com/54464773/194827503-b1eead1a-e09a-41ca-9d9b-0a7a6f0ad6a0.mp4

Utilisation

root@kitploit:~
 __             __   __        __   __   __
/__` |__|  /\  |  \ /  \ |  | /__` |__) |__)  /\  \ /
.__/ |  | /~~\ |__/ \__/ |/\| .__/ |    |  \ /~~\  |


Usage: ShadowSpray.exe [-d FQDN] [-dc FQDN] [-u USERNAME] [-p PASSWORD] [-r] [-re] [-cp CERT_PASSWORD] [-ssl]

    -r   (--RestoreShadowCred)       Restaurer l'attribut « msDS-KeyCredentialLink » après l'attaque. (Optionnel)
    -re  (--Recursive)               Effectuer l'attaque ShadowSpray de manière récursive. (Optionnel)
    -cp  (--CertificatePassword)     Mot de passe du certificat. (par défaut = mot de passe aléatoire)


Options générales :
    -u  (--Username)                 Nom d'utilisateur pour l'authentification LDAP initiale. (Optionnel)
    -p  (--Password)                 Mot de passe pour l'authentification LDAP initiale. (Optionnel)
    -d  (--Domain)                   FQDN du domaine. (Optionnel)
    -dc (--DomainController)         FQDN du contrôleur de domaine. (Optionnel)
    -ssl                             Utiliser LDAP sur SSL. (Optionnel)
    -y  (--AutoY)                    Ne pas demander de confirmation pour démarrer l'attaque ShadowSpray. (Optionnel)

À FAIRE

  • Refactorisation et nettoyage du code !!!
  • Ajouter une option de sortie verbeuse
  • Ajouter une option pour enregistrer les KeyCredentials ajoutés / TGT demandés / NT Hashes collectés dans un fichier sur le disque
  • Version Python ;)
  • D'autres suggestions seront les bienvenues

Atténuation et Détection

Extrait du billet de blog d'Elad Shamir sur les Shadow Credentials :

  • Si l'authentification PKINIT n'est pas courante dans l'environnement ou n'est pas courante pour le compte cible, l'événement « Un ticket d'authentification Kerberos (TGT) a été demandé » (4768) peut indiquer un comportement anormal lorsque les attributs d'informations de certificat ne sont pas vides.

  • Si une SACL est configurée pour auditer les modifications d'objets Active Directory pour le compte ciblé, l'événement « L'objet du service d'annuaire a été modifié » (5136) peut indiquer un comportement anormal si le sujet modifiant msDS-KeyCredentialLink n'est pas le compte de synchronisation Azure AD Connect ou le compte de service ADFS, qui agissent généralement en tant que serveur de provisionnement de clés et modifient légitimement cet attribut pour les utilisateurs.

  • Un contrôle préventif plus spécifique consiste à ajouter une entrée de contrôle d'accès (ACE) pour INTERDIRE au principal EVERYONE de modifier l'attribut msDS-KeyCredentialLink pour tout compte qui n'est pas destiné à être inscrit dans l'authentification sans mot de passe Key Trust, et en particulier les comptes privilégiés.

  • Détection de l'UnPACing et des credentials fantômes par Henri Hambartsumyan de FalconForce

Détections spécifiques à ShadowSpray :

  • Cet outil tente de modifier chaque objet utilisateur/ordinateur du domaine dans un laps de temps très court ; quand il échoue (la plupart du temps), il génère une erreur LDAP_INSUFFICIENT_ACCESS. Il est possible de construire une détection autour de cela en utilisant la même approche que la détection d'un spray de mots de passe régulier.

Remerciements

  • Elad Shamir pour ses recherches sur les Shadow Credentials et son formidable outil Whisker.
  • Will Schroeder et tous ceux qui ont contribué à Rubeus que nous connaissons et aimons tous. En gros, toutes les fonctionnalités TGT/TGS/UnPACTheHash viennent de là.
  • Cube0x0 Une partie du code (spécifiquement les modifications des attributs LDAP via WINAPI) a été reprise de son excellent outil KrbRelay.
  • Michael Grafnetter pour son outil DSInternals qui a été utilisé ici pour aider avec la fonctionnalité Shadow Credentials.
  • Orange-Cyberdefense pour leur travail sur GOAD, le laboratoire de recherche Active Directory que j'utilise et que vous pouvez voir dans la vidéo de démonstration et les images.
  • Martijn Laarman pour la jolie barre de progression utilisée dans cet outil.
Télécharger l’outil