Fecha de lanzamiento | 21 Oct 2017 |
Estado | Retirada |
Dificultad | Easy |
Plataforma | FreeBSD |
IP | 10.10.10.60 |
Información de la máquina
RECONOCIMIENTO
Realizando un escaneo de puertos abiertos en la máquina Sense , vemos que tanto el puerto 80 (http) como el 443 (https) están abiertos.
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn -oG allPorts 10.10.10.60 nmap -sCV -p80,443 -oN targeted 10.10.10.60
Las peticiones a la web por el puerto 80 nos la redirige al puerto 443 por el protocolo https. Si inspeccionamos el certificado no encontramos nada interesante, mas que un certificado por default donde no se han aportado datos específicos de la web.
Puerto 443 – HTTPS
Viendo la página principal, observamos un panel de inicio de sesión de PfSense.
PfSense es una distribución personalizada de FreeBSD adaptado para su uso como firewall y enrutador. Se caracteriza por ser de código abierto, puede ser instalado en una gran variedad de ordenadores, y además cuenta con una interfaz web sencilla para su configuración.
Esta distribución tiene unas credenciales por defecto, que hemos probado pero no hemos tenido éxito: admin – pfsense
Vamos a realizar un ataque de fuerza bruta a directorios y archivos en la web mediante la herramienta GoBuster
usando extensiones de archivos comunes como php
, txt
,bk
…
gobuster dir -u https://10.10.10.60 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -x php,txt,bk,js -t 200 -r -k -o gobuster_scan
La mayoría de archivos php
nos están redirigiendo al panel de inicio de sesión ya que no tenemos todavía una autenticación válida para acceder a esos recursos. Tenemos dos archivos de texto que no suelen ser comunes en los servidores web y pueden que nos aporten alguna información valiosa:
Vemos que tenemos información acerca de un potencial usuario: Rohit
Si usamos este usuario para iniciar sesión con la contraseña por defecto de PfSense (pfsense), vemos que podemos iniciar sesión de manera satisfactoria.
Vemos que la mayoría de implementaciones y módulos no son funcionales y no están operativos, pero tenemos una versión disponible, 2.1.3. Si buscamos exploits para esta versión, observamos que tenemos un exploit de inyección de comandos disponible.
Si observamos donde se está introduciendo el payload, vemos que se está aprovechando del argumento del parámetro database para correr comandos en la máquina victima. Pero anteriormente lo está encodeando ya que seguramente exista algún tipo de filtrado del input del usuario.
Si nos copiamos el script y lo ejecutamos aportando los parámetros necesarios, nos aparece un error por que la web tiene un certificado SSL demasiado débil, y no he sido capaz de solucionarlo.
Parece ser un error de la versión de las librerías que tengo instaladas y alguna desconfiguración que tengo de dependencias. Por ello, hasta que encuentre una solución, vamos a usar la herramienta Metasploit
para explotar, siendo aun más sencillo todavía.
Nos abrimos Metasploit
y buscamos por pfsense
. Seleccionamos el exploit unix/http/pfsense_graph_injection_exec
y aportamos todas las opciones de configuración necesarias. En el momento que lo corremos tenemos una shell como el usuario ROOT y podemos ver ambas flags en el sistema.