Hack The Box: WifineticTwo (Linux, dificultad media)

Introducción

WifineticTwo es una máquina de dificultad media en Linux diseñada para practicar el hacking de redes WiFi. Primero, voy a explotar una instancia de OpenPLC runtime vulnerable al CVE-2021-31630, lo que permite la ejecución de código C en una máquina con el nombre de host “attica03”. Desde allí, he observado una interfaz wlan0, lo cual es inusual en HackTheBox. Usando el comando iw, puedo escanear la red WiFi y detectar un router vulnerable a pixiedust. Una vez que obtengo la contraseña, puedo conectarme a la red WiFi y explorar los puertos abiertos en el punto de acceso. El puerto 22 está abierto y podemos conectarnos al router como root sin necesidad de contraseña (configuración predeterminada en OpenWrt).

Enumeración

Enumeración de puertos

Comenzamos realizando una enumeración rápida de puertos.

nmap -p- --min-rate 2500 --open -Pn -n 10.10.11.7

Dos servicios expuestos, puerto 22 y 8080. Continuamos realizando la enumeración profunda de estos dos servicios.

nmap -p22,8080 -sVC -Pn -n 10.10.11.7

Servicios disponibles:

  • Puerto 22 -> OpenSSH 8.2
  • Puerto 8080 -> Werkzeug/1.0.1 Python/2.7.18

Enumeración Web

Uno de los servicios que hemos descubierto es un servidor web en el puerto 8080. Vamos a comprobar su contenido.

Parece un formulario de inicio de sesión para el servicio “OpenPLC”, que es un controlador lógico programable de código abierto. La primera prueba que vamos a realizar es comprobar unas credenciales por defecto.
Las credenciales por defecto openplc:openplc son correctas y nos permiten acceder al panel de administrador.

Después de iniciar sesión, vemos que el estado actual del dispositivo es Detenido y también, vemos varios submenús en el panel de navegación. No vemos usuarios y no hay programas disponibles a parte de Dummy Empty.

Explotación

Después de completar el proceso de enumeración, no hemos podido encontrar la versión del servicio OpenPLC. Vamos a tratar de encontrar posibles exploits relacionados con OpenPLC.

Descargamos y comprobamos los requisitos necesarios para ejecutar este exploit.

Vamos a ejecutar este exploit. Por otro lado, en nuestra máquina de ataque configuramos un oyente nc en el puerto 1234.

Y obtendremos shell en nuestra máquina de ataque.

Parece que obtenemos shell como root. Vamos a tratar de convertir la shell en interactiva antes de continuar la resolución de la máquina.

Buscamos la flag user.txt. en el directorio /home no encontramos la flag user.txt así que optamos por buscar la flag en el directorio /root, ya que accedimos con este supuesto root.

En el directorio /root, encontramos la flag user.txt

Elevación de privilegios

Después de realizar una enumeración de posibles vectores de elevación de privilegios sin obtener resultados, vemos que existe una interfaz de red WIFI entre las diferentes conexiones de esta máquina.

Realizamos un escaneo de esta nueva interfaz WIFI. Para ello, ejecutamos el siguiente comando:

iw dev wlan0 scan

Este comando ejecuta un escaneo de la red inalámbrica utilizando la interfaz wlan0, que permite enumerar las redes disponibles y obtener infomración sobre ellas.

Llegado a este punto, vamos a tratar de obtener credenciales para este punto de aceso WIFI. Para esto, vamos a utilizar la herramienta OneShot. Transferimos esta herramienta a la máquina objetivo utilizando un servidor Python y curl.

Ejecutamos la herramienta pasándole el BSSID y la interfaz de red con el parámetro -K.

Ahora vamos a proceder a crear la contraseña PSK. Para ello, ejecutamos el comando:

wpa_passphrase plcrouter NoWWEDoKnowWhaTisReal123! | sudo tee -a /etc/wpa_supplicant/wpa_supplicant.conf

Ahora vamos a tratar de conectarnos a la WIFI.

wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf

Obtenemos un error de conectividad, así que vamos a tratar de crear la interfaz de red manualmente.

sudo ifconfig wlan0 192.168.1.100netmask 255.255.255.0 up

Comprobamos que hemos configurado correctamente el nuevo segmento de red.

Ahora que hemos configurado el nuevo segmento de red, vamos a tratar de conectarnos a través de SSH.

Ahora vamos a buscar la flag proof.txt

Ahora que hemos localizado la flag root.txt, damos por terminada la máquina “WifineticTwo”

No responses yet

Deja una respuesta

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