Desembalaje de la red de bots BADBOX con Censys
Compartir
Resumen ejecutivo: BADBOX es una red de bots recién descubierta que ataca tanto a dispositivos Android conocidos como a los de otras marcas, a menudo con malware que podría venir preinstalado de fábrica o en etapas posteriores de la cadena de suministro. Hasta ahora se han observado más de 190.000 dispositivos infectados, incluidos modelos de gama alta como los televisores QLED 4K de Yandex. Utilizando Censys, he identificado un certificado SSL/TLS sospechoso común a la infraestructura de BADBOX, que revela cinco IP y numerosos dominios, todos ellos utilizando el mismo certificado y clave de host SSH. Esto indica claramente que se trata de un único actor que controla un entorno planificado. La enorme escala y la naturaleza sigilosa de BADBOX subrayan la necesidad crítica de vigilar la integridad de la cadena de suministro y el tráfico de red.
Llevo un tiempo observando esta amenaza emergente y, a primera vista, parece una campaña más de malware para Android. ¿El giro? BADBOX a menudo viene incorporado en el firmware, por lo que la gente está descargando nuevos dispositivos que ya están comprometidos incluso antes de que se unan a una red. Recientemente, los investigadores de BitSight destacaron el enorme número de dispositivos que se comunican con los servidores de BADBOX, lo que sugiere un compromiso de la cadena de suministro en toda regla que va mucho más allá de un típico incidente de malware sideloaded. A continuación, te explicaré cómo utilicé Censys para rastrear el certificado en cuestión y localizar las IP y los dominios asociados.
Esta escala despertó mi curiosidad, especialmente la parte sobre un certificado común que se ha visto en la naturaleza. Armado con esta información sobre el DN del emisor del certificado, me dirigí a la Plataforma de Inteligencia de InternetCensys para ver si podía encontrar alguna prueba adicional. El DN del emisor en cuestión es: "C=65, ST=singapore, L=singapore, O=singapre, OU=sall, CN=saee", que convertí en la siguiente consulta de certificados para encontrar el certificado exacto utilizado por los operadores de BADBOX.
cert.parsed.issuer_dn="C=65, ST=singapur, L=singapur, O=singapre, OU=sall, CN=saee"
Hubo un único resultado que coincidía con esos criterios, lo que es un fuerte indicador de una única entidad (o un pequeño grupo) detrás de la inyección generalizada de malware.
Esto me hizo sentir curiosidad por saber en qué hosts se presenta este certificado, así que entré en el menú pivotante.
Este pivote produjo la siguiente consulta, que busca la huella digital SHA-256 del certificado.
host.services.tls.fingerprint_sha256 = "61609d67762922a390bf4c5ccc2b5ed43c1980a6777a0152e9a49c5b96d0d623"
Esto devolvió cinco direcciones IP que presentan ese certificado, todas de Singapur y todas del ASN de Akamai. Tenía curiosidad por saber qué otros atributos comparten y me di cuenta de que todas tienen el puerto 22 SSH abierto. Aquí está uno de esos servicios.
Para rastrear si se utilizan las mismas claves de host SSH, podemos hacer un informe en el campo Huella digital de clave de host "host.services.ssh.server_host_key.fingerprint_sha256". Para realizar un informe, haga clic en la pestaña "Generador de informes".
Como se puede ver, las cinco IPs comparten la misma clave de host SSH, lo que sugiere que estas instancias fueron planificadas. Haciendo clic en la tabla del informe puedo pivotar en esa consulta.
(host.services.tls.fingerprint_sha256 = "61609d67762922a390bf4c5ccc2b5ed43c1980a6777a0152e9a49c5b96d0d623") y host.services.ssh.server_host_key.fingerprint_sha256 = "a885b892e4820b90fd05e45eda6bdd5983170cba6da23fb3610ed1a61726bd14"
Que yo limpiaría para que fuera la siguiente consulta:
host.services.tls.fingerprint_sha256 = "61609d67762922a390bf4c5ccc2b5ed43c1980a6777a0152e9a49c5b96d0d623" or host.services.ssh.server_host_key.fingerprint_sha256 = "a885b892e4820b90fd05e45eda6bdd5983170cba6da23fb3610ed1a61726bd14"
Sin embargo, también me interesaba el número de dominios que también presentan este certificado.
web.cert.fingerprint_sha256 = "61609d67762922a390bf4c5ccc2b5ed43c1980a6777a0152e9a49c5b96d0d623"
Curiosamente, los 25 parecen estar ejecutando nginx 1.20.1 en CentOS. Desde aquí podría hacer una colección para rastrear todos estos indicadores o simplemente extraer las instancias actuales. A continuación se muestra la consulta final con todos los indicadores anteriores
host.services.tls.fingerprint_sha256 = "61609d67762922a390bf4c5ccc2b5ed43c1980a6777a0152e9a49c5b96d0d623" or host.services.ssh.server_host_key.fingerprint_sha256 = "a885b892e4820b90fd05e45eda6bdd5983170cba6da23fb3610ed1a61726bd14" or web.cert.fingerprint_sha256 = "61609d67762922a390bf4c5ccc2b5ed43c1980a6777a0152e9a49c5b96d0d623"
Indicadores
139.162.36[.]224 139.162.40[.]221 143.42.75[.]145 172.104.186[.]191 192.46.227[.]25 172.104.178[.]158
bluefish[.]trabajo www.bluefish[.]trabajo cool.hbmc[.]net giddy[.]cc www.giddy[.]cc jolted[.]vip joyfulxx[.]com msohu[.]shop www.msohu[.]shop mtcpuouo[.]com www.mtcpuouo[.]com pasiont[.]com sg100.idcloudhost[.]com www.yydsmb[.]com www.yydsmd[.]com ztword[.]com tvsnapp[.]com pixelscast[.]com swiftcode[.]trabajo old.1ztop[.]trabajo cast.jutux[.]trabajo home.1ztop[.]trabajo www.jolted[.]vip