En primer lugar, debemos asegurar que estamos conectados a la víctima y tratar de recopilar la máxima información posible.
Para verificar la conexión y tener una primera toma de contacto utilizaremos el comando ping
.
ping 10.10.10.3
Mediante este comando podemos obtener la siguiente información:
Determinar si estamos frente a un SO Linux o Windows: Windows ttl = 128 Linux ttl = 64
nmap -p- –open -T5 -v -n 10.10.10.3 -oG allPorts
-p-
: Escanea todo el rango de puertos.
--open
: Solo nos mostrará puertos con el estatus abierto.
-T5
: Controla el tiempo y el rendimiento del escaneo donde 1 es el más lento y 5 el más rápido.
-v
: Verbose. Recopila los puertos abiertos por TCP y los reporta por consola.
-n
: Anula la resolución DNS.
-oG
: Exportar los resultados en formato grepeable.
allPorts
: Nombre del archivo. Si no existe lo creará.
De esta manera podremos revisar los puertos que estaban abiertos en cualquier momento.
Tras conocer los puertos TCP abiertos, realizaremos un segundo escaneo enfocado en los puertos abiertos para ver la información que nos reportan y exportarlo en formato nmap al archivo ‘targed’.
nmap -sC -sV -n -v -p21,,22,139,445,3632 -oN target
-sC
: Lanza scrips básicos de reconocimiento.
-sV
: Localiza la versión y servicio de los puertos definidos.
-p
: Puertos a escanear.
-oN
: Reporta los resultados en formato nmap al archivo target
.
Vemos que en el puerto 21/tcp corre un servicio ftp con la versión vsftpd 2.3.4
. Vamos a tratar de buscar alguna vulnerabilidad para esta versión
en concreto. Para realizar la búsqueda utilizaremos la herramienta searchsploit
. En caso de no tenerlo lo instalamos:
sudo apt install searchsploit
Luego lo ejecutamos y le especificamos la versión para que nos busque el exploit
adecudo:
searchsploit vsftpd
Vemos como para la versión 2.3.4 existe una herramienta llamada Backdoor Command Execution (Metasploit)
alojado en el PATH unix/remote/17491.rb
.
Veamos el código a ver que información utiliza para vulnerar está versión:
searchsploit -x unix/remote/17491.rb
-x
: Para examinar un archivo.
Esta herramienta, por lo que parece, usa una serie de cadenas en el usuario para tratar de ganar acceso por el puerto 6200. Yo lo he intentado
manualmente y mediante Metasploit
y no he podido acceder mediante esta herramienta.
Al ver que esto no funcionaba, busque otro vector de ataque y vemos que por los puertos 139 y 445 corre un servicio Samba
.
Vemos también que en el puerto 445 nos indica la versión 3.0.20
, así que buscamos sobre este servicio:
searchsploit samba 3.0.20
Vamos a tratar de acceder mediante Metasploit
empleando la herramienta reportada anteriormente. En primer lugar, ejecutamos Metasploit
:
msfconsole
Buscamos la versión de Samba para asegurarnos que tenemos la herramienta y ver donde se aloja:
search samba 3.0.20
Ahora, mediante la variable options
podemos ver los campos que tenemos que rellenar para poder realizar el ataque.
Para cambiar los campos empleamos la variable set
y el campo que deseamos cambiar. Primero introduciremos el localhost LHOST
, es nuestra IP o en este caso
la IP de la VPN de Hack the Box:
Ahora especificamos el puerto de escucha, yo voy a utilizar el 8080
:
Ahora especificaremos de la misma manera el remote host RHSOT
en este caso la Ip de la máquina:
Y finalmente el puerto abierto RPORT
por el que corre el servicio Samba, en este caso el puerto 139
, este campo se suele
rellenar de forma automática.
Y finalmente ejecutamos Metasploit:
exploit
Vemos como nos crea la shell y que a de más estamos registrados como root
.
Finalmente, como estamos registrados como root
podemos buscar las flags sin ningún problema. Vemos que la flag del usuario la
podemos encontrar en el directorio /home/makis/user.txt
.
Y que la flag del usuario root
lo podemos encontrar en el directorio /root/root.txt
.