🔍 Contexte

Publié le 30 avril 2026 par Austin Coontz (TrustedSec), cet article de recherche offensive présente trois chaînes d’attaque exploitant la permission WriteGPLink sur des Unités Organisationnelles (OU) Active Directory, combinée à l’ARP spoofing, pour détourner des chemins UNC référencés dans des GPO existants.

La première chaîne suppose qu’un attaquant authentifié dispose de WriteGPLink sur une OU cible et d’un accès réseau de couche 2 (même segment broadcast). Les étapes sont :

  • Clonage de SYSVOL (lisible par tout utilisateur authentifié) via smbclient ou rsync
  • Identification d’un GPO existant contenant une politique d’installation de logiciel pointant vers un chemin UNC (ex: googlechromestandaloneenterprise64.msi sur DC02)
  • Liaison du GPO à l’OU cible via link_gpo.py (modification de l’attribut gPLink)
  • ARP spoofing de l’IP de DC02 vers l’hôte attaquant via arpspoof-ng
  • Hébergement d’un MSI malveillant (ajout d’un compte administrateur local) via smbserver.py avec ProductCode et PackageCode patchés pour correspondre au paquet légitime
  • Résultat : exécution de code en SYSTEM au redémarrage de la machine cible, sans modification de SYSVOL, sans création de compte machine, sans ajout d’enregistrement DNS

🗺️ Attaque 2 : Drive Map Spoofing + Capture NTLMv2 et Downgrade WebDAV

Les GPO de mappage de lecteurs réseau (Group Policy Preferences, Drives.xml) référencent des chemins UNC. À chaque ouverture de session, la machine cliente contacte le serveur référencé. L’attaquant :

  • ARP spoofie l’IP du serveur cible
  • Capture les authentifications NTLMv2 via ntlmrelayx.py ou smbserver.py
  • Exploite un comportement de fallback WebDAV : si la connexion SMB échoue (ex: STATUS_BAD_NETWORK_NAME), le service WebClient Windows retente la connexion en HTTP sur le port 80, envoyant le NTLM sur HTTP — relayable vers LDAP, LDAPS, AD CS, SMB
  • Le SPN capturé devient HTTP/DC02.woke.local, rendant le token relayable vers des services non-SMB

📜 Attaque 3 : Logon Script Spoofing

Les scripts de connexion et de démarrage référencés par UNC dans les GPO peuvent également être redirigés vers un hôte attaquant via ARP spoofing, permettant de servir un contenu de remplacement exécuté en tant qu’utilisateur ou ordinateur.

🛠️ Outils utilisés

  • BloodHound : identification de l’edge WriteGPLink
  • parse_sysvol.py : corrélation SYSVOL/GPO/BloodHound pour identifier installations logicielles, drive maps, scripts
  • GPOHound : analyse approfondie des GPO
  • link_gpo.py / GPOwned.py : modification de l’attribut gPLink
  • arpspoof-ng : envoi de paquets ARP gratuits
  • Impacket smbserver.py / ntlmrelayx.py : serveur SMB malveillant et relay NTLM
  • NetExec : vérification de l’état du service WebClient
  • Responder (option -E) : alternative pour le fallback WebDAV

📌 Type d’article

Il s’agit d’une publication de recherche offensive à visée technique, documentant des chaînes d’attaque originales exploitant des primitives AD connues (WriteGPLink, ARP spoofing, NTLM relay) dans des combinaisons nouvelles, avec démonstration en environnement de lab.

🧠 TTPs et IOCs détectés

TTP

  • T1557.002 — Adversary-in-the-Middle: ARP Cache Poisoning (Credential Access)
  • T1484.001 — Domain Policy Modification: Group Policy Modification (Defense Evasion)
  • T1557 — Adversary-in-the-Middle (Credential Access)
  • T1187 — Forced Authentication (Credential Access)
  • T1021.002 — Remote Services: SMB/Windows Admin Shares (Lateral Movement)
  • T1204.002 — User Execution: Malicious File (Execution)
  • T1078 — Valid Accounts (Defense Evasion)
  • T1136.001 — Create Account: Local Account (Persistence)
  • T1059 — Command and Scripting Interpreter (Execution)
  • T1550.002 — Use Alternate Authentication Material: Pass the Hash (Lateral Movement)

IOC

  • Fichiers : googlechromestandaloneenterprise64.msi
  • Fichiers : parse_sysvol.py
  • Fichiers : link_gpo.py

Malware / Outils

  • BloodHound (tool)
  • arpspoof-ng (tool)
  • Impacket smbserver.py (tool)
  • ntlmrelayx.py (tool)
  • Responder (tool)
  • GPOHound (tool)
  • NetExec (tool)
  • OUned.py (tool)
  • GPOwned.py (tool)
  • xfreerdp (tool)

🟡 Indice de vérification factuelle : 40/100 (moyenne)

  • ⬜ trustedsec.com — source non référencée (0pts)
  • ✅ 15000 chars — texte complet (fulltext extrait) (15pts)
  • ✅ 3 IOCs (IPs/domaines/CVEs) (10pts)
  • ⬜ pas d’IOC vérifié (0pts)
  • ✅ 10 TTPs MITRE identifiées (15pts)
  • ⬜ date RSS ou approximée (0pts)
  • ⬜ aucun acteur de menace nommé (0pts)
  • ⬜ pas de CVE à vérifier (0pts)

🔗 Source originale : https://trustedsec.com/blog/arp-around-and-find-out-hijacking-gpo-unc-paths-for-code-execution-and-ntlm-relay