🔑Lab de contraseñas - Medium
Nuestro próximo host es una estación de trabajo utilizada por un empleado para su trabajo diario.
Estos tipos de hosts se utilizan a menudo para intercambiar archivos con otros empleados y, por lo general, los administran administradores a través de la red. Durante una reunión con el cliente, se nos informó que muchos usuarios internos utilizan este host como host de salto. La atención se centra en asegurar y proteger los archivos que contienen información confidencial.
Objetivo
Examina el segundo objetivo y envía el contenido de flag.txt en /root/ como respuesta.
Escaneo de puertos
sudo nmap -v -sV -T5 10.129.202.221 -Pn
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.4 (Ubuntu Linux; protocol 2.0)
139/tcp open netbios-ssn Samba smbd 4.6.2
445/tcp open netbios-ssn Samba smbd 4.6.2
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernelObservamos que tiene 3 puertos abiertos, 22, 139 y 445, que se corresponden con SSH y SMB
Bruteforce de SMB
Vamos a user el módulo smb_login de metasploit, explicado en la sección Bruteforce de Servicios:
msf6 auxiliary(scanner/smb/smb_login) > set user_file username.list
user_file => username.list
msf6 auxiliary(scanner/smb/smb_login) > set pass_file password.list
pass_file => password.list
msf6 auxiliary(scanner/smb/smb_login) > set rhosts 10.129.187.207
rhosts => 10.129.187.207
msf6 auxiliary(scanner/smb/smb_login) > run
[*] 10.129.187.207:445 - 10.129.187.207:445 - Starting SMB login bruteforce
[+] 10.129.187.207:445 - 10.129.187.207:445 - Success: '.\john:123456'
[!] 10.129.187.207:445 - No active DB -- Credential data will not be saved!
[+] 10.129.187.207:445 - 10.129.187.207:445 - Success: '.\dennis:123456'
[+] 10.129.187.207:445 - 10.129.187.207:445 - Success: '.\chris:123456'
[+] 10.129.187.207:445 - 10.129.187.207:445 - Success: '.\cassie:123456'
[+] 10.129.187.207:445 - 10.129.187.207:445 - Success: '.\admin:123456'
[+] 10.129.187.207:445 - 10.129.187.207:445 - Success: '.\root:123456'
[+] 10.129.187.207:445 - 10.129.187.207:445 - Success: '.\sysadmin:123456'
[+] 10.129.187.207:445 - 10.129.187.207:445 - Success: '.\sysadm:123456'
[+] 10.129.187.207:445 - 10.129.187.207:445 - Success: '.\svc:123456'
[+] 10.129.187.207:445 - 10.129.187.207:445 - Success: '.\administrator:123456'
[+] 10.129.187.207:445 - 10.129.187.207:445 - Success: '.\helpdesk:123456'
[+] 10.129.187.207:445 - 10.129.187.207:445 - Success: '.\reception:123456'
[+] 10.129.187.207:445 - 10.129.187.207:445 - Success: '.\finance:123456'
[+] 10.129.187.207:445 - 10.129.187.207:445 - Success: '.\its:123456'
[+] 10.129.187.207:445 - 10.129.187.207:445 - Success: '.\ict:123456'
[+] 10.129.187.207:445 - 10.129.187.207:445 - Success: '.\hr:123456'Observamos que se repiten las mismas credenciales para múltiples usuarios, incluído el usuario root: 123456
Enumeración de SMB
Encontramos la carpeta compartida SHAREDRIVE con permisos de lectura que nos interesa. Dentro vemos que hay un Docs.zip que pude contener información relevante, por lo que nos lo vamos a descargar con smbclient:
Al intentar descomprimir este zip vemos que está protegido por contraseña, por lo que vamos a usar zip2john para crackearlo:
Cracking con zip2john
Vamos a utilizar nuestra lista de contraseñas mutadas con hashcat para aumentar la efectividad del crackeo con John:
Y bumm! Obtenemos la contraseña del zip. Vamos a descomprimirlo y ver su contenido:
Hay un Documentation.docx, pero su contenido está cifrado, por lo que necesitamos desencriptarlo para leer el contenido.

Cracking con Office2john
Ya tenemos la contraseña del archivo! Ahora necesitamos libreoffice para abrirlo en Kali Linux:


Y obtenemos correctamente las credenciales del usuario root!
jason:C4mNKjAtL2dydsYa6 🏆
Root Login
Observamos que Jason no es el usuario root (aunque así se recoja en el documento), por lo que vamos a enumerar información dentro del host
Lo primero que observamos es que hay 2 usuarios en el sistema: dennis y jason. Enumerando un poco de información encontramos que en el directorio dennis hay un archivo .bash_history que posiblemente contenga información relevante sobre el usuario root, pero no podemos acceder:
Escalada de privilegios
Observamos que se utiliza una base de datos en el host, por lo que vamos a loguearnos con este usuario administrados para ver si encontramos información relevante:
Encontramos la contraseña del usuario dennis: 7AUgWWQEiMPdqx
Al intentar conectarnos por SSH rechaza nuestra conexión, por lo que directamente vamos a cambiar al usuario Dennis dentro del host:
Conseguimos cambiar al usuario dennis correctamente, y podemos ver el archivo .bash_history, que tal y como pensábamos nos indica la ruta de los id_rsa para conectarnos sin contraseña por SSH.
Vamos a transferir el id_rsa a nuestra máquina de atacante y intentar conectarnos:
Nos pide un passphrase para el id_rsa, por lo que vamos a crackearlo con ssh2john
Cracking con ssh2john
Con esto, obtenemos las credenciales para loguearnos por SSH como el usuario root y el id_rsa
Acceso Root - Final
Efectivamente, nos logueamos correctamente y conseguimos acceder a la flag 🏆
Última actualización
¿Te fue útil?