SOC Prime Bias: Élevé

10 Jul 2026 18:23 UTC

Impacket pour les Pentesters : Techniques de Changement de Mot de Passe

Author Photo
SOC Prime Team linkedin icon Suivre
Impacket pour les Pentesters : Techniques de Changement de Mot de Passe
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

Cet article explique comment les mauvaises configurations d’Active Directory peuvent être exploitées pour réinitialiser de force les mots de passe des utilisateurs avec l’outil Impacket. Il se concentre sur l’utilitaire impacket-changepasswd , qui peut tirer parti du Reset Password ACE pour permettre la prise de contrôle des comptes. La technique prend en charge plusieurs protocoles, y compris SMB-SAMR, RPC-SAMR, LDAP et Kerberos.

Enquête

Le rapport présente un scénario de laboratoire dans lequel un utilisateur se voit accorder des droits de réinitialisation de mot de passe sur un autre objet de compte. Il passe en revue plusieurs approches d’authentification, y compris les identifiants en clair, Pass-the-Hash, Pass-the-Key, et l’utilisation du cache TGT Kerberos pour manipuler les mots de passe des comptes à travers différents protocoles.

Atténuation

Les défenseurs devraient auditer régulièrement les ACLs d’Active Directory avec des outils tels que BloodHound pour identifier les droits de réinitialisation de mot de passe excessivement permissifs. L’application d’un modèle d’administration par niveaux et l’utilisation du groupe de sécurité Utilisateurs protégés peuvent réduire considérablement l’exposition. L’application de la signature LDAP et le déploiement de Credential Guard sont également recommandés.

Réponse

Si une activité suspecte est détectée, les équipes de sécurité devraient enquêter sur les IDs d’événement Windows 4723, 4724, 4738, 4771, et 5136. Les analystes doivent vérifier si la réinitialisation du mot de passe était autorisée et examiner l’environnement pour identifier tout trafic SAMR inhabituel ou des modifications dans le répertoire LDAP. Les actions immédiates doivent inclure l’audit des autorisations du compte affecté et la rotation des identifiants pour tout utilisateur administratif potentiellement compromis.

Flux d’attaque

Nous mettons encore à jour cette partie. Inscrivez-vous pour être informé

M’informer

Exécution de simulation

Prérequis : Le contrôle pré-vol de télémétrie & Baseline doit avoir réussi.

Justification : Cette section détaille l’exécution précise de la technique de l’adversaire (TTP) conçue pour déclencher la règle de détection. Les commandes et la narration DOIVENT refléter directement les TTPs identifiés et viser à générer la télémétrie exacte attendue par la logique de détection. Des exemples abstraits ou non liés entraîneront des erreurs de diagnostic.

  • Narratif d’attaque & Commandes: Un adversaire a compromis avec succès un compte utilisateur avec des permissions déléguées ou a escaladé ses privilèges à un niveau d’administrateur de domaine. Pour assurer une persistance à long terme et éviter la détection lors d’une phase ultérieure de l’opération, l’attaquant décide de réinitialiser le mot de passe d’un compte de service connu. En utilisant des outils PowerShell natifs (Set-ADAccountPassword or net user), l’attaquant tente de modifier le mot de passe de Service_SVC. Cette action est une technique classique « Living off the Land », conçue pour se fondre dans les tâches administratives de routine, mais elle déclenche des IDs spécifiques d’événements de sécurité Windows (4724/4738) que la règle de détection est prévue pour capturer.

  • Script de test de régression :

    # Script de simulation : Réinitialisation de mot de passe via PowerShell
    # Remarque : Cela doit être exécuté dans un environnement de laboratoire contrôlé avec les autorisations appropriées.
    
    $TargetUser = "Service_SVC"
    
    Write-Host "[*] Vérification de l'existence de l'utilisateur cible..." -CouleurTexte Cyan
    if (Get-ADUser -Filter "SamAccountName -eq '$TargetUser'") {
        Write-Host "[+] Utilisateur cible $TargetUser trouvé. Poursuite avec la simulation de réinitialisation du mot de passe..." -CouleurTexte Vert
    
        # Génération de l'ID d'événement 4724 / 4738
        try {
            $NewPassword = ConvertTo-SecureString "SimulatedPass123!" -AsPlainText -Force
            Set-ADAccountPassword -Identity $TargetUser -NewPassword $NewPassword
            Write-Host "[+] SUCCÈS : Réinitialisation de mot de passe déclenchée. Vérifiez les journaux de sécurité pour l'ID d'événement 4724/4738." -CouleurTexte Vert
        } catch {
            Write-Host "[-] ERREUR : Échec de la réinitialisation du mot de passe. Assurez-vous que vous exécutez en tant qu'utilisateur Admin/Autorisé." -CouleurTexte Rouge
            Write-Error $_
        }
    } else {
        Write-Host "[-] ERREUR : Utilisateur cible $TargetUser non trouvé. Veuillez créer l'utilisateur d'abord." -CouleurTexte Rouge
    }
  • Commandes de nettoyage :

    # Script de nettoyage : Restaurer l'état d'origine
    $TargetUser = "Service_SVC"
    $OriginalPassword = ConvertTo-SecureString "Original_Safe_Pass_2025!" -AsPlainText -Force
    
    Write-Host "[*] Restauration du mot de passe d'origine pour $TargetUser..." -CouleurTexte Cyan
    Set-ADAccountPassword -Identity $TargetUser -NewPassword $OriginalPassword
    Write-Host "[+] Nettoyage terminé." -CouleurTexte Vert