Writeup Basic Pentesting 1

Dado que esta va a ser la primera de varias entradas que iré publicando en el tiempo de varias VMs que iré realizando como parte de mi práctica en mi viaje al OSCP lo haremos de menor a mayor.

Lo que significa que iremos haciendo diferentes máquinas en el orden de complejidad baja a media y alta. Para esto arrancaremos con una VM básica de Vulnhub llamada «Pentesting 1».

Bajamos la VM del sitio de Vulnhub, en este caso la llamada «Basic Pentesting 1». La bajamos del siguiente link https://www.vulnhub.com/entry/basic-pentesting-1,216/#download

El nivel de dificultad de esta VM es «Bajo».

Cuando bajamos la VM vamos a ver que la misma está en formato «.ova» con lo cual más allá del sabor del software de virtualización que utilicemos sólo lo tenemos que importar el ova desde el directorio en el cual la hayamos guardado.

En mi caso y por un tema de gusto personal uso VMware Workstation Pro en su versión para Windows, pero lo mismo es si usamos Fusion para Mac o por supuesto VirtualBox.

Es importante que estas máquinas no estén publicadas de cara a internet ya que, si bien a esta altura es una obviedad, las mismas SON VULNERABLES.

Lo ideal es crear un segmento de red aislado en nuestro software de virtualización con un determinado rango IP.

Tanto VirtualBox como VMware permiten crear estas «Virtual Nets» (Vnets) o VMnets. En mi caso cree una Vmnet específica para jugar con estas VMs con un rango por DHCP específico de 192.168.135.0/24.

Una vez que importamos la VM de vulnhub que hemos bajado y le asignamos la VMnet correspondiente que hayamos creado, la prendemos y veremos la siguiente pantalla:

Obviamente que Vulnhub, al igual que pasa con las máquinas de HacktheBox, no te dá nunca ningún tipo de usuario y contraseña por default, con lo cual, lo tendremos que conseguir por nosotros mismos como parte del challenge en sí.

SCANNING

Lo primero que vamos a hacer cómo parte de los escaneos es correr un «netdiscover» ya sea al rango IP de la VMnet o a la interface que esté mirando a dicho rango IP o VMnet, cómo se ve a continuación:

Dado que ya tenemos la dirección IP de nuestra VM vulnerable, en este caso la 192.168.135.128 podemos empezar a escanear y buscar en la misma.

Si le tiramos un ping a la IP de la virtual veremos la siguiente respuesta:

Con lo cual ya de antemano y por la respuesta del TTL, vemos que se corresponde como ya vimos en la pantalla de inicio al levantar la VM, con un sistema de tipo *nix.

Para ellos vamos a correr un NMAP a la VM en cuestión. Dado que, a diferencia de HackTheBox en dónde nos conectamos por VPN, acá no tenemos problemáticas relacionadas a la conectividad y por ende en la velocidad de respuesta o delay, con lo cual y dado que estamos en un entorno especialmente diseñado para ellos podemos usar NMAP de la manera más ruidosa que se nos ocurra.

Cómo podemos observar, NMAP encontró 3 puertos abiertos:

TCP 21 (FTP) en dónde se observa que escucha la aplicación ProFTPD 1.3.3

TCP 22 (SSH) en dónde se observa que escucha la aplicación OpenSSH 7.2p2

TCP 80 (HTTP) en dónde se observa que corre un Apache 2.4.18

Si probamos abrir en nuestro Kali el puerto 80 en el navegador apuntando a la IP de la VM de vulnhub, veremos que efectivamente funciona y está escuchando:

ENUMERACIÓN

:

