Mirai

Mirai demuestra uno de los vectores de ataque de más rápido crecimiento en los tiempos modernos: dispositivos IoT configurados incorrectamente. Este vector de ataque está en constante aumento a medida que se crean e implementan cada vez más dispositivos IoT en todo el mundo, y está siendo explotado activamente por una amplia variedad de botnets. Los dispositivos IoT internos también están siendo utilizados para la persistencia a largo plazo por actores maliciosos.


Reconnaissance

Realizaremos un reconocimiento con nmap para ver los puertos que están expuestos en la máquina Mirai. Este resultado lo almacenaremos en un archivo llamado allPorts.

A través de la herramienta de extractPorts, la utilizaremos para extraer los puertos del archivo que nos generó el primer escaneo a través de Nmap. Esta herramienta nos copiará en la clipboard los puertos encontrados.

Lanzaremos scripts de reconocimiento sobre los puertos encontrados y lo exportaremos en formato oN y oX para posteriormente trabajar con ellos. En el resultado, comprobamos que se encuentran abiertos los siguientes servicios.

Transformaremos el archivo generado targetedXML para transformar el XML en un archivo HTML para posteriormente montar un servidor web y visualizarlo.

Accederemos a http://localhost y verificaremos el resultado en un formato más cómodo para su análisis.

Web Enumeration

Realizaremos una comprobación de las tecnologías que utilizas los sitios web.

Accederemos a http://10.10.10.48 y http://10.10.10.48:32400 y nos encontramos con los siguientes resultados.

En http://10.10.10.48:32400 no logramos encontrar ningún tipo de información o vulnerabilidad para ganar acceso al sistema.

Realizaremos una enumeración de directorios y páginas web a través de dirsearch en el cual obtuvimos el siguiente resultado.

Al volver a realizar la enumeración sobre el directorio /admin, logramos encontrar más información que nos puede servir.

Accederemos a http://10.10.10.48 y nos encontramos que se trata de una interfaz administrativa de Pi-hole.

Pi-Hole es una aplicación diseñada para funcionar en placas Raspberry Pi o similares y que actúa como servidor DNS (Domain Name Space) y opcionalmente como servidor DHCP también.

Initial Access

Access SSH with default Raspberry credentials

Una vez identificado que la máquina probablemente sea una Raspberry, el siguiente paso fue averiguar si el equipo tenía configurada las credenciales por defecto.

Al intentar acceder, verificamos que debido a una mala configuración, las credenciales no habían sido modificados, con lo cual conseguimos ganar acceso al sistema y visualizar la flag de user.txt.

Privilege Escalation

Abusing sudoers privilege

Verificamos los privilegios sudoers que dispone el usuariopi. Logramos comprobar que podemos convertirnos en usuario root proporcionado las credenciales del usuario actual.

Al intentar visualizar la flag de root.txt, se nos muestra un mensaje indicando que ha perdido el archivo root.txt original, y que probablemente disponga de una copia de seguridad del archivo en el USB.

Retrieving root.txt flag deleted

El usuario indica que dispone de un USB conectado al equipo, revisando los directorios de la raíz, logramos visualizar el directorio media en el cual probablemente se encuentre este USB montado.

Al revisar los archivos del directorio /media, logramos visualizar un directorio llamado usbstick el cual contiene un archivo damnit.txt indicando que se ha eliminado accidentalmente el contenido del USB.

Para recuperar la flag, realizamos un escaneo directo del dispositivo de almacenamiento en busca de cadenas de 32 caracteres hexadecimales, ya que las flags en HTB siguen este formato. Finalmente logramos encontrar el contenido de la flag de root.txt.

  • -a: Trata el archivo binario como texto.

  • -P: Usa expresiones regulares avanzadas.

  • -o: Muestra solo las coincidencias.

  • '[a-fA-F0-9]{32}': Busca cadenas de 32 caracteres hexadecimales.

  • /dev/sdb: Dispositivo USB donde pudo estar almacenada la flag.

Al descubrir que la flag de root.txt había sido eliminada, optamos por realizar un volcado forense del dispositivo /dev/sdb para analizar su contenido en busca de datos recuperables. Para ello, utilizamos dd junto con gzip para transferir y comprimir la imagen del disco a nuestra máquina de ataque:

  • ssh pi@10.10.10.48: Nos conectamos a la máquina objetivo.

  • sudo dd if=/dev/sdb: Extraemos el contenido de la unidad USB (/dev/sdb).

  • | gzip -1 -: Comprimimos los datos en tiempo real para agilizar la transferencia.

  • | dd of=usb.gz: Guardamos la imagen comprimida en nuestra máquina atacante.

Descomprimiremos la imagen a través del siguiente comando.

Una vez extraída, analizamos su contenido con strings, entre los resultados, encontramos referencias a root.txt y una cadena en formato hexadecimal de 32 caracteres, lo que indica que la flag aún estaba en el disco. Este método nos permitió recuperar la flag eliminada sin necesidad de herramientas adicionales.

Última actualización

¿Te fue útil?