Una red botnet desde dentro

miércoles, 20 de enero de 2010 en 1:20
Viendo la cantidad de páginas que hablan en internet sobre las redes de botnets y la poca información detallada que dan, me he animado a escribir este post. En este caso, yo voy a explicar como actua una botnet, como se administra y sobre todo que repercursiones tiene.
Quiero aclarar, que esta es una explicación "breve" sobre una red botnet de hace unos aprox. 5-6 años. De todas formas, me consta que en la actualidad no ha cambiado en exceso este sistema, así que espero que ayude a entender mejor este tipo de "sub-redes" ;-).
Una red botnet ( o red de botijos como yo llamo ) , es una brutal e inmensa red de ordenadores con un pequeño programa instalado, por el cual le llegan una serie de "ordenes" para realizar una serie de tareas ( como me explico..ehh!!! ;-D ). Esto es lo que explican una inmensa mayoría de páginas en internet, pero... ¿como se entienden los ordenadores entre ellos? ¿como les llega esas ordenes? ¿que pueden realizar? ¿a mi me afecta?.. veamos...

En la actualidad, la mayoría de maquinas conectadas a internet corren bajo el sistema operativo de la ventana. Un bug en este sistema o en cualquier programa que corra sobre él, implica que una buena cantidad de ordenadores en internet son vulnerables a un posible hackeo. Si codeamos un script que utilize este bug, y aparte le añadimos una API para que acepte ordenes remotamente, tendremos lo que yo llamo un botijo o ordenador zombie. Si ademas, ese script, le añadimos funciones tales como escanear puertos, listar procesos locales, montar servicios en local ( proxy, ftp, etc.. ), tcp/udp floods*, "wget http", etc... tendremos lo que se llama una botnet.

Imaginemos que tenemos uno de los bugs RPC de Windows que salió hace años y que todavía windows no ha sacado un parche. Nos codeamos un script, para que utilice ese bug, y aparte le añadimos una API para que el ordenador se conecte a una IP de un servidor IRC, que entre a un canal que nosotros pongamos y en ese canal, lea los comandos que el administrador de la botnet va poniendo. ¿Que pasaría si tenemos algun problema en ese IRC y lo cierran precisamente por esto? Pues por si acaso, en el script, en vez de apuntar a la IP del IRC, la redireccionamos un DNS gratuito al estilo de dyndns, para que en el caso de que ésto ocurra poder redireccionar toda la red de botijos a otro servidor IRC.
Vale, ya tenemos hecho todo hasta aqui, pero... ¿qué comandos podemos poner en el script para que lo lean todas las maquinas que esten en ese canal de IRC? Pues podemos poner utilidades para realizar SPAM, para escanear mas máquinas en busca de otras vulnerabilidades, para realizar denegaciones de servicio distribuidas ( DDoS ), le podemos implementar una pequeña funcion para que se conecte a un servidor web donde hayamos subido una versión nueva de nuestro script, por ejemplo "script.txt" y que una vez descargado, lo renombre a .exe y lo ejecute. Podemos poner otra funcion para que esté constantemente escaneando rangos de IPs que nosotros le demos en busca del bug RPC y utilizar la misma web para que se instale el script y así poder aumentar nuestra red de botijos. O tambien podemos añadir al script, funciones para montar un ftp  en la máquina, listar procesos locales, phising...etc, etc, etc..
En el caso en que no estemos delante del ordenador, y evitar posibles problemas en el IRC con la inmesa cantidad de máquinas que tenemos en el canal, podemos redireccionar el DNS a otro sitio que no resuelva nada, o que simplemente no tenga ningun servicio IRC corriendo ( por ejemplo 0.0.0.0 ). Si ademas hemos ejecutado el comando de buscar nuevas máquinas con el bug RPC antes de redireccionarlas, la próxima vez que las conectemos al IRC es muy probable que el número de botijos se haya multiplicado.

Este tipo de redes, son muy comunes para temas de SPAM. Las posibilidades de pillar al que administra toda la red, son bastante improbables, porque por normal general no existe ningun tipo de "contacto" entre el atacante y el botijo. Puesto que las ordenes se envian via IRC, y el botijo se actualiza via web. Lo mas común, es que se termine dando con el archivo infectado ( nuestro script.. ) y den con el DNS al que apunta para caparlo y evitar que se sigan utilizando.Tambien puede darse que el botijo utilize una vulnerabilidad que no sea un servicio propio de la maquina, por ejemplo un bug en Internet Explorer, y en vez de realizar escaneos, se montan paginas web con el codigo malicisio para difundir el script. De todas formas la arquitectura sería practicamente igual a la que he comentado.
Por lo tanto es muy importante, tener siempre actualizado nuestro sistema operativo, y todos los programas que tengamos en él, tener un antivirus, un firewall.... tener precaución con el correo, cuando navegamos.. etc.

Ah! Por cierto, como dato curioso, el código fuente del botnet que ponía como ejemplo, estaba firmado por una empresa Latinoamericana que precisamente se dedica a la seguridad informática...curioso...

0 comentarios

Publicar un comentario

iSec | Powered by Blogger | Entries (RSS) | Comments (RSS) | Designed by MB Web Design | XML Coded By Cahayabiru.com