SOC Prime Bias: Moyenne

04 Jul 2026 07:02 UTC

ADWS et le chemin caché vers l’énumération Active Directory

Author Photo
SOC Prime Team linkedin icon Suivre
ADWS et le chemin caché vers l’énumération Active Directory
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

L’article décrit une méthode furtive pour l’énumération Active Directory via le protocole Active Directory Web Services (ADWS) sur le port TCP 9389. En s’appuyant sur ADWS au lieu de LDAP standard sur les ports 389 ou 636, les attaquants peuvent éviter de nombreuses détections réseau courantes et alertes EDR. Cette approche abuse de protocoles et outils administratifs légitimes pour déguiser l’activité de reconnaissance.

Enquête

L’enquête examine les couches techniques sous-jacentes à ADWS, notamment le cadrage de message .NET, NegotiateStream, et le codage binaire SOAP NBFSE. Elle explique comment ces composants améliorent la sécurité opérationnelle en obscurcissant le trafic réseau et en rendant plus difficile l’identification de la source des requêtes. L’auteur introduit également un outil de preuve de concept nommé ADWSHound pour démontrer et valider la technique.

Atténuation

Les atténuations recommandées incluent la surveillance du trafic sur le port TCP 9389, l’activation de la journalisation diagnostique des services d’annuaire avec l’événement 1644, et l’application de l’audit d’accès via les SACL sur les objets de répertoire sensibles. Les organisations devraient également envisager de déployer des objets canaris pour détecter les énumérations non autorisées. La corrélation des événements des services d’annuaire par ID d’opération peut également aider à reconstruire une activité d’énumération suspecte.

Réponse

Si ce comportement est détecté, les intervenants devraient enquêter sur l’origine de la connexion au port 9389 et identifier tout processus n’ayant pas de raison légitime de communiquer via ADWS. Le compte utilisé pour les requêtes au répertoire devrait ensuite être corrélé avec les sessions actives dans l’ensemble de l’environnement pour localiser le système compromis. L’événement 4662 devrait également être examiné pour détecter des signes d’accès non autorisé aux objets protégés.

Flux d’attaque

Exécution de la simulation

Prérequis : le contrôle pré-vol de télémétrie & de référence 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 le récit DOIVENT directement refléter les TTP identifiés et viser à générer exactement la télémétrie attendue par la logique de détection. Des exemples abstraits ou non liés conduiront à un mauvais diagnostic.

  • Récit & Commandes de l’attaque : Un adversaire a acquis un accès initial à un poste de travail et tente d’énumérer les utilisateurs du domaine pour faciliter un mouvement latéral. Pour éviter la détection par des outils basés sur la signature de base, l’attaquant décide d’utiliser le module officiel Active Directory PowerShell de Microsoft. Il exécute Get-ADUser pour récupérer la liste de tous les utilisateurs du domaine. Cette action force les Active Directory Web Services (ADWS) à traiter la requête LDAP, qui, en raison de l’activation de la journalisation diagnostique, génère un événement Windows 1644 contenant la chaîne « Get-ADUser », déclenchant ainsi notre règle de détection.

  • Script de Test de Régression :

     # Assurez-vous que le module Active Directory est disponible
      if (!(Get-Module -ListAvailable ActiveDirectory)) {
          Write-Error "Ce script nécessite le module RSAT Active Directory."
          return
      }
    
      Write-Host "[+] Début de la simulation : Énumération LDAP via Get-ADUser" -ForegroundColor Cyan
    
      # Déclencher la détection en interrogeant un utilisateur unique en utilisant le modèle Get-AD*
      # Ceci devrait générer l'ID d'événement 1644 dans le journal des services d'annuaire
      try {
          Get-ADUser -Filter * -ResultSetSize 1 | Out-Null
          Write-Host "[+] Commande de simulation exécutée avec succès." -ForegroundColor Green
          Write-Host "[+] Vérifiez les journaux des services d'annuaire pour l'ID d'événement 1644 contenant 'Get-AD*'" -ForegroundColor Yellow
      }
      catch {
          Write-Host "[-] Erreur lors de l'exécution de la commande : $($_.Exception.Message)" -ForegroundColor Red
      }
  • Commandes de Nettoyage :

     # Aucun changement permanent n'a été effectué à la base de données AD.
      # Si les niveaux de diagnostic du registre ont été augmentés manuellement, rétablissez-les :
      # Set-ItemProperty -Path "HKLM:SystemCurrentControlSetServicesNTDSDiagnostics" -Name "16 LDAP Interface Contained" -Value 0
      Write-Host "[+] Nettoyage terminé. Aucun changement d'état à annuler." -ForegroundColor Cyan