Luego a continuación vamos a enumerar sub directorios. Hay muchas formas de hacerlo y podríamos usar «Dirbuster». En este caso y en correlación con nuestra nota anterior de escaneo de vulnerabilidades con Nessus y NMAP (https://www.blackmantisecurity.com/vulnerability-scanning-con-nessus-y-nmap/), en dónde mostramos el uso varios scripts de NMAP útiles, usaremos entonces el script nse http-enum cómo se ve a continuación:

Vemos que Nmap encuentra un directorio llamado «secret» el cual obviamente puede ser interesante para que lo revisemos.

Dado que no tenemos todavía ningún tipo de acceso a la VM, buscaremos el directorio obviamente dentro del sitio web browseándolo.

Vemos que el sitio hostea un wordpress con algún tipo de contenido básico de tipo blog inicial.

La página de alguna manera se ve incompleta y no carga del todo bien.

Si ya sabemos que es un wordpress podemos entonces buscar su panel WP-Admin.

No logramos tener éxito. El sitio web no carga y no resuelve, pero vemos en la URL fallida que el browser está buscando al host vtcsec.

Esto de alguna manera lo que nos dice es que nuestro equipo (En mi caso Kali Linux) desde dónde estamos haciendo las pruebas contra la VM de Vulnhub, no está pudiéndo resolver el nombre DNS.

Por lo cual lo que haremos es editar el archivo /etc/hosts y agregar la entrada de la IP de la VM asociada al hostname «vtcsec» al que llama el browser:

Luego, una vez editado el archivo /etc/hosts y guardado los cambios volvemos al web browser del Kali y volvemos a cargar la página con el directorio secret http://192.168.135.128/secret/ y vemos lo siguiente:

Vemos que ahora el sitio de blog de wordpress carga de manera correcta y no cómo antes.

Volvamos entonces a probar de encontrar el portal de administración wp-admin:

Tipeamos entonces en el navegador http://192.168.135.128/secret/wp-admin

Y vemos lo siguiente:

Efectivamente tenemos ya el acceso al panel de WordPress. Obviamente no tenemos login de ningún tipo y tampoco hasta ahora tenemos acceso a la VM en sí.

En el login form probamos con las credenciales por default que suele tener WordPress que sería «admin», «admin» y las mismas efectivamente funcionan:

Bueno hemos logrado tener credenciales en sitio de administración de wordpress que no es poco. Acá dentro podríamos crear otros usuarios, cambiarle la password al usuario «admin» y varias cosas más.

Vamos a tratar de hacer algo más para lo cual pasaremos a la fase de explotación con Metasploit.

EXPLOTACIÓN

De las varias opciones que existen nosotros probamos por lógica las más sencilla que era testeo de credenciales por default.

También se podría haber intentado un ataque un ataque de fuerza bruta con alguna herramienta de fuerza bruta cómo Hydra.

O también podríamos haber usado un módulo auxiliar de metasploit cómo por ejemplo «auxiliary/scanner/http/wordpress_login_enum» para lanzar un ataque de fuerza bruta contra las credenciales.

Buscaremos en Metasploit con el comando «search» si existe algún tipo de exploit o módulo relacionado que podamos usar contra el WordPress.

Vemos que existe uno para subir una webshell con lo cual usaremos y configuraremos ese en cuestión:

Cuando lo corremos, por alguna extraña razón metasploit lo aborta.

Vamos a probar otra opción. Cuando habíamos hecho el escaneo con NMAP habíamos visto que de los 3 puertos uno era el TCP 21 con la aplicación ProFTPD 1.3.3.

Entonces con el comando «search» dentro de metasploit buscaremos todos los exploits que estén en la base para este aplicativo.

A continuación, elegiremos el exploit que se encuentra bajo /unix/ftp/proftpd_133c_backdoor el cual se encuentra rankeado como «excelente»:

Como vemos, luego de configurar el uso del exploit y sus opciones lo ejecutamos y el mismo corre exitosamente ya que al terminar nos indica que se tenemos una sesión de Shell abierta.

A partir de acá ya tenemos la VM totalmente owneada. Si corremos el comando Whoami veremos que somos root, con lo cual a partir de aquí podemos jugar con la VM a nuestra disposición:

Bueno para ir finalizando el ctf, pese a ya tener owneada la VM, pese a tener el acceso full al panel de admin del WordPress nos está faltando el flag principal el cual, es podernos loguear a la máquina con el prompt de usuario que nos presenta la misma cuando la booteamos, el cual es marlinspike.

Tenemos muchas formas de hacerlo, de hecho sería tan sencillo y tan trivial como hacer un change password al usuario con el login de root que ya conseguimos pero vamos a hacer la cosas bien.

Con lo cual editamos el archivo /etc/shadow

Cómo podemos ver encontramos al usuario y a su hash. A partir de acá tenemos algunas opciones básicas y a gusto de cada uno, podemos bajarnos el shadow a nuestro equipo y crackearlo con John The Ripper o Hashcat, o podemos tomar el hash haciendo un copy del mismo y pegándolo en alguno de los sitios que ya existen para estos menesteres, cómo por ejemplo crackstation.

En mi caso elijo bajarme el shadow y romperlo con John the Ripper, cómó vemos a continuación:

Vemos que la password de esta VM de Vulnhub relacionada al usuario «marlinspike» es también marlinspike, con lo cual ahora sólo queda loguearse con dicho usuario en la interfaz inicial que nos presentó al inicio cuando la inicializamos:

Listo el flag principal a resolver. Con esto damos por terminado el ctf de esta VM.

CONCLUSIONES

Hay muchas formas de practicar y está claro que uno también puede armarse por cuenta propia sus propios labs virtualizando diferentes sistemas operativos e instalándoles sistemas, bases de datos y aplicaciones. Lo que no siempre es sencillo, más allá de la facilidad que hoy existe para virtualizar, es poder generar entornos vulnerables con determinados flags o resultados esperados, con lo cual este tipo de plataformas, al igual que HacktheBox y otras nos dan un valor inigualable en ese aspecto, y el abanico de sabores que tienen es muy bueno para realmente aprender.

Todas las formas de práctica son excelentes para adquirir o mejorar los conocimientos que ya podamos tener. Muchas certificaciones como el OSCP y otras hoy exigen tener un conocimiento práctico real de muchos temas relacionados al pentesting desde un enfoque netamente práctico, y estos entornos son un complemento perfecto e ideal para la preparación de las curriculas.

La práctica hace al maestro, con lo cual recomiento estos labs y otros que podamos armar por cuentra propia. Iremos publicando otros Writeups no sólo de Vulnhub sino también de HacktheBox con el paso de los días, así que a estar atentos!!

Hasta la próxima entrada.

Diego

REFERENCIAS

https://www.vulnhub.com/ Para conocer y familiarizarse con Vulhub.

https://www.vulnhub.com/entry/basic-pentesting-1,216/#download Link para la descarga de la VM Basic Pentesting 1

https://www.blackmantisecurity.com/vulnerability-scanning-con-nessus-y-nmap/ Para recordar el uso de NMAP y de algunos scripts útiles

https://nmap.org/nsedoc/scripts/http-enum.html Script NMAP utilizado en esta nota para la enumeración de directorios Web.

1 comentario

  1. Joaquín

    Muy bueno!!!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *