Etiqueta
Botnet
todos los capítulos
- Capítulo 11 El bot presumido y vago Cayó un cargador de 1.177 bytes: nueve líneas de wget, una por arquitectura, del estilo que ya he abierto tres veces en este blog. Iba a archivarlo como reincidencia y seguir con lo mío. Lo abrí igualmente, por costumbre - y lo primero que vi fue que le sobraban unos caracteres.
- Capítulo 16 El inquilino que llevaba once años Un bot entró en mi cebo, estuvo 62 segundos y se fue. Lo catalogué como Gafgyt y me equivoqué. Una semana después tiré del hilo de sus servidores de mando y acabé en una operación que lleva viva desde 2015, y que ya tenía en la mano desde el primer día.
- Capítulo 17 Recién salido del horno Un domingo tranquilo, mi alarma de binarios nuevos saltó tras días muda. El primer pensamiento fue el mejor de todos: algo fresco. Lo que vino después fue una montaña rusa - un viejo conocido, un falso positivo que casi me la cuela, y por fin un bicho que no figuraba en ningún repositorio público, cazado a menos de treinta horas de nacer.
- Capítulo 18 Nada que fichar Una IP que ya estaba infectada se conectó por telnet al cebo y pegó de golpe una receta: once binarios, uno por arquitectura, cada uno con un nombre inventado que no se repetirá nunca. Dos pesaban exactamente lo mismo y parecían variantes - resultaron ser las builds i586 e i686 del mismo programa. Y detrás no venía un bicho suelto: medio centenar de binarios distintos en dos semanas. La entrega entera está montada para que ninguna lista de bloqueo, ni por nombre ni por firma, atrape nada.
- Capítulo 21 Me lo presentó su enemigo Un escáner automático encontró el telnet del cebo y, dieciocho segundos después, ya había un binario dentro. La contraseña era «telnet». El cargador que soltó viene con dos erratas del operador, una de las cuales rompe una infección entera. Y cuando por fin le puse nombre a la familia (IranBot, un fork de Mirai con ficha pública) resultó que ese nombre ya estaba escrito en este blog desde agosto: lo había puesto un bot rival, en la lista de competidores que desinstala al llegar.
- Capítulo 22 El gemelo que me faltaba Un bot de la escuela Mirai lleva dentro la dirección de quien le da las órdenes. Busqué la de este por cuatro caminos distintos y no la encontré por ninguno - y de paso publiqué una teoría propia que resultó ser falsa. Lo que acabó funcionando no fue una herramienta mejor: fue darme cuenta de que en algún sitio había otro binario, compilado del mismo código, cuyo centro de mando alguien ya había publicado. Con los dos delante, la diferencia entre ellos son mil ciento treinta bytes.
- Capítulo 26 Sesenta y seis segundos La familia del capítulo anterior no se quedó quieta: hay una versión más nueva circulando, y la pillé desde el primer segundo. Entra por SSH a la fuerza, mide el equipo, desaloja a la competencia (incluida su propia versión vieja), sube dieciséis megas de un solo fichero y lanza. Todo en poco más de un minuto. Y entonces se estrella contra una línea del fstab.
- Capítulo 27 Solo el líder habla El kit se quedó quieto en el disco, así que lo encendí yo en una jaula sin salida. Dentro hay un bot que exige saber su propia dirección antes de nada, se une a una malla de hasta dos mil nodos, celebra una elección y se corona líder - y solo entonces abre un chat de Telegram. El operador no entra en ninguna máquina: manda un mensaje al jefe de la manada. Y cuando le quemas el chat, la botnet se cura sola.
- Capítulo 29 Me dijo su nombre tres veces Cayó en el cebo otro ELF de IoT con pinta de Mirai del montón. Lo bauticé «zbot» por sus ficheros de cron, y resultó que ni se llamaba así: por tres caminos distintos (las rutas que dejó en el disco, los banners con que habla SSH y HTTP, y los primeros bytes de cada mensaje a su central) el bicho me fue diciendo su verdadero nombre. Detrás había algo más interesante que un bot de tumbar servidores: una máquina para alquilar la línea de casa de su víctima como proxy. Y un operador que, con todo montado, rompía sus propias direcciones de descarga. XLab ya la había bautizado «Shemzbot» en un tuit; esto es el destripe que aquel tuit no traía.
- Capítulo 30 El casero del C2 En el capítulo anterior abrí a shem por dentro, pero me quedé con una espina: su centro de mando es una IP pelada, sin dominio, así que no podía seguir al operador. Tiré igualmente de esa IP. Y lo que aparece al otro lado no es el operador, sino su casero: un bloque de hosting a prueba de balas que se cambia de nombre y de matrícula para no dejarse coger, que alquila a media docena de botnets a la vez, y que tira el servidor a los diez días.
- Capítulo 31 Una puerta, tres visitantes Cuarenta megas de binario que no se dejan abrir: el descompilador los mira y dice que no. Antes de forzar esa puerta, lo aburrido y necesario, quién los trajo hasta aquí.
- Capítulo 32 Cifró hasta un mensaje roto Tres bytes mentirosos dejan al descompilador fuera, y detrás hay un segundo muro: las cadenas del autor no están en el fichero. Para cuando conseguí hablar con él, llevaba un rato diciéndome que sí a siete órdenes que no existían.
- Capítulo 33 DIICOT: Sabor Ciocolata Casi tres megas que hacen una sola cosa: llamar a casa, decir dos palabras y esperar diez segundos a que alguien conteste. Si nadie lo hace, se va sin dejar rastro. Pero dentro, cifrada de otra forma, lleva una segunda dirección: un dominio que nadie ha registrado. Y el resto del programa cabe en una línea de shell.
- Capítulo 34 DIICOT: Una sílaba de diferencia El ejecutor del capítulo anterior llama a una máquina que ya conocía y guarda de reserva un dominio que se parece demasiado a otro que sí existió. Tirando de esa sílaba de diferencia aparecen su hermano mayor, el C2 anterior y el hueco por el que entra en las víctimas. Al final, le pregunté al otro lado qué manda.