Este blog es solo para fines educativos y de análisis técnico en CTFs. No promueve actividades maliciosas ni el uso indebido de herramientas descritas.
Entrada

The Needle - Hardware HackThebox

Reto Hardware basado en extraer archivos provenientes de un firmware.

The Needle - Hardware HackThebox

Autor del reto: MrR3boot

Dificultad: Muy Fácil

Enunciado

“As a part of our SDLC process, we’ve got our firmware ready for security testing. Can you help us by performing a security assessment?”

Archivos

En este reto, nos dan los siguientes archivos.

  • firmware.bin: Contiene el firmware mencionado en el enunciado.
  • Conexión por nc: Contiene la conexión por nc del servidor.

Archivos utilizados aquí.

Analizando el reto

Primero, vamos a lanzarle un file al binario para ver de qué se trata.

1
2
3
4
┌──(kesero㉿kali)-[~]
└─$ file firmware.bin

firmware.bin: Linux kernel ARM boot executable zImage (big-endian)

Solver

En este reto, tenemos que encontrar las credenciales de acceso para acceder al servidor mediante la conexión por netcat proporcionada. Antes de nada, vamos a investigar el archivo firwmare.bin

Cuando tratamos con archivos .bin podemos extraer todos los archivos de su interior con el comando binwalk -e

1
2
┌──(kesero㉿kali)-[~]
└─$ binwalk -e firmware.bin

Como hemos podido observar en el output, se nos creará una carpeta llamada _firmware.bin.extracted con todo el contenido extraído.

Contenido

Como podemos ver, tenemos muchos archivos que mirar. Para amenizar la búsqueda, podemos filtrar por usuarios y contraseñas con grep

1
2
┌──(kesero㉿kali)-[~]
└─$ grep -rn "./" -e login

filtrado

Si entramos en detalle, podemos observar que existe un usuario llamado Device_Admin, por tanto tendremos que encontrar su contraseña. Para ello lanzamos el siguiente comando.

1
2
3
4
5
┌──(kesero㉿kali)-[~]
└─$ find ./ -name sign

./sign
./squashfs-root/etc/config/sign

Como tenemos dos archivos potenciales, visualizamos el contenido de ambos archivos con cat y observamos la contraseña.

1
2
3
4
┌──(kesero㉿kali)-[~]
└─$ cat ./squashfs-root/etc/config/sign

qS6-X/n]u>fVfAt!

¡Listo! Introducimos las credenciales obtenidas a la instancia del reto y obtenemos una shell como Device_Admin y obtenemos la flag.

1
2
3
4
5
6
7
8
9
10
11
12
┌──(kesero㉿kali)-[~]
└─$ nc 83.136.252.123 37357

ng-985305-hwtheneedle-7khz5-85b986884d-lwkd6 login: Device_Admin
Password: qS6-X/n]u>fVfAt!

ng-985305-hwtheneedle-7khz5-85b986884d-lwkd6:~$ ls       
flag.txt

ng-985305-hwtheneedle-7khz5-85b986884d-lwkd6:~$ cat flag.txt

HTB{4_hug3_blund3r_d289a1_!!}

Flag

HTB{4_hug3_blund3r_d289a1_!!}

Esta entrada está licenciada bajo CC BY 4.0 por el autor.