En Vault obtuvimos acceso tras ejecutar una shell inversa en una web shell. Enumeramos la red para obtener acceso a una aplicacion donde ejecutamos una shell con una configuracion de OpenVPN. Finalmente encontramos nuestra flag root encriptada la cual obtuvimos utilizando una llave registrada en un usuario al que ya teniamos acceso.
Nombre | Vault |
---|---|
OS | Linux |
Puntos | 30 |
Dificultad | Media |
IP | 10.10.10.109 |
Maker | |
|
MASSCAN & NMAP
Escaneo a todos los puertos UDP/TCP.
|
|
Escaneo a puertos 22, 80.
|
|
HTTP
Puerto 80 http encontramos una pagina solo con el siguiente contenido, en el que anuncian a un nuevo cliente ‘Sparklays’ pero su pagina (Sparklays.com) aun esta en construccion por lo que no puede ser accedida.
Agregamos todas las palabras posibles del contenido de la pagina a un diccionario para gobuster utilizando cewl.
|
|
DIRBUSTER
Utilizando dirbuster encontramos las siguientes rutas.
/admin.php
/login.php
/design/design.html
/design/changelogo.php
/design/uploads/
SIMPLE PHP SHELL
Para obtener una shell vamos a concentrarnos en changelogo.php es la unica ruta donde podemos subir archivos y considerando que, al subir un archivo se guarda en /uploads/
podremos ejecutar nuestro payload o comandos, para ello vamos a copiar un webshell que kali trae en su sistema.
Enumerando los directorios nos encontramos con un archivo ssh
que contiene el nombre de Dave
y un aposible contraseña para el servicio ssh.
SHELL - SSH
Satisfactoriamente nos logeamos con las credenciales para el usuario dave.
Dentro de los archivos de dave encontramos dos archivos mas key
y Servers
.
Servers contiene IPs y el nombre que tiene cada una de ellas, y en key una “contraseña”, nmap no esta instalado en la maquina por lo que vamos a utilizar netcat para hacer un escaneo de los puertos de cada ip que nos aparece en el archivo Servers.
NETCAT => https://www.cyberciti.biz/faq/linux-port-scanning/
Dentro de las interfaces encontramos una interna en la cual nos identificamos con la ip 192.168.122.1
.
Primero verificamos si hay mas de una IP disponible en un rango del 1 al 10.
Ahora sabemos que existen otras dos IP dentro de la interfaz virbr0 (192.168.122.5, 192.168.122.4)
y por ahora solo tenemos acceso a una 192.168.122.1
.
Escaneo de puertos por IP
Podemos observar que la IP 192.168.122.4
tiene dos puertos abiertos 80 y 22, mientras que la otra IP 192.168.122.5
netcat no encontro ningun puerto abierto pero si esta activa la direccion IP.
TUNELING SSH
Vamos a traer localmente la IP 192.168.122.4
y su puerto 80 a nuestra maquina, para poder analizar el puerto 80.
|
|
Ejecutamos el comando localmente.
Revisamos si el puerto esta a la escucha localmente.
Procedemos a abrir 127.0.0.1:9090 en firefox para ver que contenido tiene.
/DNS Settings
Esta pagina no existe por lo que no encontramos nada.
/VPN Configuration
Al parecer es una pagina para modificar y executar archivo ovpn
SHELL INVERSA - OVPN
En https://medium.com/tenable-techblog/reverse-shell-from-an-openvpn-configuration-file-73fd8b1d38da nos muestran como se puede realizar una shell inversa con las siguiente configuracion:
|
|
Como referencia para realizar una shell inversa tomamos la documentacion de openvpn (https://openvpn.net/community-resources/reference-manual-for-openvpn-2-4/) para realizar algunos cambios, y este es el resultado:
|
|
Ya que la IP donde esta corriendo la pagina es 192.168.122.4
vamos a obtener una shell inversa de esa maquina, por lo que en la maquina dave (192.168.122.1)
vamos a poner a la escucha netcat y asi obtener nuestra shell.
Presionamos Test VPN
Y obtenemos nuestra shell inversa
Y nuestra bandera USER
De igual forma encontramos un archivo ssh que contiene credenciales de lo que parece ser ssh para el usuario dave.
|
|
Intentamos logearnos y satisfactoriamente tenemos acceso por medio de ssh a 192.168.122.4
.
Nuestro progreso hasta ahora
Enumerando dentro de 192.168.122.4
encontramos en el historial de comandos (.bash_history) una conexion a 192.168.5.2
por el puerto 987 utilizando netcat por el puerto local 5555, tambien un escaneo de nmap a esa misma ip.
Intentamos hacer un escaneo a esa IP 192.168.5.2
.
Dentro de la carpeta /var/www/DNS
encontramos un archivo llamado interfaces, vemos que se han agregado nuevas rutas estaticas a la tabla de enrutamiento.
La ruta de destino que tenga 192.168.5.0
sera redirigido a la puerta de enlace 192.168.122.5
por medio de la interfaz ens3
.
Tercera IP (192.168.5.2)
ROOT - FLAG
Vamos a utilizar el mismo comando que esta en el historial para poder conectarnos a 192.168.5.2
.
|
|
Obtenemos nuestra shell en 192.168.5.2
y nuestra bandera root pero esta encriptada y necesitamos una clave.
Nuestra tercer maquina
Anteriormente habiamos encontrado un archivo key
en 192.168.122.1
con una frase, para extraer la informacion de nuestra bandera encriptada vamos trasferir el archivo a donde esta la key.
Para escapar de la shell utilizamos:
|
|
Trensferir root.txt.gpg
Para transferir nuestro archivo vamos a hacer algo similar a lo que hicimos para la conexion ssh a 192.168.5.2
.
|
|
|
|
Ahora necesitamos transferirlo a 192.168.122.1
donde esta nuestra key, codificamos root.txt.gpg
en base64
.
Decodificamos el archivo.
Desencriptamos con la frase que esta en el archivo key y obtenemos nuestra bandera root.