π¨HTB - WifineticTwo
https://app.hackthebox.com/machines/WifineticTwo

InformaciΓ³n General
Nombre de la MΓ‘quina: WifineticTwo
IP de la MΓ‘quina: 10.129.236.200
Sistema Operativo: Linux
Dificultad: Medium
Fecha de PublicaciΓ³n: Season 2024
Enumeration
Ping para obtener ruta de retorno
Realizamos un ping a la mΓ‘quina objetivo para verificar la conectividad y obtener informaciΓ³n sobre la ruta utilizando la opciΓ³n -R para incluir la ruta de retorno:

El valor de TTL (Time To Live) igual a 63 puede ser indicativo de que el sistema operativo de la mΓ‘quina objetivo es Linux. El TTL es un valor en el campo de los paquetes IP que indica la duraciΓ³n que un paquete puede estar en una red antes de ser descartado. Linux establece por defecto el valor de TTL de sus paquetes IP en 64, que al pasar por un salto en la red se decrementa a 63.
Escaneo de puertos con Nmap
Luego, realizamos un escaneo de puertos utilizando Nmap para identificar los puertos abiertos en la mΓ‘quina objetivo. Utilizamos las opciones -p- para escanear todos los puertos, --open para mostrar solo los puertos abiertos, -sS para un escaneo de tipo TCP SYN, --min-rate 5000 para establecer la velocidad mΓnima de paquetes y -vvv para un nivel de verbosidad alto. AdemΓ‘s, utilizamos -n para desactivar la resoluciΓ³n de DNS, -Pn para no realizar el escaneo de ping, y -oG allPorts para guardar la salida en un archivo con formato Greppable para luego utilizar nuestra funciΓ³n extractPorts:

Escaneo detallado con Nmap
Posteriormente, realizamos un escaneo mΓ‘s detallado de los puertos identificados utilizando la opciΓ³n -sCV para detecciΓ³n de versiones y scripts de enumeraciΓ³n de servicios. EspecΓficamente, indicamos los puertos a escanear con -p __PORTS__ (reemplazando __PORTS__ con los puertos identificados en el paso anterior) y guardamos la salida en un archivo de texto con el nombre targeted:
Ahora lo que suelo hacer es enviarle el outpout a ChatGPT para que me explique a quΓ© me estoy enfrentando.
Modificando /etc/hosts
Para aΓ±adir la entrada "10.129.236.200 wifinetictwo.htb" al archivo /etc/hosts, puedes usar el siguiente comando en la terminal:

Buscamos las credenciales por defecto en Google, openplc:openplc


Logramos ingresar con las credenciales por defecto, nos encontramos con un dashboard. Y al bucar en internet el CVE prometedor seria el CVE-2021-31630.

Quiero pensar que el endpoint /hardware es vulnerable a la inyecciΓ³n de una reverse shell, lo cual nos permitirΓa obtener acceso remoto a la mΓ‘quina. Por ende, procederΓ© a generar el siguiente payload especΓfico para este propΓ³sito.

El reverse shell lo colocamos dentro de updateCustomOut(){}. Y luego le damos click a "Save changes". Lo que queremos hacer es ejecutar ahora este cΓ³digo alojado en nuestro archivo blank_program.st (por defecto).

Y luego hago click en Start PLC.

Estabilizamos la Shell βΉοΈ
Nos podemos encontrar con la sorpresa de que ya somos root, y tambiΓ©n encontramos la primera flag user.txt.

Ahora despuΓ©s de hacer un poco de enumeraciΓ³n. Y haciendo referencia al nombre de la mΓ‘quina hace ifconfig para ver las interfaces de red de la mΓ‘quina.
Por lo que hacemos un scan a la interfaz wlan0.
iw: Este es el comando principal para interactuar con Wireless Extensions y configurar dispositivos inalΓ‘mbricos en Linux.dev wlan0: AquΓ,devse utiliza para especificar que estamos trabajando con un dispositivo inalΓ‘mbrico, ywlan0es el nombre de la interfaz inalΓ‘mbrica en tu sistema. El nombre exacto de la interfaz puede variar en diferentes sistemas y configuraciones.scan: Esta parte del comando le indica aiwque realice un escaneo de las redes inalΓ‘mbricas disponibles en el Γ‘rea.
En resumen, iw dev wlan0 scan ejecuta un escaneo de redes inalΓ‘mbricas utilizando la interfaz wlan0 en tu sistema, lo que te permite ver las redes disponibles y obtener informaciΓ³n detallada sobre ellas, como su SSID, la intensidad de la seΓ±al, los canales utilizados y los tipos de seguridad implementados.

El siguiente paso serΓa utilizar un ataque de fuerza bruta, utilizaremos OneShot, un script python (https://github.com/kimocoder/OneShot). En mi caso lo descargo y lo lo alojo en un servidor python:

Procedemos a ejecutar el script. Y ver cΓ³mo se usa:



Entonces ya teniendo las credenciales de la WiFi lo que quiero es acceder a ella, conectarme a la WiFi, y la verdad no tengo idea de cΓ³mo hacerlo asΓ que le pregunto a ChatGPT:

wpa_supplicant y wpa_passphrase, empecΓ© a buscar en google acerca de ellos.

Muy interesante, procedo entonces a crear mi contraseΓ±a PSK:
Y luego me conecto al WiFi utilizando eesta clave.

Agregamos una IP manual para nuestra wlan0:

Ingresamos por SSH como root

