SlideShare uma empresa Scribd logo
1 de 256
Baixar para ler offline
ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA




Bot y Botnets: Análisis de estructura y funcionamiento de las redes de
                    ordenadores comprometidos



                             Realizado por
                        Adrián Belmonte Martín


                   Para la obtención del título de
        INGENIERO TÉCNICO EN INFORMÁTICA DE SISTEMAS


                             Dirigido por
                          Sergio Pozo Hidalgo


                    Realizado en el departamento de
               LENGUAJES Y SISTEMAS INFORMÁTICOS


                  Convocatoria de Marzo Curso 2006-07
Índice general


1. Introducción y conceptos previos……………………………………………...1
   1.1 Introducción………………………………………………………………………………1
   1.2 Definiciones y clasificación………………………………………………………………3
   1.3 Objetivos………………………………………………………………………………….6
   1.4 Justificación………………………………………………………………………………7
2. Historia……………………………………………………………………………………….13
   2.1 Virus y gusanos: Los antecedentes……………………………………………………16
   2.2 Bots de IRC. Antecedentes…………………………………………………………….28
3. Funcionamiento y estructura…………………………………………………30
   3.1 Ciclos de un bot………………………………………………………………………….36
   3.2 Algunos usos de las botnet……………………………………………………………...38
4. Fauna Bot…………………………………………………………………...…40
   4.1 Los precursores. Bots IRC…………………………………………………………...…42
       4.1.1   Coromputer dunno……………………………………………………………42
       4.1.2   Skydance……………………………………………………………………...44
   4.2 Los primeros bots C&C………………………………………………………………...45
       4.2.1   Microbot…………………………………………………………………...…45
       4.2.2   G-spot…………………………………………………………………...……47
       4.2.3   Leechbot 2.0 VB……………………………………………………...………50
       4.2.4   Data Spy Network (DSNX)……………………………………………..……50
       4.2.5   Omega Project…………………………………………………………..……61
5. Las grandes Familias Bot…………………………………………………………..……66
   5.1 Sdbot……………………………………………………………………………..………67
       5.1.1   Versión 0.4……………………………………………………………………67
       5.1.2   Versión 0.5……………………………………………………………………69
       5.1.3   G-sys 3.0……………………………………………………………...………71
   5.2 Spybot……………………………………………………………………………….……72
       5.2.1   Versión 1.1……………………………………………………………………72
       5.2.2   Versión 1.2……………………………………………………………………74
       5.2.3   Versión 1.3……………………………………………………………………75


   5.3 Rbot /rxbot/rx……………………………………………………………………………76
       5.3.1   Los comandos……………………………………………………...…………80
   5.4 Phatbot/Agobot…………………………………………………………………….……80
   5.5 GT Bot (Global Threat bot) …………………………………………………....………83
6. Montaje de una botnet……………………………………………………………………86
   6.1 Configuración del bot…………………………………………………………...………86
   6.2 Proceso de expansión……………………………………………………………………95


       6.2.1    Infectando nuestro primer sistema. El bot semilla……………………………96
       6.2.2    Proceso de expansion a otros sistemas…………………………...…………..97


   6.3 Los “Spreaders…………………………………………………………………………102


       6.3.1    NetBios spreader………………………………………………….…………102
       6.3.2    SubSeven Spreader…………………………………………….……………107
       6.3.3    Bagle spreader………………………………………………………………111
       6.3.4    MyDoom spreader…………………………………………..………………113
       6.3.5    Lsass spreader………………………………………………….……………113
       6.3.6    Sasser Spreader……………………………………………….……..………115
       6.3.7    Optix Spreader………………………………………………………………117
       6.3.8    Dcom spreader………………………………………………………………120
       6.3.9    Upnp spreader………………………………………………….……………123
       6.3.10   MSSQL
                spreader……………………………………………...…………………….124
       6.3.11   WebDav spreader……………………………………………….…………125
   6.4 Ordenando el análisis……………………………………………………..….………127
   6.5 Proceso de infección en el sistema comprometido ………………………….………133
   6.6 Protección del bot………………………………………………………..……………138
7. Explotación del sistema…………………………………………………………………150
   7.1 KeyLogging…………………………………………………………………….………150
       7.1.1    Envío de la información a un canal de IRC especificado…………...………151
       7.1.2    Envío de información a un archivo local de la máquina comprometida…....153
   7.2 Sniffing…………………………………………………………………………………158
       7.2.1    Implementación en Rbot………………………………………….…………159
       7.2.2    Implementación en Phatbot/Agobot…………………………...……………161


   7.3 Ataques de Denegación de Servicio …………………………………………………165
   7.4 Spam …………………………………………………………………..………………173
   7.5 Funciones de proxy, pasarela y servidor………………………………….…………175
   7.6 Fraude por clic…………………………………………………………………………179
   7.7 Descargas y mejoras………………………………………………………...…………181
8. Técnicas de protección ……………………………………………………….…………185
   8.1 Prevención de equipos…………………………………………………………………185
   8.2 Detección de las comunicaciones…………………………………………..………….186
8.3 Detección de características secundarias………………………………..……………187
    8.4 Herramientas de detección……………………………………………………………189
        8.4.1   Herramientas de análisis del sistema ……………………….………………189
        8.4.2   Herramientas basadas en Honeypots…………………..……………………194
        8.4.3   Herramientas de análisis de ficheros capturados. Proceso de captura de una
                botnet……………………………………………………..…………………197
9. Mercado y futruro de las redes bots…………………………..……………202
    9.1 Mercado de las redes bot………………………………………………………………202
    9.2 Futuro de las redes bot………………………………………………………...………207
10. Conclusiones………………………………………………………………………..………210


Anexo A: Comandos de SDbot…………………………………………………………………....213
Anexo B: Comandos de Rbot……………………………………………………………………..219
Anexo C: Comandos de Phatbot/Agobot…………………………………………………………222
Anexo D: Desbordamiento de buffer…………………………………………………..…………232
Anexo E: Ataque de Denegación de Servicio……………………………………………….……236
Anexo F: Diccionario de términos…………………………………………………………..…….239
Anexo G: Bibliografia……………………………………………………………………..……….243
Índice de figuras
Figura 1.1 Topología centralizada
Figura 1.2: Topología p2p
Figura 1.3: Responsabilidades y técnicas de actuación de Shadowserver
Figura 1.4: Crecimiento del tamaño de las botnets informadas NOV-FEB 2007
Figura 1.5: Crecimiento del número de botnets informadas Nov-Feb 2007
Figura 2.1: Evolución de los primeros ataques a redes 1980-2000
Figura 2.2: Definición de Rootkit
Figura 2.3: Eventos relacionados con gusanos y virus
Figura 2.4: Descripción del funcionamiento del gusano blaster
Figura 2.5: Captura del código del blaster
Figura 2.6: Mensaje de infección del gusano Blaster
Figura 2.7: Funcionamiento del gusano MyDoom
Figura 2.8: Infección por el gusano Sasser
Figura 2.9: Cronología de la nueva generación de gusanos. 1-marzo 1999 /30 abril 2004
Figura 3.1: El atacante busca un primer equipo víctima
Figura 3.2: Se ordena al ordenador semilla buscar nuevos objetivos
Figura 3.3: Una vez encontrado la vulnerabilidad, se inyecta el código del bot
Figura 3.4: Los ordenadores comprometidos se unen al canal especificado
Figura 3.5: La botnet busca en Internet nuevos objetivos vulnerables
Figura 3.6: Estructura típica de una botnet C&C IRC
Figura 3.7: Definición de DNS Dinámico
Figura 3.8: Ciclo de un botnet desde el punto de vista del atacante
Figura 3.9: Ciclo de un bot desde la víctima
Figura 4.1: Diferencias entre bot IRC y bot C&C IRC
Figura 4.2: Comunicación con el servidor IRC
Figura 4.3: Ejemplo de comunicación con el servidor IRC
Figura 4.4: Configuración del bot
Figura 4.5: definición de Socket Raw
Figura 4.6: Definición de UPX
Figura 4.7: Configuración de Microbot
Figura 4.8: GUI de Gspot
Figura 4.9: Comandos G-spot
Figura 4.10: Gspot en acción
Figura 4.11: GUI Del bot Data Spy Network 0.4b
Figura 4.12: Comandos de DSNX
Figura 4.13: Diagrama de clases
Figura 4.14: Comentario del autor del archivo Readme.txt del bot DSNX
Figura 4.15: GUI del bot DSN versión 0.5b
Figura 4.16: Nuevos comandos DSN
Figurra 4.17: Plugin DDOS para DSNX
Figura 4.18: Plugin HTTP para DSNX
Figura 4.19: Plugin de análisis de puertos para DSNX
Figura 4.20: Comandos del bot Omega
Figura 5.1: Configuración del bot sdbot
Figura 5.2: Nuevos comandos versión 0.5
Figura 5.3: Comandos Spybot
Figura 5.4: Comandos Spybot versión 1.2
Figura 5.5: Editor de configuración de Phatbot
Figura 5.6: Evolución temporal de las familias
Figura 5.7: Directorio que contiene al bot
Figura 6.1: Ejemplo de configuración del bot Coromputer dunno
Figura 6.2: Archivo de configuración de Rbot
Figura 6.3: Ejemplo de archivo de cabecera externo del bot Leechbot
Figura 6.4: Archivo de configuración del bot Omega II
Figura 6.5: GUI del bot Dataspy Network
Figura 6.6: GUI del bot G-spot
Figura 6.7: Configuración del bot microbot
Figura 6.8: GUI del bot Phatbot
Figura 6.9: RPC de Microsoft
Figura 6.10: Diagrama de flujo de la función nb_net_exec
Figura 6.11: Codigo del modulo nb_net_upload
Figura 6.12: Función nb_port_scan
Figura 6.13: Diagrama de flujo de la función nb_net_connect
Figura 6.14: Diagrama de flujo de la función nb_spread
Figura 6.15: Clase CScannerNetBios del bot Agobot
Figura 6.16: Aprovechando el sub7
Figura 6.17: Diagrama de flujo Sub7
Figura 6.18: Código fuente del programa para explotar el gusano bagle
Figura 6.19: Diagrama de flujo del módulo bagle
Figura 6.20: Fragmento de codigo de las cadenas a inyectar
Figura 6.21: Funcionamiento del gusano Sasser
Figura 6.22: Diagrama de flujo de la explotación del gusano sasser
Figura 6.23: Código del programa de explotación del gusano Optix
Figura 6.24: Código del shellcode Dcom2
Figura 6.25: Detectando la versión del SO
Figura 6.26: Diagrama de flujo del programa de explotación de la vulnerabilidad DCOM
Figura 6.27: Extracto del código fuente del programa
Figura 6.28: Extracto del código fuente del programa
Figura 6.29: cuerpo de petición para WEBDAV
Figura 6.30: código de la explotación del sistema
Figura 6.31: Comandos para el análisis de equipos
Figura 6.32: Captura del bot en acción
Figura 6.33: Código UML de Phatbot
Figura 6.34: Función Doinfect ()
Figura 6.35: Explicación de algunas funciones útiles
Figura 6.36: Fichero startup.c
Figura 6.37: Fragmento de WinMain del bot spybot
Figura 6.38: Fragmento del archivo de configuración de sdbot
Figura 6.39: Fragmento de código con las claves del registro
Figura 6.40: Código UML del instalador en el inicio de Phatbot
Figura 6.41: Estructura de entada de procesos
Figura 6.42: Funciones de utilidad en el manejo de procesos
Figura 6.43: Función killav
Figura 6.44: Funciones útiles en el manejo de servicios
Figura 6.45: Código fuente de killsvc
Figura 6.46: Llamada a la comparación con la lista
Figura 6.47: Bloqueando la resolución de direcciones
Figura 6.48: Entradas en el registro de virus conocidos
Figura 6.49: Función removevirus
Figura 7.1: Función del capturador de teclas
Figura 7.2: Función sendkeys del bot spybot
Figura 7.3: Función StartLogging del bot DSN
Figura 7.4: Función JournelLogProc
Figura 7.5: Hilo de capturas de teclas
Figura 7.6: Función SaveKeys del Rbot
Figura 7.7: estructuras de la función Psniff
Figura 7.8: Declaración de las variables para el sniffer
Figura 7.9: Comparación del paquete con las variables definidas
Figura 7.10: Función que compara si el tráfico capturado es sospechoso de ser bot
Figura 7.11: Función que compara si el tráfico capturado es sospechoso de ser IRC
Figura 7.12: Función que compara si el tráfico capturado es sospechoso de ser FTP
Figura 7.13: Función que compara si el tráfico capturado es sospechoso de ser HTTP
Figura 7.14: Función que compara si el tráfico capturado es sospechoso de usar un programa vulnerable
Figura 7.15: Segmento de la función en donde se realiza la comparación de los paquetes
Figura 7.16: Bot Capturando tráfico
Figura 7.17: Ataque por DDOS
Figura 7.18: Ataque por denegación de servicio mediante una botnet
Figura 7.19: Definición de IP Spoofing
Figura 7.20: Función SYN Flood
Figura 7.21: Diagrama UML de las funciones DDOS de Agobot
Figura 7.22: Funcionamiento del spam
Figura 7.23: Definición de Proxy
Figura 7.24: Clase PortRedirect del bot DSN
Figura 7.25: Lanzador del servidor http
Figura 7.26: Fraude por clic
Figura 7.27: Petición http para visitar un sitio determinado
Figura 7.28: Estructura de la información de la descarga
Figura 7.29: Conexión con la URL remota
Figura 7.30: Copiando el archivo
Figura 7.31: Ejecución del archivo remotamente
Figura 7.32: Desinstalación del programa anterior
Figura 8.1: Captura de las comunicaciones
Figura 8.2: Secheck
Figura 8.3: Secheck analizando un sistema Windows
Figura 8.4: HijackThis
Figura 8.5: Archivo de log de Hijackthis
Figura 8.6: Multipot
Figura 8.7: Nepenthes
Figura 8.8: Archivo generado por RegShot con los cambios realizados en el sistema
Figura 8.9: Ejemplo de la captura del tráfico
Figura 8.10: Información sensible mostrada por el programa
Figura 8.11: LorPE
Figura 8.12: Desensamblador IDA
Figura 9.1: Ubicaciones de los servidores C&C
Figura 9.2: Entrevista publicada en Computer Sweden traducido por hispasec
Figura 9.3: Uso de Web para el comando y control
Figura 9.4: Ventana de comandos del C&C vía Web
Índice de Tablas

Tabla 1.1: Topologías de redes bot
Tabla 4.1: Características de los primeros bots C&C
Tabla 5.1: Características de las diferentes familias
Tabla 6.1: Puertos de las vulnerabilidades más usadas
Tabla 6.2: Características de la explotación en los distintos bots
Tabla 7.1: Resumen de características de explotación de los bots
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos



Capítulo 1
Introducción y conceptos previos
1.1 Introducción
En su sentido más amplio un bot (diminutivo de robot que a su vez deriva de la palabra
Checoslovaca “robota” que significa trabajo) es un programa informático que realiza
diversas funciones imitando a los humanos: Minería de datos en Internet, funciones
rutinarias de edición de páginas Web, arañas de búsqueda, cartografiar sitios Web…


En el mundo de los videojuegos y los juegos en on-line se conocen a los bots como
programas que son capaces de jugar por si mismos (Aquí denominados borgs), véase el
caso de juegos como Half-life o Quake en los que eran utilizados para sustituir a
contrincantes humanos. Los bots para juegos CRPG (computer role-playing games) son
particularmente conocidos, en juegos como World Of Warcraft o City of Heroes, es
posible dejar un bot en línea mientras el usuario no se encuentra conectado, incluso
pudiendo realizar algunas tareas de manera automática y subir de nivel.


En sitios de conversión en línea (IRC) algunos bots fueron creados para responder de
forma automática a eventos externos concretos, de tal modo se puede intentar “simular”
conversaciones de una persona real, también son usados por los operadores del servidor
para realizar algunas operaciones de control de los canales, ayuda a los usuarios e
incluso últimamente, de publicidad.


Otros bots, por el contrario, están destinados a propósitos menos lícitos, como abrir
cuentas en sitios de correo gratuitos, para evitar esto, los administradores optan a
menudo por añadir un paso adicional como escribir una palabra en formato gráfico que
el usuario debe introducir, algo difícil de interpretar para un bot, ya que estos no
reconocen el texto contenido en una imagen.

Es importante distinguir que bot es una definición funcional, y no hace diferencias en
cuanto a su implementación. Un bot puede estar diseñado en cualquier lenguaje de
programación, funcionar en un servidor o en un cliente, ser un agente móvil, etc. [2]




       Autor: Adrián Belmonte Martín                                                               1
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos


En este proyecto vamos a centrarnos en un tipo de bot que está diseñado para tomar el
control de las máquinas a las que ataca y que es capaz en algunos casos de propagarse
automáticamente usando vulnerabilidades del sistema afectado.


Estos bots forman una red de máquinas comprometidas (botnet) bajo la dirección única
del creador de dicha red.


“En las seis horas que pasaron desde que se desplomó en la cama hasta
que salió de ella, el hacker de 21 años ha comprometido cerca de 2000
ordenadores personales en todo el mundo. Dormía mientras su
programa barría Internet en búsqueda de ordenadores vulnerables,
infectándolos con virus que los volvía su esclavo.
Ahora, con el humo de su primer Malboro del día, anda por la sala de
estar de la casa de sus padres. El hacker, conocido en la red como
0x80, se sienta en un sofá de cuero, pone su portátil en la mesa y teclea
una serie de comando. Con esta orden, los ordenadores infectados,
empezaran a bajar e instalar software que bombardeará a sus usuarios
con anuncios de sitios Web pornográficos. Tras la instalación, 0x80
ordenará a las máquinas buscar en Internet nuevas víctimas
potenciales.
El joven hacker [...] da una profunda calada y se recuesta en el sofá
para exhalarlo. Sonríe. Es su día de trabajo, terminado en menos de
dos minutos. En dos semanas recibirá un cheque por valor de 300
dólares de una de las compañías de marketing on-line que le paga por
sus servicios.”
               Fragmento traducido del artículo: Invasion of the Computer Snatchers por Brian
               Kreb. Publicado en The Washington post el Domingo 19 de Febrero del 2006
               Página w10.




2      Autor: Adrián Belmonte Martín
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos


1.2 Definiciones y clasificación

Así pues, definimos:


Bot: Se generaliza a programas sirvientes que realizan determinadas acciones a base de
comandos emitidos desde el controlador. El tipo de bot que estudiaremos aquí es el
denominado bot C&C (Command and Control, traducido: comando y control) cada vez
que nos refiramos de ahora en adelante al término bot, estaremos refiriéndonos
inequívocamente a este. Si hablamos de otro tipo, lo indicaremos explícitamente.


Botnet: Su nombre se generaliza a partir del 2003 y hace referencia a redes de equipos
comprometidos (bots) controlados desde un equipo central, empleando diversos
protocolos.


Bot herder o bot master: Es el “dueño” de la red de bots.


Máquina zombie (drone): Con anterioridad al 2000 se solía usar este término para
definir una máquina comprometida usada para ataques de denegación de servicio
distribuida. En la actualidad podemos ampliar el término a máquina comprometida con
un bot bajo las órdenes del bot herder o bot master


Existen varios tipos de bots de comando y control (C&C), y se suelen clasificar según
su topología [3]:


    •    Centralizada: Se caracteriza por un punto central que comunica los mensajes
         entre los clientes. Al ser un sólo sistema único, los mensajes suelen tener una
         latencia baja, ya que la dirección entre todos los puntos es conocida y bien
         definida. Desde la perspectiva del atacante este sistema tiene dos puntos débiles:
              1. Son fáciles de detectar si hay demasiados clientes conectados al mismo
                 punto
              2. Si se desconecta el punto central, se desconecta el sistema completo.




        Autor: Adrián Belmonte Martín                                                              3
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos




                             Figura 1.1 Topología centralizada


    •    Punto a punto (P2P): Este sistema está empezando a ser implantado en las
         botnets más avanzadas, posee importantes ventajas sobre las redes centralizadas.
         En primer lugar, es un sistema mucho más robusto. La desconexión de un bot no
         significa necesariamente la pérdida de la botnet completa, por el contrario el
         diseño de los sistemas p2p son más complejos y no existen garantías de entrega
         de mensajes o latencia.




                                   Figura 1.2: Topología p2p




4       Autor: Adrián Belmonte Martín
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos


    •    Aleatoria: Un sistema de comunicaciones podría estar basado en el principio de
         que ningún bot sabe nada sobre otro bot. En esta topología un bot o su
         controlador que quisiera enviar un mensaje, lo cifraría, analizaría la red en
         búsqueda de otro equipo infectado y enviaría el mensaje cuando lo detecte. Un
         sistema como este, es relativamente fácil de implementar y la detección de un
         bot nunca pondría en peligro toda la botnet, sin embargo, la latencia de los
         mensajes será muy alta y sin garantías de entrega.




Topología            Complejidad en Facilidad           de Latencia de       Supervivencia
                     el diseño            detección          mensajes


Centralizada              BAJA                MEDIA             BAJA             BAJA

P2P                       MEDIA                BAJA            MEDIA             MEDIA

Aleatoria                 BAJA                ALTA             ALTA              ALTA


                              Tabla 1.1: Topologías de redes bot


De manera un poco más abstracta también se clasifica según la cantidad de información
que se suministra: por un lado, tenemos la topología central, en la que el servidor sabe
todo acerca de todos los clientes mientras que en el otro extremo nos encontramos con
la topología aleatoria, en la que no sabemos nada de ningún cliente.
Cada topología tiene sus ventajas e inconvenientes, y sin duda, la topología óptima se
encuentra en algún sitio entre los extremos.


Entre todas estas opciones, vamos a focalizar el estudio en los bots de comando y
control bajo protocolo IRC, que estaría dentro de la topología centralizada. Existen
varios motivos para iniciar el estudio de los bots en esta categoría:




    •    Simplicidad: Es más sencillo que estudiar que otros protocolos como p2p y
         mucho más clarificador. Además es un protocolo muy extendido y conocido.


        Autor: Adrián Belmonte Martín                                                              5
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos


    •    Fueron los primeros en aparecer: Los primeros bots se programaron pensando
         exclusivamente en esta topología, por lo tanto los programas están más
         depurados y probados.
    •    Poseen más código fuente para su estudio: Las fuentes con bots programados
         para esta topología son superiores a cualquier otra topología existente.
    •    Contamos con más cantidad de programas para comparar: Con lo que podemos
         incluso realizar clasificaciones según distintos métodos o características.


    Es, por tanto, una plataforma y un protocolo excelente para comenzar el estudio de
    redes de bots, para ver cómo funcionan internamente, cómo se comunican y que
    métodos podemos usar para evitarlas.



1.3 Objetivos



En este proyecto vamos a investigar a fondo las redes de bot, el objetivo final es
proporcionar una idea clara de la estructura y funcionamiento de las redes de equipos
comprometidos, de la amenaza que suponen a nivel particular y general, de concienciar
de la importancia de la seguridad en red y de proporcionar información sobre métodos y
herramientas que se puedan utilizar para combatir este tipo de amenazas. Para lograr
esto:


    •    Proporcionaremos una definición exacta sobre qué tipo de bot hablaremos. Al
         ser un término con tantas acepciones es importante indicar a cuál exactamente
         nos estamos refiriendo
    •    Se analizarán las diferentes topologías en las que se implementan dada la
         importancia de conocer cómo se comunican estos tipos de redes para lograr su
         desarticulación
    •    Conoceremos sus antecedentes. Sus diferencias con los gusanos de Internet, qué
         características heredan de ellos y de los bots de IRC.
    •    Estudiaremos la historia de los diferentes virus y gusanos para comprender la
         evolución tecnológica de los mismos.




6       Autor: Adrián Belmonte Martín
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos


    •    Se realizará una clasificación exhaustiva por familias y características de
         aproximadamente 300 tipos de bots diferentes, estudiando detalladamente sus
         funcionalidades a través de su código fuente.
    •    Estudiaremos las vulnerabilidades de las que se aprovechan estos programas y
         veremos cómo se implementan en los bots
    •    Veremos el proceso de expansión de una red de bots, cómo comprometen los
         sistemas vulnerables y qué comandos y procedimientos se usan comúnmente
    •    Estudiaremos cómo explota el bot-herder los ordenadores comprometidos y
         cuáles son los usos habituales de una red de bot para comprobar cómo nos
         afectan
    •    Analizaremos las funcionalidades de cada tipo de bot
    •    Examinaremos qué beneficios obtiene el dueño de las botnets para comprobar
         los negocios que se encuentran tras estas redes
    •    Estudiaremos qué herramientas y métodos existen para protegernos de la
         amenaza que suponen
    •    Veremos cómo se puede desactivar una botnet


Para todo esto, comenzaremos el proyecto con la historia y antecedentes de los gusanos
así como de los bots de IRC, antecedentes de los bots. Posteriormente, los
clasificaremos según sus familias y siguiendo un orden cronológico para comprobar la
evolución de estos programas, a continuación, pasaremos a la parte más técnica del
proyecto y estudiaremos los módulos de expansión y explotación del sistema,
analizando en multitud de ocasiones el código fuente de los programas. Acabaremos
con las técnicas y programas usados para poder protegernos de estas redes.




1.4 Justificación


Visto todo esto es interesante resaltar por qué debemos estudiar el funcionamiento de
las redes de bots, ya que nos afecta directa e indirectamente. Podríamos diferenciar las
causas de interés de este estudio en tres grandes grupos:




        Autor: Adrián Belmonte Martín                                                              7
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos


    1. Usuarios Domésticos:
             •   Suplantación de identidad
             •   Robo de contraseñas
             •   Robo de datos bancarios
             •   Publicidad no deseada
             •   Derroche de recursos y deterioro en el funcionamiento del sistema
    2. Empresas
             •   Deterioro de la imagen de la empresa:
             •   Perdidas económicas por posibles caídas en los servicios
             •   Filtrado de datos “sensibles” de la empresa
             •   Generación de tráfico innecesario
             •   Derroche de recursos
             •   Extorsión por parte de terceros
             •   Instalación de malware y envío de spam en los sistemas de la empresa
             •   Perdida de confianza del usuario en servicios on-line


    3. Internet
             •   Generación de tráfico innecesario. Ruido de fondo de Internet
             •   Aumento de ataques y del uso indebido de las redes.


Los principales problemas que nos encontramos a la hora de hacer frente a una botnet
son los siguientes:


    •    Dificultad en la detección: Detectar un bot en un sistema es algo que en
         ocasiones resulta bastante complejo, los bots de última generación incluyen
         técnicas de ocultación avanzadas. Detectar una botnet es algo que dependerá de
         la topología de la red, de los métodos que contemos y sobre todo de la
         experiencia del administrador que realice esta tarea.
    •    Uso de protocolos comunes: El uso de protocolos como IRC o http y el uso de
         puertos usuales, camufla este tipo de programas en el tráfico común de Internet,
         además cuenta con la ventaja de que la mayoría de Firewalls están configurados
         para permitir este tráfico.




8       Autor: Adrián Belmonte Martín
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos


    •    Falta de detección por los Antivirus: Dado que cada programa puede ser
         modificado, ampliado y lanzado a la red, se da el caso de que existen cientos de
         variantes del mismo programa, con lo que, a no ser que el programa antivirus
         posea unas características heurísticas muy buenas, la compañía tarda un tiempo
         en recoger el binario, analizarlo y publicar una vacuna, esto añadido al tiempo
         que tarda el usuario en aplicar la actualización, hace que los equipos puedan
         estar mucho tiempo “al desnudo”.
    •    Dificultad de “cazar” al dueño de la red: Normalmente es muy difícil seguir el
         rastro del bot master ya que el servidor IRC hace de capa de protección, incluso
         es común que se conecte al servidor a través de uno de los equipos infectados,
         haciendo este de “proxy”. Además es usual la instalación de servidores IRC
         privados en máquinas infectadas, re-dirigiéndolos mediante DNS dinámicos y el
         uso de máscaras de acceso en estos servidores.


Existen grupos en Internet que se dedican activamente a la caza de redes bots
(denominados bot hunters o zombie hunters) como por ejemplo ShadowServer , un
grupo de voluntarios expertos en seguridad que se encargan de recoger, clasificar e
informar de actividades como spam, botnets y fraude electrónico con la finalidad de
mejorar la seguridad de Internet.:




        Figura 1.3: Responsabilidades y técnicas de actuación de Shadowserver




En la página Web del grupo, encontramos información sobre cómo instalar el software
adecuado para detectar e informar de bots al grupo.



        Autor: Adrián Belmonte Martín                                                              9
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos


Aparte de estos, organizaciones ligadas a los gobiernos como CERT en americano o
REDIRIS en España, se dedican a prevenir estas redes y concienciar a los usuarios de
los peligros que estas entrañan.
A pesar de todos estos esfuerzos, el creciente número de máquinas “zombie” en las
redes empieza a ser preocupante. De acuerdo con las estadísticas de Symantec, en los
primeros 6 meses del 2006, se observaron una media de 57.000 bots activos por día. Así
mismo, durante ese periodo 4.7 millones de ordenadores fueron usados activamente en
botnets. [1]
A pesar de contar con estas estadísticas nadie puede saber a ciencia cierta el porcentaje
exacto de máquinas que se encuentran operando en la actualidad, esto es difícil
determinar debido a las diferencias en su tipología y morfología, que las hace muy
difícil de detectar y catalogar.
El continuo crecimiento y diversificación de Internet, ha venido acompañado de un
incremento de los ataques e intrusiones. Sin embargo, se observa un cambio significante
en la motivación de los atacantes: se ha pasado del vandalismo y el reconocimiento en
la comunidad, a los ataques para obtener beneficio económico. Este cambio ha supuesto
un crecimiento en la sofisticación de los métodos y las herramientas de ataque.



Actualmente los PC´s domésticos son objetivos apetecibles para los atacantes. La
mayoría de los objetivos ejecutan Microsoft Windows y muy a menudo no son
actualizados correctamente o protegidos tras un firewall, dejándolos expuestos a ataques.
Además, se encuentran también los ataques indirectos como los archivos HTML que
explotan vulnerabilidades o software malicioso en las redes Peer to Peer.
Las máquinas con conexión de banda ancha que se encuentran siempre conectadas son
un objetivo valioso para un atacante: se estima que los beneficios de este tráfico de
ciclos de cpu y recursos gastados en la instalación de bots podrían llegar a rondar el
billón de dólares.
Trend Micro, afirma que al menos el 5% de todos los ordenadores conectados a Internet
han sido usados alguna vez en botnets en cualquiera de sus variantes. [1] y si
observamos los gráficos de los últimos meses en cuanto actividad de bot y botnets, en
tan sólo los casos notificados (en la realidad son mucho mayores, ya que no todas las
redes son fácilmente detectadas) observamos que nos encontramos lejos de acabar con
esta amenaza.



10     Autor: Adrián Belmonte Martín
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos




     Figura 1.4: Crecimiento del tamaño de las botnets informadas NOV-FEB
                                2007.Fuente ShadowServer




Figura 1.5: Crecimiento del número de botnets informadas Nov-Feb 2007: Fuente
                                        ShadowServer




       Autor: Adrián Belmonte Martín                                                           11
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos




Nos encontramos sin duda, ante uno de los retos más importantes a los que se enfrenta
la seguridad informática en el principio de este nuevo milenio. Ya no sólo por el riesgo
de violación de privacidad o robo de información, si no porque, tras estas redes de
ordenadores remotamente controlados, se encuentran mafias perfectamente organizadas
que se lucran económicamente de cada sistema comprometido.
Existe en la actualidad una autentica lucha, un juego del ratón y el gato, entre los
creadores de las redes bot y los que luchan por desactivarlas. Las técnicas en el
desarrollo de los bots mejoran día a día, así como el abanico de vulnerabilidades que
explotan. Los intrusos ya no se mueven por diversión o autosatisfacción, ahora lo hacen
por beneficios económicos, lo que les permite dedicarle más tiempo y recursos al
desarrollo de los programas.


Sin embargo, el desconocimiento casi total que se tiene de este tema es una de sus
mejores bazas, es un tema poco conocido incluso en los ambientes de técnicos en
seguridad. Hay una enorme carencia de información con respecto a las redes bot, no hay
ningún libro publicado y la que existe se encuentra muy diseminada, poco organizada y
poco conocida.
Era necesario realizar este proyecto ya que era preciso recopilar la poca información
existente, organizarla y analizar a fondo cómo funcionan estos programas, será este, por
tanto, el documento de mayor extensión y profundidad que existe actualmente sobre el
tema. Conoce a tu enemigo, es importante estudiar siempre a qué nos enfrentamos y en
este caso es el estudio de una red de las que provienen la mayoría de los fraudes y
delitos cibernéticos que se usan en la actualidad siendo previsible que aumenten en un
futuro. Conocer su estructura y el funcionamiento nos permitirá analizar y buscar
soluciones ante uno de los principales problemas de Internet y que es,
sorprendentemente, desconocido para la mayoría de los usuarios de la Red.




12     Autor: Adrián Belmonte Martín
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos



Capítulo 2
Historia
Los intentos de comprometer un sistema han estado presentes desde la creación de las
redes de comunicaciones, el atractivo que los primeros “hackers” encontraban en
hacerse con el control de un sistema remotamente, solía ser el reto intelectual que les
suponía el conseguirlo o el reconocimiento de su “comunidad”, por otra parte, se
encontraban con la oportunidad acceder a una máquina con unas prestaciones que de
otra manera no tendrían oportunidad de usar.
El objetivo de estos atacantes solían ser ordenadores conectados a las redes de las
universidades: Eran un buen objetivo, tenían más probabilidades a priori de estar mal
configurados que un ordenador de un servidor militar o gubernamental, poseían una
buenas prestaciones de cómputo y además estaban conectados 24 horas al día 7 horas a
la semana. Usualmente, los atacantes a estos sistemas solían aprovechar de
configuraciones típicas vulnerables, contraseñas poco seguras (normalmente por defecto)
e incluso ingeniería social para acceder a los sistemas. La gran mayoría de estos
atacantes no comprometían el sistema con fines maliciosos, se limitaban a curiosear y a
intentar no ser detectados el máximo tiempo posible.


Con la expansión de la informática y de las redes de ordenadores, un mayor número de
usuarios se acercan a esta manera de comunicación y con ello un aumento de los
usuarios interesados en explotar los sistemas con fines no lícitos o simplemente
demostrar la inseguridad en las redes de comunicaciones.


Sin embargo, las técnicas para ganar el acceso a un sistema han variado con el tiempo,
mejorando y aumentando su complejidad técnica, se observa en la figura la evolución de
los primero ataques en Internet.




       Autor: Adrián Belmonte Martín                                                           13
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos




           Figura 2.1: Evolución de los primeros ataques a redes 1980-2000


Formalmente y muy resumidamente las fases de un ataque a un sistema se dividen en:


     1. Exploración: El atacante analiza el sistema objetivo para comprobar si usa
        Software vulnerable de ser explotado.


     2. Acceso: Mediante un fallo de seguridad el atacante consigue acceder al sistema.
        Aprovechando fallos locales, puede conseguir el acceso como administrador.


     3. Consolidación: Una vez en el sistema, el intruso elimina las pruebas del ataque e
        intenta instalar herramientas rootkit para asegurarse el acceso cómodo la
        próxima vez.


     4. Explotación: El atacante emplea el sistema para diversos fines.




14     Autor: Adrián Belmonte Martín
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos




                                          Rootkit
        Un rootkit es una herramienta, o un grupo de ellas usadas para esconder los
        procesos y archivos que permiten al intruso mantener el acceso al sistema, a
        menudo con fines maliciosos. Hay rootkits para una amplia variedad de sistemas
        operativos, como Linux, Solaris o Microsoft Windows [1].

                               Figura 2.2: Definición de Rootkit


Las técnicas que usa un bot para comprometer un sistema viene heredado
principalmente de dos tipos de programas distintos:


    •     Gusano: El bot utiliza acciones típicas de un gusano de Internet para realizar
          más o menos automáticamente las tres primeras acciones del proceso
          ( Exploración, acceso y consolidación)
    •     Bot de IRC: Es la técnica usada para mantener la estructura C&C y realizar la
          explotación del sistema, Este punto puede variar según el tipo de protocolo o la
          topología (por ejemplo si usamos p2p), como hemos comentado, en este
          documento nos vamos a centrar en estudiar este tipo.


Vamos a comenzar definiendo estos tipos de programas y posteriormente intentaremos
estudiar los antecedentes históricos de cada uno de ellos.


Un virus informático es un pequeño programa creado para alterar la forma en que
funciona un equipo sin el permiso o el conocimiento del usuario. Por definición [5], un
virus debe presentar dos características:
    •     Debe ser capaz de ejecutarse a sí mismo. A menudo coloca su propio código en
          la ruta de ejecución de otro programa.
    •     Debe ser capaz de replicarse. Por ejemplo, puede reemplazar otros archivos
          ejecutables con una copia del archivo infectado. Los virus pueden infectar tanto
          equipos de escritorio como servidores de red.


Algunos virus están programados para atacar el equipo dañando programas, eliminando
archivos o reformateando el disco duro. Otros no están creados para causar daño alguno,


         Autor: Adrián Belmonte Martín                                                         15
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos


sino para replicarse y dar a conocer su presencia mediante la presentación de mensajes
de texto, vídeo o sonido. Incluso estos virus benignos pueden crear problemas al usuario
informático. Normalmente hacen uso de la memoria correspondiente a los programas
legítimos, como resultado, pueden provocar a un comportamiento irregular en el equipo
e incluso hacer que el sistema deje de responder. Además, muchos virus contienen
errores que pueden ocasionar pérdidas de datos y bloqueos del sistema.


Los gusanos son programas que se replican a sí mismos de sistema a sistema sin utilizar
un archivo para hacerlo. En esto se diferencian de los virus, que necesitan extenderse
mediante un archivo infectado. Aunque los gusanos generalmente se encuentran dentro
de otros archivos, a menudo documentos de Word o Excel, existe una diferencia en la
forma en que los gusanos y los virus utilizan el archivo que los alberga. Normalmente el
gusano generará un documento que ya contendrá la macro del gusano dentro. Todo el
documento viajará de un equipo a otro, de forma que el documento completo debe
considerarse como gusano, mientras que en los virus, sólo una parte del programa
legítimo se encuentra infectado.


En el siguiente punto estudiamos la historia de estos tipos de programas y cual ha sido
su evolución a lo largo de los años que ha permitido el desarrollo de los programas bot.




2.1 Virus y gusanos: Los antecedentes

Quizás los primeros interesados en la seguridad de los ordenadores no estaban
demasiado relacionados con el acceso a los sistemas en redes ni a su explotación,
deberíamos remontarnos mucho tiempo atrás, hasta 1939, año en el que el famoso
matemático John Louis Von Neuman escribió un articulo en una revista científica de
Nueva York exponiendo su “Teoría y organización de autómatas complejos” , donde
demostraba la posibilidad de desarrollar pequeños programas que pudiesen tomar el
control de otros de similar estructura. [9]
Von Neuman, en 1944 contribuyó de forma directa en la fabricación de la ENIAC, una
de las computadoras de primera generación y posteriormente la UNIVAC.




16     Autor: Adrián Belmonte Martín
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos


En 1949, en los laboratorios de la Bell Computer, subsidiaria de la AT&T, tres jóvenes
programadores: Robert Thomas Morris, Douglas McIlory y Victor Vysottsky, a
maneras de entrenamiento, crearon un juego al que denominaron CoreWar, inspirados
en la teoría de Neuman. Este juego, ejecutaba programas que iban paulatinamente
disminuyendo la memoria del ordenador y el ganador era el que finalmente conseguía
eliminarlos totalmente. Este juego fue motivo de concursos en importantes centros de
investigación como el de la Xerox en California y el MIT.
Sin embargo, por aquellos años la computación era manejada por una pequeña élite de
intelectuales, por lo que el CoreWar fue mantenido en el anonimato. [4]




A principios de 1972 Robert Thomas Morris escribió lo que muchos consideran el
primer gusano informático. Este programa, denominado `creeper', no era ni mucho
menos dañino, sino que era utilizado en los aeropuertos por los controladores aéreos
para notificar que el control de determinado avión había pasado de un ordenador a otro.
Otros ejemplos de gusanos útiles fueron los desarrollados por John Shoch y Jon Hupp,
del centro de investigación de Xerox en Palo Alto, California; estos worms se dedicaban
a tareas como el intercambio de mensajes entre sistemas o el aprovechamiento de
recursos ociosos durante la noche. Todo funcionaba aparentemente bien, hasta que una
mañana al llegar al centro de investigación ningún ordenador funcionaba debido a un
error en uno de los gusanos; al reiniciar los sistemas, estos volvían a fallar porque el
gusano seguía trabajando, por lo que fue necesario diseñar una vacuna; Se había
diseñado el primer “antivirus” aunque evidentemente              por entonces no existía tal
término. Este es considerado el primer incidente de seguridad en el que entraban
gusanos en juego. Aunque este nombre no fue ampliamente usado para describirlos
hasta que en 1975 John Brunner publicó la novela de ciencia ficción The Shockwave
Rider, en ella Brunner aplicó termino gusano (Worm) para describir el programa que
utilizó el protagonista y que se caracterizaba por su capacidad de auto replicarse en una
red pudiendo, de esta manera, vulnerar y desvelar los oscuros secretos de la red de
computadores que usaba el gobierno para controlar a sus ciudadanos.


En 1984, el Dr.Fred Cohen, al ser homenajeado en una graduación, en su discurso de
agradecimiento incluyó las pautas para el desarrollo de un virus. Este y otros hechos



       Autor: Adrián Belmonte Martín                                                           17
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos


posteriores lo convirtieron en el primer autor oficial de los virus (aunque hubo varios
autores más que actuaron en el anonimato) [6]
El Dr. Cohen ese mismo año, escribió su libro “Virus Informáticos: teoría y
experimentos” donde además de definirlos los califica como un grave problema
relacionado con la seguridad nacional. Al poco, los usuarios del BIX BBS, reportaron la
presencia y propagación de algunos programas que habían ingresado en sus ordenadores,
actuando como “caballos de Troya”, logrando infectar a otros programas y hasta el
propio sistema operativo, principalmente al sector de arranque.


El año de la gran epidemia fue 1986, ese año se difundieron los virus Brain, Bouncing
Ball y Marihuana, que fueron las primeras especies representativas de difusión
masiva .Estas tres especies virales tan sólo infectaban el sector de arranque de los
disquetes. Posteriormente aparecieron los virus que infectaban los archivos EXE y
COM.


Sin embargo, no fue hasta 1988 cuando se produjo el primer incidente de seguridad
“serio” provocado por un gusano, que a la larga se ha convertido en el primer problema
de seguridad informática que saltó a los medios. El 2 de noviembre de ese año, Robert T.
Morris (hijo de Robert Thomas Morris, creador del ‘creeper’ y experto en seguridad en
UNIX) saltó a la fama cuando uno de sus programas se convirtió en ` Gusano'
                                                                  el       con
mayúsculas. La principal causa del problema fue la filosofía `
                                                             Security through
Obscurity'que muchos aún defienden hoy en día: Este joven estudiante se aprovechó
de uno de los muchos fallos en Sendmail descubiertos por su padre y los incluyó en su
gusano, además, explotaba varias vulnerabilidades en programas como, fingerd, rsh y
rexecd para acceder a un sistema, contaminarlo, y desde él seguir actuando hacia otras

máquinas En unas horas, miles de equipos conectados a la red dejaron de funcionar,
todos presentando una sobrecarga de procesos sh (el nombre camuflado del gusano en
los sistemas Unix), reiniciar el sistema no era ninguna solución, porque tras unos
minutos de funcionamiento el sistema volvía a presentar el mismo problema.


Fueron necesarias muchas horas de trabajo para poder detener el Worm de Morris;
Expertos de dos grandes universidades norteamericanas, MIT y Berkeley, fueron
capaces de desensamblar el código y proporcionar una solución al problema. Junto a
ellos, cientos de administradores y programadores de todo el mundo colaboraron


18     Autor: Adrián Belmonte Martín
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos


ininterrumpidamente durante varios días para analizar cómo se habían contaminado y
cuáles eran los efectos que el gusano había causado en sus sistemas. El día 8 de
noviembre, casi una semana después del ataque, expertos en seguridad de casi todos los
ámbitos de la vida estadounidense se reunieron para aclarar qué es lo que pasó
exactamente, cómo se había resuelto, cuáles eran las consecuencias y cómo se podía
evitar que sucediera algo parecido en el futuro; allí había desde investigadores del MIT
o Berkeley hasta miembros de la CIA, el Departamento de Energía o el Laboratorio de
Investigación Balística, pasando por supuesto por miembros del National Computer
Security Center, organizador del evento. Esta reunión, y el incidente en sí, marcaron un
antes y un después en la historia de la seguridad informática; La sociedad en general y
los investigadores en particular tomaron conciencia del grave problema que suponía un
ataque de esa envergadura, y a partir de ahí comenzaron a surgir organizaciones como el
CERT, encargadas de velar por la seguridad de los sistemas informáticos. También se
determinaron medidas de prevención que siguen vigentes hoy en día, de forma que otros
ataques de gusanos no han sido tan espectaculares: a finales de 1989 un gusano llamado
wank, que a diferencia del de Morris era destructivo, no tuvo ni de lejos las

repercusiones que éste. Desde entonces, no ha habido ninguna noticia importante - al
menos publicada por el CERT - de gusanos en entornos Unix.




                 Figura 2.3: Eventos relacionados con gusanos y virus




       Autor: Adrián Belmonte Martín                                                           19
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos


Una nueva generación


La popularidad de Internet, el amplio uso de el correo electrónico, la potencia de los
interpretes de script de MS Office unido con la ingenuidad de algunos usuarios hicieron
posible la creación de una nueva generación de gusanos que usaban estos medios para
propagarse, Sin embargo, no se podría hablar de un cambio de la “scene” en cuanto a
dejar de programar virus a programar gusanos, sería más correcto hablar de evolución
de los virus, de una adaptación a nuevos medios; Nuevos métodos de propagación y con
otros fines. La barrera entre la programación de virus/gusanos y la “scene” hacker será,
como veremos, cada vez más difusa.


Marzo de 1999, el virus Melissa provoca una de las infecciones masivas más
importantes de la historia de los virus informáticos. En principio un virus de macro de
Word, se auto enviaba por correo electrónico a los 50 primeros contactos de la lista de
correo del ordenador infectado.
En Noviembre de ese mismo año el gusano VBS/BubbleBoy marca un antes y un
después en los métodos de infección, dicho gusano, escrito en Visual Basic Script y
aprovechando un agujero del Internet Explorer 5 se activaba sin necesidad de ejecutar
ningún fichero adjunto, tan sólo con abrir el mensaje o visualizarlo el equipo quedaba
infectado.
Sin embargo, destaca el gusano VBS/LoveLetter ( 3 de Mayo 2000), comúnmente
denominado “I Love You” que era especialmente ingenioso combinando los métodos
expansión del gusano con técnicas de ingeniería social. Dicho gusano se mandaba por
correo electrónico con un mensaje cuyo asunto era “I Love You” e incluía adjunto el
fichero “Love-Letter-For-You-txt.vbs” que al abrirlo infectaba el ordenador y que se
tomaba la libertad de sobrescribir archivos y música, imágenes y otros.
También en el año 2000 apareció el gusano JS/Kak.Worm el cual se propagaba mediante
la ocultación tras un guión de Java Script en la autofirma de Outlook Express, lo cual le
permitía infectar sistemas sin que fuera necesario abrir ningún fichero adjunto.


Por tanto, podemos observar una sustancial mejora en las técnicas de infección: Desde
los primeros gusanos que necesitaban la interacción del usuario, se evoluciona a una
infección cada vez más automática e independiente. Los creadores de virus aprovechan
vulnerabilidades en el software de uso habitual a través de exploits programados por


20     Autor: Adrián Belmonte Martín
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos


terceros; Pocas veces están realizados por el autor del programa malicioso, ya que su
creación suele ser una tarea compleja, no apta para cualquier usuario. Pero, en ocasiones,
el autor del exploit lo pone a disposición de otros usuarios, esto es aprovechado por los
creadores de virus y gusanos que lo incorporan en sus creaciones.
Hay que destacar las múltiples ventajas de este nuevo método de infección: Si se trata
de una vulnerabilidad para el sistema operativo Windows o un programa muy común,
dispone de millones de víctimas potenciales. A esto hay que añadirle que la propagación
puede llegar a realizarse de manera extraordinariamente rápida, ya que no hay ninguna
barrera que evite su expansión.




El 13 de Julio del 2001, una vulnerabilidad en el servidor Web de Microsoft, Internet
Information Server (IIS) permitió al gusano Code Red infectar 359.000 ordenadores, en
menos de una semana y más de un millón en su corta vida.


A diferencia de sus predecesores, Code Red no requería ninguna intervención del
usuario para ejecutarse y auto replicarse, además de las características típicas de
expansión, este gusano al infectar el sistema, buscaba nuevos servidores IIS y
comprobaba si había sido ya infectado, además pasados unos días, intentaba un ataque
de denegación de servicio contra algunas IP´s prefijadas, como por ejemplo la de la
Casa Blanca.


A partir de ese momento, la expansión de este tipo de gusanos, se hace cada vez más
dañina, y por tanto más famosa y mediática:


El gusano Blaster, también conocido como Lovsan o Lovesan infectaba ordenadores
que ejecutaba Windows Xp o 2000 y que no estaban correctamente parcheados.
Este gusano fue detectado por primera vez el 11 de Agosto de 2003 alcanzando sus
máximas cotas de infección el 13 de Agosto.




       Autor: Adrián Belmonte Martín                                                           21
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos


                                         Gusano Blaster

 Blaster utiliza una vulnerabilidad en la interfaz RPC que permite la ejecución arbitraria de código
 mediante un desbordamiento de buffer en dicho servicio de Windows.
 RPC (Remote Procedure Call) es un protocolo que proporciona a Windows un mecanismo de
 comunicación entre procesos para que un programa que se está ejecutando en un equipo ejecute
 fácilmente código en un equipo remoto. La falla mencionada permite que se pueda ejecutar código en
 forma aleatoria, enviando mensajes construidos maliciosamente entre procesos específicos.
 Estudiando un poco más en detalle, el gusano hace uso de los siguientes archivos:
 MSBLAST.EXE: Es el gusano propiamente dicho, un archivo comprimido con la utilidad UPX.

 El gusano se propaga a través del puerto TCP/135, copiándose en los ordenadores que no poseen el
 parche para la vulnerabilidad, crea un shell remoto (ejecutando CMD.EXE) en el puerto TCP/4444 de
 la máquina infectada (un SHELL es un intérprete de comandos que interpreta y activa los comandos o
 utilidades introducidos por el usuario)
 y usando este shell, el gusano ejecuta un comando TFTP (get) para descargar el gusano propiamente
 dicho en el directorio System32 de Windows.

 TFTP: (Trivial File Transfer Protocol) Es una versión simplificada de FTP (File Transfer Protocol), un
 protocolo que permite la transferencia de archivos entre dos ordenadores conectados en red.

 Además de todo esto el gusano también se ejecuta como un servidor FTP en el ordenador atacado
 usando el puerto UDP/69, con lo que permite que la víctima sirva de host a otros usuarios para que
 descarguen de allí una copia del gusano (MSBLAST.EXE).
 Para propagarse, el gusano utiliza una ingeniosa rutina que optimiza la infección en las redes más
 cercanas al host infectado. Para ello, genera 20 direcciones al azar por vez, tomando como base la
 dirección IP actual del ordenador infectado, y las explora, buscando otros sistemas vulnerables.

 Por ejemplo, si la dirección IP del host es AAA.BBB.CCC.DDD, las direcciones generadas por el
 gusano al comienzo tendrán AAA y BBB iguales a los del host.
 DDD siempre será cero, y CCC será un número al azar entre 0 y 253. Si el número es mayor de 20, se
 le restará otro valor menor de 20 también al azar. Después de ello, alternará las siguientes
 combinaciones:
 AAA será un número de 1 a 254
 BBB será un número de 0 a 253
 CCC será un número de 0 a 253
 DDD será siempre 0
 Con las direcciones generadas, el gusano analiza otros equipos vulnerables, siempre hasta 20
 direcciones IP al mismo tiempo. Como resultado de toda esta actividad, la subred local será saturada
 con pedidos al puerto 135.

 Además de todo ello, el gusano está preparado para realizar ataques distribuidos de denegación de
 servicio (DDoS), al servidor de actualizaciones de Microsoft, con la intención es impedir la descarga
 del parche que evita que el propio gusano pueda propagarse. Para ello, y comenzando el 16 de agosto
 de 2003, todas las máquinas infectadas pueden enviar en forma masiva, una gran cantidad de paquetes
 de 40 bytes, en intervalos de 20 milisegundos, al puerto 80 de "windowsupdate.com". Curiosamente el
 daño a Microsoft fue mínimo, ya que el ataque fue realizado a windowsupdate.com y no a
 windowsupdate.microsoft.com que era la página a la cual era redirigida. De todas maneras y como
 medida preventiva, la página objetivo fue desconectada para minimizar el daño del gusano.
 Como curiosidades, en su código, el gusano contiene el siguiente texto (no mostrado al usuario):

                                     I just want to say LOVE YOU SAN!!
                                billy gates why do you make this possible ?
                                Stop making money and fix your software!!



            Figura 2.4: Descripción del funcionamiento del gusano blaster




22     Autor: Adrián Belmonte Martín
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos




                        Figura 2.5: Captura del código del blaster


Otro detalle curioso e identificativo de este gusano es que en ocasiones, y debido a un
error en el exploit utilizado para aprovecharse de la vulnerabilidad, se muestra el
siguiente mensaje antes de que el sistema se cierre:




                  Figura 2.6: Mensaje de infección del gusano Blaster




Este mensaje de error se hizo famoso en ordenadores de todo el mundo.




       Autor: Adrián Belmonte Martín                                                           23
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos


Pese a todo, el efecto del gusano pudo ser mucho peor, pero los intentos de los ISP por
filtrar el tráfico y las medidas informativas para que los usuarios y empresas aplicaran el
correspondiente parche ayudaron mucho a mitigar el impacto.
Aun así se estima en billones de dólares en pérdidas económicas y cientos de miles de
ordenadores infectados en todo el mundo.


Como puede observarse en estos primeros gusanos de nueva generación, cada nuevo
elemento usa características de los anteriores, refinan las técnicas antiguas y añaden
nuevas, así mismo, la complejidad y sofisticación de los métodos de propagación y su
efecto dañino se fue incrementando con el tiempo.




Aprovechando las puertas traseras


Otro de los gusanos que más equipo infectó y de los que hubo hasta 100 variantes,
algunas de ellas aún en activo, es el Bagle, una vez en el equipo infectado, abría un
puerto TCP que era usado remotamente por una aplicación para acceder a los datos del
sistema, es decir, combinaba los métodos de propagación de los gusanos con la
instalación de puertas traseras(del estilo de Back Orifice o SubSeven) en el equipo
infectado lo cual daba al creador del programa o a cualquier atacante acceso posterior al
sistema.


El 26 de Febrero del 2004, el gusano MyDoom se convirtió en el gusano de propagación
por email más rápido de la historia (aunque también se propagaba por las carpetas
compartidas de la red Kazaa) y también uno de los más dañinos, se dice que llegó a
ralentizar Internet un 10% y la carga de las paginas Web hasta un 50%. [7]




24     Autor: Adrián Belmonte Martín
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos




                                          Gusano MyDoom

La primera cepa de MyDoom se transmitía principalmente por mail, aparentando ser un error en la
recepción de un correo. Contenía el encabezado “Error”, “Mail Delivery System”,”Test” o “Mail
Transaction Failed” en diferentes lenguajes, incluidos Ingles y Francés. El mail contenía un
documento adjunto que si era ejecutado se reenviaba a direcciones de mail encontradas en los
documentos locales, tales como la libreta de direcciones del usuario, también se copiaba en las
carpetas compartidas de Kazaa en un intento de aumentar su expansión.

MyDoom evitaba las direcciones de ciertas universidades como Rutgers, MIT, Stanford y Berkeley,
no porque fuera un virus “estudiante” si no porque de esta manera evitaba que infectara equipos con
personal que pudiera estudiar su código y dar soluciones para su expansión, por el mismo motivo
evitaba direcciones de compañías como Microsoft, Symantec y algunas más relacionadas con la
seguridad.

La cepa primaria de MyDoom realizaba dos acciones primordiales:

    1.   Abría una puerta trasera en el puerto TCP/3127 que permitía el control remoto del ordenador
         infectado
    2.   Realizaba un ataque de denegación de servicio contra el sitio Web de SCO Group. (Esta
         acción finalmente sólo funcionó en el 25% de los sistemas infectados).

Las siguientes cepas del gusano, realizaban acciones mucho más interesantes e innovadoras. Por
ejemplo bloqueaban el acceso http a algunos sitios antivirus online, bloqueaba utilidades antivirus o
sus actualizaciones.
Pero sin duda una de las características más novedosas y que llevaron a pensar que los autores del
gusano podían pertenecer a redes de crímenes organizados o con fines lucrativos fue que añadía
anuncios pop-up de algunas compañías de marketing.
Este virus causó unas perdidas económicas de 40 billones de dólares. [7]

                      Figura 2.7: Funcionamiento del gusano MyDoom




El último caso de gusano que salió a la luz de los medios públicos, y sin duda uno de los
que más daños causó fue el gusano Sasser (una variante de Netsky) que comenzó su
actividad el 30 de Abril del 2004.
Dicho gusano, se aprovechaba de un desbordamiento de buffer en el componente de
Windows LSASS (Local Security Authority Subsytem Service). El gusano analizaba
diferentes rangos de direcciones IP y conectaba al ordenador de la víctima
principalmente a través del puerto 445.
Sasser no era transmitido vía email y no requería usuarios para propagarse (como el
Blaster). Cada vez que encontraba sistemas Windows 2000 y Windows Xp no
actualizados, este era replicado.




         Autor: Adrián Belmonte Martín                                                                  25
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos


Los sistemas infectados experimentaban una gran inestabilidad, apareciendo otro
famoso mensaje:




                          Figura 2.8: Infección por el gusano Sasser


Los efectos se hicieron notar en todo el mundo, aparte de infectar millones de
ordenadores personales de todo el mundo, el gusano:
     •    Bloqueó las comunicaciones de la agencia de comunicaciones francesa por
          cuatro horas.
     •    La compañía de vuelos Delta Airlines tuvo que cancelar muchos vuelos
          transatlánticos por que su sistema de ordenadores estaba colapsado por el virus.
     •    La compañía de seguros Nordic tuvo que cesar su actividad y cerrar sus 130
          oficinas en Finlandia.
     •    Los servicios de mapas electrónicos de los guardacostas Británicos estuvieron
          desconectados por horas
     •    El departamento de rayos-x de Hospital Universitario de Lund tuvo sus
          máquinas de rayos-x apagadas por unas horas y tuvo que redirigir las
          emergencias a un hospital cercano. [8]




26       Autor: Adrián Belmonte Martín
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos




Figura 2.9: Cronología de la nueva generación de gusanos. 1-marzo 1999 /30 abril
                                              2004




Actualmente


Sin duda, desde entonces, han aparecido miles de nuevos gusanos y variantes de los
anteriores, sin embargo se ha logrado minimizar enormemente el impacto y la
expansión de los gusanos, esto es debido entre otras causas:
    •    Esfuerzos de los ISP´s por filtrar y aislar el tráfico de su red.
    •    Las campañas de concienciación de los departamentos de alertas y respuestas de
         seguridad y
    •    Las investigaciones de las casas antivirus por encontrar las nuevas firmas que
         detecten estos gusanos


En todos los casos de grandes epidemias de gusanos, es importante resaltar que fueron
todos creados con base en vulnerabilidades anunciadas por el fabricante y que antes de
cada ataque había disponible un parche que las corregía. [8]
De cada error se aprende algo nuevo, y de estas epidemias aprendimos que es necesario
tomar en serio las actualizaciones de seguridad para el sistema operativo y los
programas que usemos.
Desde entonces, dos nuevos objetivos están siendo enfocados por los atacantes: por un
lado, las aplicaciones del tipo punto a punto; es decir, aquellos servicios que permiten la
conexión directa de dos equipos en Internet, como es el caso de la mensajería
instantánea y los programas para compartir archivos, tan populares hoy en día.


        Autor: Adrián Belmonte Martín                                                          27
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos




Y en todo esto: ¿Dónde se quedan las redes de bots? Bien, los gusanos son, sin duda, los
antecedentes directos de estas redes, los bots están programados para seguir el modelo
de expansión de las últimas generación de programas, es decir, la explotación de
vulnerabilidades en el software del equipo víctima.
Sin embargo, una vez que el equipo está comprometido debemos observar la manera en
la que el atacante hace uso del mismo. Como hemos visto, la forma más habitual de
controlar la red de bots es a través del IRC, por tanto, si estamos estudiando la historia y
los antecedentes de las redes de bots, sería interesante, estudiar la historia del modelo
C&C mediante IRC:




2.2 Bots de IRC. Antecedentes

Un bot de IRC (IRC bot) es un conjunto de scripts o un programa independiente que se
conecta a un servidor de charlas como un cliente y aparece a los otros usuarios como un
nick más. El bot responde a comandos predefinidos con acciones determinadas y suelen
usarse para diversos motivos:
     •    Proteger a los canales de inundaciones y absorciones.
     •    Mantenimiento de los canales.
     •    Mantener listas de acceso.
     •    Permitir el acceso a bases de datos.
     •    Creación de estadísticas.
     •    Publicidad.
     •    Ejecutar juegos (el Trivial es el más común).


De hecho él primer bot de IRC llamado GM escrito por el operador de IRC Greg
Lindahl (de nick Wumpus), era un juego para los usuarios que se comunicaban
mediante IRC, el juego se denominaba “Hunt the Wumpus”.


El primer bot usado para controlar y proteger un canal de Chat fue programado en
Diciembre de 1993 por Robert Pointer en Tcl/tk bajo código abierto. Se creó para ser
usado en el canal #gayteen, ya que el autor deseaba controlar y proteger, su por


28       Autor: Adrián Belmonte Martín
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos


entonces “controvertido” canal de Chat. Este programa empezó a volverse muy popular
a través de los años y posteriormente, Robert Pointier en conjunción con un grupo de
aficionados evolucionaron sus Scripts hasta convertirlos en sistemas, tal como es hoy el
denominado Eggdrop, reclamado por ser el más popular bot de IRC y cuya comunidad
ha crecido enormemente en estos últimos años, aunque su creador ya no pertenezca al
grupo.
La disponibilidad del código fuente de este y otros programas de bots de IRC, la
facilidad del control remotamente de cualquier equipo remotamente y la gran
popularidad de estas redes, hizo que los programadores de bots vieran una plataforma
perfecta para el desarrollo de la estructura de comando y control.


Por tanto, ahora poseemos una idea de cuales son los antecedentes y las influencias que
hacen que estas redes de bots tengan la estructura que tienen y cómo funcionan, como
iremos viendo a lo largo del proyecto, dependiendo de la complejidad de cada bot
utilizará métodos y técnicas distintas y más o menos sofisticadas.




         Autor: Adrián Belmonte Martín                                                         29
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos



Capítulo 3
 Funcionamiento y estructura
Ahora bien, ¿cómo funciona un bot? Un ejemplo de funcionamiento de una botnet C&C
bajo IRC sería la siguiente:
     •    Un atacante primero lanza un gusano que infecta varios Hosts. Estos se
          convierten en zombies y se conectan al servidor IRC para recibir instrucciones.
     •    El servidor IRC puede ser una máquina pública en una de las redes IRC, o un
          servidor dedicado instalado por el atacante en uno de los Hosts infectados.
     •    Los bots funcionan en los ordenadores infectados formando una botnet.
     •    El bot master ordena a los bots, infectar más equipos para aumentar la red.




                   Figura 3.1: El atacante busca un primer equipo víctima




30       Autor: Adrián Belmonte Martín
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos




           Figura 3.2: Se ordena al ordenador semilla buscar nuevos objetivos




       Autor: Adrián Belmonte Martín                                                           31
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos




     Figura 3.3: Una vez encontrado la vulnerabilidad, se inyecta el código del bot




       Figura 3.4: Los ordenadores comprometidos se unen al canal especificado



32     Autor: Adrián Belmonte Martín
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos




          Figura 3.5: La botnet busca en Internet nuevos objetivos vulnerables




    Por lo tanto una red de bots o botnet se podría dividir en:


        1. El atacante: Este se conecta al servidor IRC a un canal definido por el y
            normalmente por medio de una contraseña, una vez allí, envía las ordenes
            que desee a la red de bots.
        2. Servidor IRC: Hace de “máscara” entre el atacante y la red de ordenadores
            bots.
        3. Red de ordenadores zombies comprometidos: Ejecutan las órdenes que el
            atacante les manda desde el canal IRC.




       Autor: Adrián Belmonte Martín                                                           33
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos




                   Figura 3.6: Estructura típica de una botnet C&C IRC


     Es, como vemos, una estructura muy sencilla, que permite al atacante tener el
     control absoluto de las máquinas zombies, la denominada C&C (Command and
     control, comando y control) y que hace muy difícil su detección, ya que no son los
     ordenadores comprometidos quienes reciben las órdenes directamente si no que todo
     el tráfico se realiza a través de un tercero, que es en este caso un servidor IRC.


     Ahora bien, que ocurriría si el ordenador comprometido como servidor de IRC no es
     accesible, el bot es eliminado, o si, simplemente cierran el acceso al canal de IRC
     público. ¿Es tan sencillo eliminar una botnet?
     Como refuerzo para las redes de bots, los creadores, comenzaron a utilizar
     redirección dinámica de DNS (DDNS, Dynamic Domanin Name Server), una
     solución sencilla y con la cual no se perdía la red de bots completa. Tan sólo tenían
     que cambiar la DNS del servidor IRC caído               por otra accesible y todos los
     ordenadores zombies sabrían a que IP conectarse de nuevo.
     Normalmente, para conseguir esto, se usa un DDNS gratuito, como DynDns.org o
     No-IP.com para apuntar hacia el servidor IRC con el canal que albergará a los bots.
     El servidor de DNS dinámico no proveerá servicio alguno para los ataques, tan sólo


34     Autor: Adrián Belmonte Martín
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos


    trabajará como punto de referencia, con lo cual no realiza ninguna actividad ilegal
    con tales servidores.




                                     !          "#                           $
                                                                     !     %"
                                                                           &
                                         '  !
            ' (                  &        (  '
                                                     ) "
       #                  '*               !       ) +                     $,      $        '
       $     $                 $ &                                                      -
            $                   $                    "
       !     -              '                            " $ -
                                                          .                        %
         - '                $ (                          %
          -+                         !                      "

                            Figura 3.7: Definición de DNS Dinámico


    Sin embargo, aun con todo esto, las redes de bots son bastante frágiles,
    principalmente por dos motivos:
        •   En la actualidad las compañías de DNS dinámicos, se han dado cuenta del
            alcance del problema y están intentando eliminar los subdominios que
            apunten a redes bots.[10]
        •   Falta de redundancia: si se descubre un servidor botnet o un canal IRC que
            albergue la red bot , todos los bots quedarán al descubierto, la desconexión
            del servidor o el cierre del canal, hará que caiga toda la estructura (al menos
            hasta que el controlador consiga una nueva dirección para el host)


    Como contrapartida, las nuevas versiones de programas para servidores de IRC
    incluyen entre sus características “enmascarar” otros servidores con lo cual si se
    descubre un host usado como servidor IRC y se consigue cerrar, la reconexión a un
    nuevo servidor IRC se haría de forma automática.




       Autor: Adrián Belmonte Martín                                                            35
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos


     3.1 Ciclos de un bot

     La actividad de una botnet se considera “cíclica” y se podría observar desde dos
     puntos de vista diferentes. Por un lado, se puede observar el ciclo de actividad del
     atacante (ciclo de la botnet):

     •    El ‘bot-herder’ configura los parámetros iniciales del bot, tal como los vectores.
          de infección, el payload, ocultamiento y los detalles de C&C.
     •    Procede al registro del DDNS.
     •    El ‘bot-herder’ lanza los bots-semilla. Comienzo de la infección.
     •    Fase de crecimiento- expansión-propagación.
     •    Pérdida de bots a otras botnets.
     •    Pico de máximo crecimiento.
     •    Abandono de la botnet.
     •    Da de baja el DDNS.




                       Baja del DDNS                            Configuración



     Abandono del botnet

                                                                      Registro del DDNS
  Perdida de bots



          Pico máximo de                                    Lanzamiento del bot
          crecimiento                                       semilla

                                   Crecimiento

           Figura 3.8: Ciclo de un botnet desde el punto de vista del atacante




36       Autor: Adrián Belmonte Martín
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos


Por otro el lado, el ciclo del equipo infectado (ciclo de un bot):

    •    Infección. Establecimiento del C&C
    •    Análisis de objetivos vulnerables para la expansión del bot
    •    Pérdida del bot
    •    Recuperación del bot
    •    Actualización con nuevo código del bot
    •    Espera


                                        Infección




                                   Espera de órdenes
  Pérdida del bot


                                                                  Análisis de otros
    Recuperación                                                  equipos/Uso del bot
                                   Actualización con
                                   nuevo código


                       Figura 3.9: Ciclo de un bot desde la víctima




    Una de las características más importante de los bots, es que pueden extenderse con
    facilidad a otros ordenadores. La planificación cuidadosa del proceso de infección
    ayuda a conseguir mejores resultados en menos tiempo.

    El uso de los canales IRC para la comunicación remota de redes botnets tiene las
    siguientes ventajas:

         •   Es flexible: Incluso los servidores públicos pueden usarse como medio de
             comunicación.
         •   Simple: Es posible controlar cientos e incluso miles de bots de forma
             simultanea y con pocos comandos.




        Autor: Adrián Belmonte Martín                                                          37
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos


        •    Fácil de usar: Se usan los comandos usuales del IRC, ampliamente
             conocidos.
        •    Anónima: Permite al atacante ocultar su identidad, usando técnicas
             sencillas como servidores proxies anónimos, cuentas shell remotas o
             spoofing de direcciones IP, por lo que es difícil dar caza al dueño de la red
             de bots.




3.2 Algunos usos de las botnet

Se va a ver aquí el uso que hacen los controladores de las redes bots. Aunque
hablaremos en profundidad y lo analizaremos más concienzudamente en capítulos
posteriores, servirá de introducción para incidir en la peligrosidad de estas redes y el
peligro que conlleva para la seguridad en los sistemas.

Una vez que el ‘bot herder’ se ha hecho control de una máquina (bot semilla), la botnet
crece de manera exponencial. El atacante, ordenará a este equipo seguir rastreando la
red en busca de equipos vulnerables, infectándolos, pudiendo llegar a montar redes de
miles de sistemas comprometidos bajo su control.

Aunque no es muy difícil imaginar que se podría realizar con una red de cientos o miles
de ordenadores comprometidos bajo el control total de una persona, desglosaremos aquí
algunas “aplicaciones”:

Ataques de denegación de servicio distribuido (DDOS, Distributed Denial of
Service)

Supongamos que tenemos una botnet de 100 equipos, una red bastante pequeña, cada
equipo tiene de media una conexión de subida de 128 kb/s, de la cual supongamos que
sólo usa la mitad para el ataque (debido a que se esté usando la conexión para el usuario
o por otros motivos) 128/2= 64kb/s*100= 6400kb/s, es decir, el equivalente a 8MB en
datos por segundo contra sólo un objetivo, todo esto con tan sólo 100 equipos y con una
conexión media-baja (lo normal en los equipos es 300kb/s de subida), sin duda capaz de
saturar a más de un host de Internet.



38     Autor: Adrián Belmonte Martín
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos


Muchas redes han sufrido estos ataques, los controladores de las bots en ocasiones
alquilan la red a mafias o a empresas para que ataquen empresas rivales.

Sniffing y keylogging

La observación de los datos que circulan por un equipo puede permitir la detección de
una cantidad increíble de información que puede ser usada para actos maliciosos futuros,
en este apartado se podría incluir, hábitos de usuario, análisis de paquetes TCP, robo de
claves de correo, paypal, robo de identidades, información de banca online, tarjetas de
crédito, licencias lícitas de software…

Spamming

Las botnets son el medio ideal para los spammers, se usan para intercambiar direcciones
de email recogidas para controlar oleadas de correo basura de la misma forma que se
hacen los ataques DDOS. Puede enviarse un sólo mensaje de correo basura a la botnet y
ser distribuida a través de bots que envían el correo basura. El spammer permanece
anónimo y toda la culpa será de los ordenadores afectados.

Sembrar Malware

Con tan sólo una orden del ‘bot herder’ todos los bots de una red pueden comenzar a
descargar de cualquier sitio de la red, programas malware o de publicidad “pop-up”

Crear servidores proxy

Bien para ocultarse para acceder a los servidores IRC o para redirigir ataques de spam y
malware

Creación de servidores Web

Con ficheros maliciosos, para ataques de phising o para almacenamiento de software
ilegal, el ordenador infectado se usará como almacén dinámico de software pirata,
pornografía, material ilegal, etc.…mientras que el legítimo usuario ignora que esto
sucede.




       Autor: Adrián Belmonte Martín                                                           39
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos



Capítulo 4
Fauna Bot
A la hora de abordar el estudio de los bots, contamos a nuestro favor con que muchos de
ellos tienen el código fuente disponible para su estudio, los más famosos incluso se
encuentran bajo licencia GPL, otros poseen su código descargable de Internet (pero sin
derecho de modificación),         hecho que motiva su enorme expansión y diferentes
versiones de cada uno.
No obstante, no todos los programas que hemos podido encontrar incluyen su código
fuente, hay algunos que traen tan sólo un ejecutable, lo que dificulta su análisis. Otros
incluso contienen falsos bots en archivos binarios que en realidad ejecutan puertas
traseras en el equipo, convirtiendo al supuesto atacante en víctima.
El hecho de tener el código fuente disponible es causa directa de que estos bots sean los
más frecuentes y de los que existen más variantes, también son los más desarrollados y
los que más funcionalidades poseen. Por tanto, estudiaremos en mayor medida estos
bots que normalmente forman las denominadas “familias”. Cada versión del bot en estas
familias posee unas características diferentes, nuevas mejoras, o simplemente son
personalizadas a gusto del “bot herder” que las compila y distribuye.
Hay que destacar que sólo vamos a estudiar una pequeña muestra representativa de
todos los bots existentes, sería imposible estudiarlas todas, ya que cada creador de bots
va modificando y ajustando los programas según las necesidades de cada momento, es
por tanto probable que si alguien continua este trabajo o lo empieza de nuevo, encuentre
disponible otras versiones de los bots con nuevas características o no encuentre algunas
a las que me refiero aquí.
Sin embargo, las principales funcionalidades están comentadas a fondo en este proyecto.


Se clasifican las características de los bots con la finalidad de poder contar con un
número suficiente de elementos como para estudiarlos a fondo en los siguientes puntos,
bien sea de manera conjunta (las de un mismo bot) o bien las singulares de un bot que
resulte interesante resaltar.
Para ello comenzaremos de un modo constructivo, desde los bots más básicos, iremos
avanzando hasta llegar a las grandes familias que poseen decenas de versiones y
características diferentes.


40     Autor: Adrián Belmonte Martín
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos




Se comienza el estudio con los primeros bots de IRC (no se pueden denominar aun de
comando y control) que empezaban a “esbozar” la estructura y características que
usarían posteriormente este tipo de bot C&C. Para ello, es importante definir cuales son
las diferencias entre uno y otro, ya que a veces es difícil determinar la línea que los
separa:


       Bot IRC                                     Bot C&C IRC


           •   No “infecta” el sistema: No se         •   Se instala sin consentimiento
               instala sin consentimiento del             del legitimo usuario
               usuario legitimo del equipo.           •   Implementa acciones dañinas
           •   No      implementa       acciones      •   Implementa acciones de robo
               dañinas contra el sistema en el            de información
               que esta instalado ni contra           •   Permite el control absoluto
               otros equipos de la red                    del equipo infectado
           •   No implementa características          •   Se    instala   usualmente      en
               de robo de información en el               ordenadores              remotos
               equipo que se instala                      domésticos.
           •   No      permite     el    control
               absoluto del equipo que es
               instalado
           •   Normalmente en ordenadores
               remotos     mediante      cuentas
               shell




                 Figura 4.1: Diferencias entre bot IRC y bot C&C IRC


Las diferencias entre uno y otro son meramente funcionales.




       Autor: Adrián Belmonte Martín                                                           41
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos


4.1 Los precursores. Bots IRC

Como antecedentes de los bots de comando y control, vamos a estudiar dos programas:


     4.1.1 Coromputer_dunno


Es un bot de IRC muy simplificado y bastante fácil de estudiar, nos ayudará a
comprender:
     •    Cómo se realiza y se mantiene la comunicación con el servidor IRC.
     •    Cómo se establecen los parámetros de configuración del programa.


Sus características:


     •    Escrito en C
     •    Para sistemas *NIX, fácilmente portable a Windows.
     •    Bastante más simple que otros programas bot IRC para el estudio de las
          comunicaciones con el servidor.


     La estructura de una conexión con el servidor IRC típica es la que se muestra en la
     figura:




42       Autor: Adrián Belmonte Martín
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos




                     Figura 4.2: Comunicación con el servidor IRC


Sin embargo, este bot más escueto en el manejo de las comunicaciones con el servidor,
ya que por ejemplo, no implementa acciones cuando recibe un mensaje privado.
Un ejemplo de cómo realizar dicha comunicación lo encontramos en las siguientes
líneas de código



         strcat(nick,NICK);            // Introduce en la variable la cadena NICK
         strcat(nick,"n");            // Añade retorno de carro
         send(sock,"USER X X X :Xn",14,0); //Lo envía al servidor
         recv(sock,buff,sizeof(buff),0);       //Recibe lo que el servidor responda
         memset((void *)&buff,0,sizeof(buff));         //Limpiamos buffer
         send(sock,nick,strlen(nick),0);
         recv(sock,buff,sizeof(buff),0);
         strcat(ping,&buff[6]);                //Enviamos el buffer
         strcat(ping,"rn");                  // Junto con la cadena PING

               Figura 4.3: Ejemplo de comunicación con el servidor IRC


Se trata del envío del comando NICK_USER y PING que corresponde con el primer y
segundo estado en la figura.




       Autor: Adrián Belmonte Martín                                                           43
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos


  Otro aspecto interesante a estudiar son las líneas de configuración del programa, en las
  que definimos el servidor IRC, los archivos temporales de las acciones que realicemos,
  así como el nick que queramos que tenga el bot:



#define SERV "Geneva.CH.EU.Undernet.org" /* Don'forget to put the IRC server with his Upper Cases */
                                                    t
#define FILLE "lala.txt"  /* temporary file where WHO list will be placed at the end it will be erased */
#define TIMEOUT 4 /* seconds */
#define LOG "log.txt"     /* log file where results will be writed(when you dont use verbose mode */
#define NICK "ZaIrcBot"      /* the nick of the bot */

                                 Figura 4.4: Configuración del bot


  Así pues, la simplicidad de este programa, nos sirve de lanzadera al estudio de otros
  bots, ya que nos ayuda a comprender fácilmente como funcionan los bots.



  4.1.2 Skydance


  El siguiente programa es un poco más complejo que el anterior y ya posee algunas
  características de bot de comando y control, sin embargo, no llega a entrar todavía en
  esta categoría.
  Se clasifica como un bot “dedicado”, está diseñado para cumplir una función especifica:
  Realizar ataques de denegación de servicio distribuidos (Consultar anexo) usando
  sockets RAW:


                                              Raw sockets

    Es un Socket que tiene la capacidad de comunicarse directamente con el hardware de
    comunicación del ordenador permitiendo al programa el acceso directo a todos los
    aspectos de los datos en el paquete.
    Raw Sockets permite al usuario personalizar varias características de estos paquetes,
    lo que incrementa la probabilidad de error, accidental o intencionadamente.


                               Figura 4.5: definición de Socket Raw




  44      Autor: Adrián Belmonte Martín
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos


Entre sus características se encuentran:
    •    Usa el protocolo ICMP
    •    Incluye entre sus ataques SYN-ACK Flood y Simple ping flood attack
    •    No aparece cuando se realiza un netstat (por el uso del ICMP)
    •    No se detecta cuando se realiza un análisis de puertos (Usa RAW)
    •    Permite spoofing de IP en Win2k/XP


Actualmente se trata de un bot ya bastante obsoleto, las características de ocultación
fueron rápidamente subsanadas y no funcionan actualmente, aun así, nos es útil para
observar en este tipo de programas una evolución en cuanto la utilidad de los bots de
IRC para otro tipo de fines.


4.2 Los primeros bots C&C

Avanzando un poco en la complejidad de los programas, nos encontramos una gran
variedad de bots más enfocados al “control simple”, suelen ser poco complejos, con tan
sólo unos pocos comandos, que sin embargo, confieren un gran potencial de acción.


    4.2.1 Microbot


Posee tan sólo cuatro comandos:


    •    .login <password> - Registro como dueño del bot
    •    .die – Desconecta el bot del IRC y mata el proceso
    •    .raw <commands> - Envía un texto RAW al servidor IRC
    •    .run <file> - Descarga y ejecuta un archivo desde una Url o un comando DOS


Características:


            •   Empaquetado UPX
            •   Pequeño tamaño: 14 Kb
            •   Posibilidad de ejecutar y descargar programas
            •   Para entornos Windows


        Autor: Adrián Belmonte Martín                                                          45
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos




                                          UPX

 UPX (Ultimate Packer for eXecutables) es un empaquetador de ejecutables gratuito,
 portable y de alto rendimiento. UPX soporta diferentes formatos de ejecutables, incluyendo
 programas de Windows 95/98/ME/NT/2000/XP y DLLs, programas de DOS, Linux, etc.

     •     Excelente relación de compresión: típicamente comprime mejor que el
           WinZip/zip/gzip.
     •     Descompresión muy rápida: ~10 MB/s en una Pentium 133, ~200 MB/s en un
           Athlon XP 2000+.
     •     Universal: UPX puede empaquetar muchos formatos de ejecutables.
     •     Portable
     •     Libre: UPX es distribuido bajo la GNU General Public License. [11]

                               Figura 4.6: Definición de UPX


Sin embargo, a pesar de su corto número de instrucciones, puede volverse un arma
extremadamente potente: Su pequeño tamaño y la posibilidad de descargar y ejecutar
instrucciones desde una dirección, permitiría a un atacante con la suficiente experiencia,
tener un control absoluto de la máquina.
Este bot no provee de su código fuente, toda la configuración se realiza a través de un
archivo ejecutable de configuración:




46       Autor: Adrián Belmonte Martín
Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos




                         Figura 4.7: Configuración de Microbot


    4.2.2 G-spot
    Incluye un archivo de configuración en modo grafico y bastante intuitivo, sin
    embargo, tampoco provee de código fuente.




                                 Figura 4.8: GUI de Gspot




       Autor: Adrián Belmonte Martín                                                           47
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos

Mais conteúdo relacionado

Mais procurados

Mais procurados (7)

Pdf spanish 16317 scanner actrom
Pdf spanish 16317 scanner actromPdf spanish 16317 scanner actrom
Pdf spanish 16317 scanner actrom
 
Mantenimiento de computadores
Mantenimiento de computadoresMantenimiento de computadores
Mantenimiento de computadores
 
manual 11
manual 11manual 11
manual 11
 
Programacionbat
ProgramacionbatProgramacionbat
Programacionbat
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Ofimatica 2
Ofimatica 2 Ofimatica 2
Ofimatica 2
 
Epo 400 installguide_es-es
Epo 400 installguide_es-esEpo 400 installguide_es-es
Epo 400 installguide_es-es
 

Destaque

Epistemología programa 2012
Epistemología  programa 2012Epistemología  programa 2012
Epistemología programa 2012HAV
 
A bit of viral protection is worth a megabyte of cure
A bit of viral protection is worth a megabyte of cureA bit of viral protection is worth a megabyte of cure
A bit of viral protection is worth a megabyte of cureUltraUploader
 
Cross "Máquinas Simples"
Cross "Máquinas Simples"Cross "Máquinas Simples"
Cross "Máquinas Simples"Bourse
 
Bases liceo municipal polivalente
Bases liceo municipal polivalenteBases liceo municipal polivalente
Bases liceo municipal polivalenteInstituto Imach
 
Word nivell migcuaderno d epráctica MS Word 2013
Word nivell migcuaderno d epráctica MS Word 2013Word nivell migcuaderno d epráctica MS Word 2013
Word nivell migcuaderno d epráctica MS Word 2013elopezvg15
 
Presentación club de artes marciales Un solo camino
Presentación club de artes marciales Un solo caminoPresentación club de artes marciales Un solo camino
Presentación club de artes marciales Un solo caminounsolocamino
 
KPR AVD prezentacija (5)
KPR AVD prezentacija (5)KPR AVD prezentacija (5)
KPR AVD prezentacija (5)Jurica Toth
 
First 2013 semergen 2
First 2013 semergen 2First 2013 semergen 2
First 2013 semergen 2aneronda
 
Cinco S Kaisser
Cinco S KaisserCinco S Kaisser
Cinco S Kaissersaskia
 
Monitoreo Estrategico sobre las Matrices de Evaluacion Foda, Mic Mac y Causa...
Monitoreo Estrategico sobre las Matrices de  Evaluacion Foda, Mic Mac y Causa...Monitoreo Estrategico sobre las Matrices de  Evaluacion Foda, Mic Mac y Causa...
Monitoreo Estrategico sobre las Matrices de Evaluacion Foda, Mic Mac y Causa...Lucy Bellorin
 

Destaque (19)

Epistemología programa 2012
Epistemología  programa 2012Epistemología  programa 2012
Epistemología programa 2012
 
Universalleuchte Sistronic Plus Batz Leuchtsysteme
Universalleuchte Sistronic Plus Batz LeuchtsystemeUniversalleuchte Sistronic Plus Batz Leuchtsysteme
Universalleuchte Sistronic Plus Batz Leuchtsysteme
 
A bit of viral protection is worth a megabyte of cure
A bit of viral protection is worth a megabyte of cureA bit of viral protection is worth a megabyte of cure
A bit of viral protection is worth a megabyte of cure
 
borsen_print
borsen_printborsen_print
borsen_print
 
Cross "Máquinas Simples"
Cross "Máquinas Simples"Cross "Máquinas Simples"
Cross "Máquinas Simples"
 
Nota_Sectorial_Aceite_de_oliva_Hungria_2012
Nota_Sectorial_Aceite_de_oliva_Hungria_2012Nota_Sectorial_Aceite_de_oliva_Hungria_2012
Nota_Sectorial_Aceite_de_oliva_Hungria_2012
 
Bases liceo municipal polivalente
Bases liceo municipal polivalenteBases liceo municipal polivalente
Bases liceo municipal polivalente
 
Nueva presentacion plus vo ip
Nueva presentacion plus vo ipNueva presentacion plus vo ip
Nueva presentacion plus vo ip
 
Site builder pymedia
Site builder pymediaSite builder pymedia
Site builder pymedia
 
Malware
MalwareMalware
Malware
 
Word nivell migcuaderno d epráctica MS Word 2013
Word nivell migcuaderno d epráctica MS Word 2013Word nivell migcuaderno d epráctica MS Word 2013
Word nivell migcuaderno d epráctica MS Word 2013
 
Presentación club de artes marciales Un solo camino
Presentación club de artes marciales Un solo caminoPresentación club de artes marciales Un solo camino
Presentación club de artes marciales Un solo camino
 
KPR AVD prezentacija (5)
KPR AVD prezentacija (5)KPR AVD prezentacija (5)
KPR AVD prezentacija (5)
 
Trabajo terminado (1)
Trabajo terminado (1)Trabajo terminado (1)
Trabajo terminado (1)
 
First 2013 semergen 2
First 2013 semergen 2First 2013 semergen 2
First 2013 semergen 2
 
Cinco S Kaisser
Cinco S KaisserCinco S Kaisser
Cinco S Kaisser
 
Monitoreo Estrategico sobre las Matrices de Evaluacion Foda, Mic Mac y Causa...
Monitoreo Estrategico sobre las Matrices de  Evaluacion Foda, Mic Mac y Causa...Monitoreo Estrategico sobre las Matrices de  Evaluacion Foda, Mic Mac y Causa...
Monitoreo Estrategico sobre las Matrices de Evaluacion Foda, Mic Mac y Causa...
 
Incavisa
IncavisaIncavisa
Incavisa
 
HYDROFIBER
HYDROFIBERHYDROFIBER
HYDROFIBER
 

Semelhante a Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos

Su se linux-adminguide-9.2-es
Su se linux-adminguide-9.2-esSu se linux-adminguide-9.2-es
Su se linux-adminguide-9.2-essherlock72
 
pfc_jose_ignacio_perez_2007
pfc_jose_ignacio_perez_2007pfc_jose_ignacio_perez_2007
pfc_jose_ignacio_perez_2007Jos P
 
Introduccion a nodejs
Introduccion a nodejs Introduccion a nodejs
Introduccion a nodejs Erik Gur
 
Introduccion a nodejs_a_traves_de_koans_ebook
Introduccion a nodejs_a_traves_de_koans_ebookIntroduccion a nodejs_a_traves_de_koans_ebook
Introduccion a nodejs_a_traves_de_koans_ebookJose Luis Fernandez
 
Carrillo juan2015.pdf
Carrillo juan2015.pdfCarrillo juan2015.pdf
Carrillo juan2015.pdfisobella
 
Manual de Exomate y servidores 1
Manual de Exomate y servidores 1Manual de Exomate y servidores 1
Manual de Exomate y servidores 1Meli Sanchez
 
Cluster Spark - Cassandra sobre Raspberry Pi-3
Cluster Spark  - Cassandra sobre Raspberry Pi-3 Cluster Spark  - Cassandra sobre Raspberry Pi-3
Cluster Spark - Cassandra sobre Raspberry Pi-3 Eduardo Romero López
 
Electrónica digital: DIseño e implementacion de la plataforma Boole-Weblab-De...
Electrónica digital: DIseño e implementacion de la plataforma Boole-Weblab-De...Electrónica digital: DIseño e implementacion de la plataforma Boole-Weblab-De...
Electrónica digital: DIseño e implementacion de la plataforma Boole-Weblab-De...SANTIAGO PABLO ALBERTO
 
Guia de conceptos basicos
Guia de conceptos basicosGuia de conceptos basicos
Guia de conceptos basicoshfernandez1988
 
Unity v41 manual de referencia
Unity v41   manual de referenciaUnity v41   manual de referencia
Unity v41 manual de referenciaJosé Bernabé
 
Epo 450 installguide_es-es
Epo 450 installguide_es-esEpo 450 installguide_es-es
Epo 450 installguide_es-esPablo
 
Trabajo arquitectónico informático
Trabajo arquitectónico informáticoTrabajo arquitectónico informático
Trabajo arquitectónico informáticoCristinayosoyguay
 
Manual smartsketch
Manual smartsketchManual smartsketch
Manual smartsketchSykrayo
 
Guia paso a paso exo
Guia paso a paso exoGuia paso a paso exo
Guia paso a paso exoMeli Sanchez
 

Semelhante a Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos (20)

Su se linux-adminguide-9.2-es
Su se linux-adminguide-9.2-esSu se linux-adminguide-9.2-es
Su se linux-adminguide-9.2-es
 
371 recomendaciones
371 recomendaciones371 recomendaciones
371 recomendaciones
 
371 recomendaciones
371 recomendaciones371 recomendaciones
371 recomendaciones
 
pfc_jose_ignacio_perez_2007
pfc_jose_ignacio_perez_2007pfc_jose_ignacio_perez_2007
pfc_jose_ignacio_perez_2007
 
Introduccion a nodejs
Introduccion a nodejs Introduccion a nodejs
Introduccion a nodejs
 
Introduccion a nodejs_a_traves_de_koans_ebook
Introduccion a nodejs_a_traves_de_koans_ebookIntroduccion a nodejs_a_traves_de_koans_ebook
Introduccion a nodejs_a_traves_de_koans_ebook
 
Carrillo juan2015.pdf
Carrillo juan2015.pdfCarrillo juan2015.pdf
Carrillo juan2015.pdf
 
Manual de Exomate y servidores 1
Manual de Exomate y servidores 1Manual de Exomate y servidores 1
Manual de Exomate y servidores 1
 
Cluster Spark - Cassandra sobre Raspberry Pi-3
Cluster Spark  - Cassandra sobre Raspberry Pi-3 Cluster Spark  - Cassandra sobre Raspberry Pi-3
Cluster Spark - Cassandra sobre Raspberry Pi-3
 
PLC
PLC PLC
PLC
 
Electrónica digital: DIseño e implementacion de la plataforma Boole-Weblab-De...
Electrónica digital: DIseño e implementacion de la plataforma Boole-Weblab-De...Electrónica digital: DIseño e implementacion de la plataforma Boole-Weblab-De...
Electrónica digital: DIseño e implementacion de la plataforma Boole-Weblab-De...
 
Guia de conceptos basicos
Guia de conceptos basicosGuia de conceptos basicos
Guia de conceptos basicos
 
Unity v41 manual de referencia
Unity v41   manual de referenciaUnity v41   manual de referencia
Unity v41 manual de referencia
 
Epo 450 installguide_es-es
Epo 450 installguide_es-esEpo 450 installguide_es-es
Epo 450 installguide_es-es
 
Programaciongnulinux
ProgramaciongnulinuxProgramaciongnulinux
Programaciongnulinux
 
Trabajo arquitectónico informático
Trabajo arquitectónico informáticoTrabajo arquitectónico informático
Trabajo arquitectónico informático
 
Manual smartsketch
Manual smartsketchManual smartsketch
Manual smartsketch
 
Guia paso a paso exo
Guia paso a paso exoGuia paso a paso exo
Guia paso a paso exo
 
Tfm javier eduardo_carrillo_plaza
Tfm javier eduardo_carrillo_plazaTfm javier eduardo_carrillo_plaza
Tfm javier eduardo_carrillo_plaza
 
Mantenimiento win7
Mantenimiento win7Mantenimiento win7
Mantenimiento win7
 

Último

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 

Último (13)

guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 

Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos

  • 1. ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos Realizado por Adrián Belmonte Martín Para la obtención del título de INGENIERO TÉCNICO EN INFORMÁTICA DE SISTEMAS Dirigido por Sergio Pozo Hidalgo Realizado en el departamento de LENGUAJES Y SISTEMAS INFORMÁTICOS Convocatoria de Marzo Curso 2006-07
  • 2. Índice general 1. Introducción y conceptos previos……………………………………………...1 1.1 Introducción………………………………………………………………………………1 1.2 Definiciones y clasificación………………………………………………………………3 1.3 Objetivos………………………………………………………………………………….6 1.4 Justificación………………………………………………………………………………7 2. Historia……………………………………………………………………………………….13 2.1 Virus y gusanos: Los antecedentes……………………………………………………16 2.2 Bots de IRC. Antecedentes…………………………………………………………….28 3. Funcionamiento y estructura…………………………………………………30 3.1 Ciclos de un bot………………………………………………………………………….36 3.2 Algunos usos de las botnet……………………………………………………………...38 4. Fauna Bot…………………………………………………………………...…40 4.1 Los precursores. Bots IRC…………………………………………………………...…42 4.1.1 Coromputer dunno……………………………………………………………42 4.1.2 Skydance……………………………………………………………………...44 4.2 Los primeros bots C&C………………………………………………………………...45 4.2.1 Microbot…………………………………………………………………...…45 4.2.2 G-spot…………………………………………………………………...……47 4.2.3 Leechbot 2.0 VB……………………………………………………...………50 4.2.4 Data Spy Network (DSNX)……………………………………………..……50 4.2.5 Omega Project…………………………………………………………..……61 5. Las grandes Familias Bot…………………………………………………………..……66 5.1 Sdbot……………………………………………………………………………..………67 5.1.1 Versión 0.4……………………………………………………………………67 5.1.2 Versión 0.5……………………………………………………………………69 5.1.3 G-sys 3.0……………………………………………………………...………71 5.2 Spybot……………………………………………………………………………….……72 5.2.1 Versión 1.1……………………………………………………………………72 5.2.2 Versión 1.2……………………………………………………………………74 5.2.3 Versión 1.3……………………………………………………………………75 5.3 Rbot /rxbot/rx……………………………………………………………………………76 5.3.1 Los comandos……………………………………………………...…………80 5.4 Phatbot/Agobot…………………………………………………………………….……80 5.5 GT Bot (Global Threat bot) …………………………………………………....………83
  • 3. 6. Montaje de una botnet……………………………………………………………………86 6.1 Configuración del bot…………………………………………………………...………86 6.2 Proceso de expansión……………………………………………………………………95 6.2.1 Infectando nuestro primer sistema. El bot semilla……………………………96 6.2.2 Proceso de expansion a otros sistemas…………………………...…………..97 6.3 Los “Spreaders…………………………………………………………………………102 6.3.1 NetBios spreader………………………………………………….…………102 6.3.2 SubSeven Spreader…………………………………………….……………107 6.3.3 Bagle spreader………………………………………………………………111 6.3.4 MyDoom spreader…………………………………………..………………113 6.3.5 Lsass spreader………………………………………………….……………113 6.3.6 Sasser Spreader……………………………………………….……..………115 6.3.7 Optix Spreader………………………………………………………………117 6.3.8 Dcom spreader………………………………………………………………120 6.3.9 Upnp spreader………………………………………………….……………123 6.3.10 MSSQL spreader……………………………………………...…………………….124 6.3.11 WebDav spreader……………………………………………….…………125 6.4 Ordenando el análisis……………………………………………………..….………127 6.5 Proceso de infección en el sistema comprometido ………………………….………133 6.6 Protección del bot………………………………………………………..……………138 7. Explotación del sistema…………………………………………………………………150 7.1 KeyLogging…………………………………………………………………….………150 7.1.1 Envío de la información a un canal de IRC especificado…………...………151 7.1.2 Envío de información a un archivo local de la máquina comprometida…....153 7.2 Sniffing…………………………………………………………………………………158 7.2.1 Implementación en Rbot………………………………………….…………159 7.2.2 Implementación en Phatbot/Agobot…………………………...……………161 7.3 Ataques de Denegación de Servicio …………………………………………………165 7.4 Spam …………………………………………………………………..………………173 7.5 Funciones de proxy, pasarela y servidor………………………………….…………175 7.6 Fraude por clic…………………………………………………………………………179 7.7 Descargas y mejoras………………………………………………………...…………181 8. Técnicas de protección ……………………………………………………….…………185 8.1 Prevención de equipos…………………………………………………………………185 8.2 Detección de las comunicaciones…………………………………………..………….186
  • 4. 8.3 Detección de características secundarias………………………………..……………187 8.4 Herramientas de detección……………………………………………………………189 8.4.1 Herramientas de análisis del sistema ……………………….………………189 8.4.2 Herramientas basadas en Honeypots…………………..……………………194 8.4.3 Herramientas de análisis de ficheros capturados. Proceso de captura de una botnet……………………………………………………..…………………197 9. Mercado y futruro de las redes bots…………………………..……………202 9.1 Mercado de las redes bot………………………………………………………………202 9.2 Futuro de las redes bot………………………………………………………...………207 10. Conclusiones………………………………………………………………………..………210 Anexo A: Comandos de SDbot…………………………………………………………………....213 Anexo B: Comandos de Rbot……………………………………………………………………..219 Anexo C: Comandos de Phatbot/Agobot…………………………………………………………222 Anexo D: Desbordamiento de buffer…………………………………………………..…………232 Anexo E: Ataque de Denegación de Servicio……………………………………………….……236 Anexo F: Diccionario de términos…………………………………………………………..…….239 Anexo G: Bibliografia……………………………………………………………………..……….243
  • 5. Índice de figuras Figura 1.1 Topología centralizada Figura 1.2: Topología p2p Figura 1.3: Responsabilidades y técnicas de actuación de Shadowserver Figura 1.4: Crecimiento del tamaño de las botnets informadas NOV-FEB 2007 Figura 1.5: Crecimiento del número de botnets informadas Nov-Feb 2007 Figura 2.1: Evolución de los primeros ataques a redes 1980-2000 Figura 2.2: Definición de Rootkit Figura 2.3: Eventos relacionados con gusanos y virus Figura 2.4: Descripción del funcionamiento del gusano blaster Figura 2.5: Captura del código del blaster Figura 2.6: Mensaje de infección del gusano Blaster Figura 2.7: Funcionamiento del gusano MyDoom Figura 2.8: Infección por el gusano Sasser Figura 2.9: Cronología de la nueva generación de gusanos. 1-marzo 1999 /30 abril 2004 Figura 3.1: El atacante busca un primer equipo víctima Figura 3.2: Se ordena al ordenador semilla buscar nuevos objetivos Figura 3.3: Una vez encontrado la vulnerabilidad, se inyecta el código del bot Figura 3.4: Los ordenadores comprometidos se unen al canal especificado Figura 3.5: La botnet busca en Internet nuevos objetivos vulnerables Figura 3.6: Estructura típica de una botnet C&C IRC Figura 3.7: Definición de DNS Dinámico Figura 3.8: Ciclo de un botnet desde el punto de vista del atacante Figura 3.9: Ciclo de un bot desde la víctima Figura 4.1: Diferencias entre bot IRC y bot C&C IRC Figura 4.2: Comunicación con el servidor IRC Figura 4.3: Ejemplo de comunicación con el servidor IRC Figura 4.4: Configuración del bot Figura 4.5: definición de Socket Raw Figura 4.6: Definición de UPX Figura 4.7: Configuración de Microbot Figura 4.8: GUI de Gspot Figura 4.9: Comandos G-spot Figura 4.10: Gspot en acción Figura 4.11: GUI Del bot Data Spy Network 0.4b Figura 4.12: Comandos de DSNX Figura 4.13: Diagrama de clases Figura 4.14: Comentario del autor del archivo Readme.txt del bot DSNX Figura 4.15: GUI del bot DSN versión 0.5b
  • 6. Figura 4.16: Nuevos comandos DSN Figurra 4.17: Plugin DDOS para DSNX Figura 4.18: Plugin HTTP para DSNX Figura 4.19: Plugin de análisis de puertos para DSNX Figura 4.20: Comandos del bot Omega Figura 5.1: Configuración del bot sdbot Figura 5.2: Nuevos comandos versión 0.5 Figura 5.3: Comandos Spybot Figura 5.4: Comandos Spybot versión 1.2 Figura 5.5: Editor de configuración de Phatbot Figura 5.6: Evolución temporal de las familias Figura 5.7: Directorio que contiene al bot Figura 6.1: Ejemplo de configuración del bot Coromputer dunno Figura 6.2: Archivo de configuración de Rbot Figura 6.3: Ejemplo de archivo de cabecera externo del bot Leechbot Figura 6.4: Archivo de configuración del bot Omega II Figura 6.5: GUI del bot Dataspy Network Figura 6.6: GUI del bot G-spot Figura 6.7: Configuración del bot microbot Figura 6.8: GUI del bot Phatbot Figura 6.9: RPC de Microsoft Figura 6.10: Diagrama de flujo de la función nb_net_exec Figura 6.11: Codigo del modulo nb_net_upload Figura 6.12: Función nb_port_scan Figura 6.13: Diagrama de flujo de la función nb_net_connect Figura 6.14: Diagrama de flujo de la función nb_spread Figura 6.15: Clase CScannerNetBios del bot Agobot Figura 6.16: Aprovechando el sub7 Figura 6.17: Diagrama de flujo Sub7 Figura 6.18: Código fuente del programa para explotar el gusano bagle Figura 6.19: Diagrama de flujo del módulo bagle Figura 6.20: Fragmento de codigo de las cadenas a inyectar Figura 6.21: Funcionamiento del gusano Sasser Figura 6.22: Diagrama de flujo de la explotación del gusano sasser Figura 6.23: Código del programa de explotación del gusano Optix Figura 6.24: Código del shellcode Dcom2 Figura 6.25: Detectando la versión del SO Figura 6.26: Diagrama de flujo del programa de explotación de la vulnerabilidad DCOM Figura 6.27: Extracto del código fuente del programa Figura 6.28: Extracto del código fuente del programa
  • 7. Figura 6.29: cuerpo de petición para WEBDAV Figura 6.30: código de la explotación del sistema Figura 6.31: Comandos para el análisis de equipos Figura 6.32: Captura del bot en acción Figura 6.33: Código UML de Phatbot Figura 6.34: Función Doinfect () Figura 6.35: Explicación de algunas funciones útiles Figura 6.36: Fichero startup.c Figura 6.37: Fragmento de WinMain del bot spybot Figura 6.38: Fragmento del archivo de configuración de sdbot Figura 6.39: Fragmento de código con las claves del registro Figura 6.40: Código UML del instalador en el inicio de Phatbot Figura 6.41: Estructura de entada de procesos Figura 6.42: Funciones de utilidad en el manejo de procesos Figura 6.43: Función killav Figura 6.44: Funciones útiles en el manejo de servicios Figura 6.45: Código fuente de killsvc Figura 6.46: Llamada a la comparación con la lista Figura 6.47: Bloqueando la resolución de direcciones Figura 6.48: Entradas en el registro de virus conocidos Figura 6.49: Función removevirus Figura 7.1: Función del capturador de teclas Figura 7.2: Función sendkeys del bot spybot Figura 7.3: Función StartLogging del bot DSN Figura 7.4: Función JournelLogProc Figura 7.5: Hilo de capturas de teclas Figura 7.6: Función SaveKeys del Rbot Figura 7.7: estructuras de la función Psniff Figura 7.8: Declaración de las variables para el sniffer Figura 7.9: Comparación del paquete con las variables definidas Figura 7.10: Función que compara si el tráfico capturado es sospechoso de ser bot Figura 7.11: Función que compara si el tráfico capturado es sospechoso de ser IRC Figura 7.12: Función que compara si el tráfico capturado es sospechoso de ser FTP Figura 7.13: Función que compara si el tráfico capturado es sospechoso de ser HTTP Figura 7.14: Función que compara si el tráfico capturado es sospechoso de usar un programa vulnerable Figura 7.15: Segmento de la función en donde se realiza la comparación de los paquetes Figura 7.16: Bot Capturando tráfico Figura 7.17: Ataque por DDOS Figura 7.18: Ataque por denegación de servicio mediante una botnet Figura 7.19: Definición de IP Spoofing
  • 8. Figura 7.20: Función SYN Flood Figura 7.21: Diagrama UML de las funciones DDOS de Agobot Figura 7.22: Funcionamiento del spam Figura 7.23: Definición de Proxy Figura 7.24: Clase PortRedirect del bot DSN Figura 7.25: Lanzador del servidor http Figura 7.26: Fraude por clic Figura 7.27: Petición http para visitar un sitio determinado Figura 7.28: Estructura de la información de la descarga Figura 7.29: Conexión con la URL remota Figura 7.30: Copiando el archivo Figura 7.31: Ejecución del archivo remotamente Figura 7.32: Desinstalación del programa anterior Figura 8.1: Captura de las comunicaciones Figura 8.2: Secheck Figura 8.3: Secheck analizando un sistema Windows Figura 8.4: HijackThis Figura 8.5: Archivo de log de Hijackthis Figura 8.6: Multipot Figura 8.7: Nepenthes Figura 8.8: Archivo generado por RegShot con los cambios realizados en el sistema Figura 8.9: Ejemplo de la captura del tráfico Figura 8.10: Información sensible mostrada por el programa Figura 8.11: LorPE Figura 8.12: Desensamblador IDA Figura 9.1: Ubicaciones de los servidores C&C Figura 9.2: Entrevista publicada en Computer Sweden traducido por hispasec Figura 9.3: Uso de Web para el comando y control Figura 9.4: Ventana de comandos del C&C vía Web
  • 9. Índice de Tablas Tabla 1.1: Topologías de redes bot Tabla 4.1: Características de los primeros bots C&C Tabla 5.1: Características de las diferentes familias Tabla 6.1: Puertos de las vulnerabilidades más usadas Tabla 6.2: Características de la explotación en los distintos bots Tabla 7.1: Resumen de características de explotación de los bots
  • 10. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos Capítulo 1 Introducción y conceptos previos 1.1 Introducción En su sentido más amplio un bot (diminutivo de robot que a su vez deriva de la palabra Checoslovaca “robota” que significa trabajo) es un programa informático que realiza diversas funciones imitando a los humanos: Minería de datos en Internet, funciones rutinarias de edición de páginas Web, arañas de búsqueda, cartografiar sitios Web… En el mundo de los videojuegos y los juegos en on-line se conocen a los bots como programas que son capaces de jugar por si mismos (Aquí denominados borgs), véase el caso de juegos como Half-life o Quake en los que eran utilizados para sustituir a contrincantes humanos. Los bots para juegos CRPG (computer role-playing games) son particularmente conocidos, en juegos como World Of Warcraft o City of Heroes, es posible dejar un bot en línea mientras el usuario no se encuentra conectado, incluso pudiendo realizar algunas tareas de manera automática y subir de nivel. En sitios de conversión en línea (IRC) algunos bots fueron creados para responder de forma automática a eventos externos concretos, de tal modo se puede intentar “simular” conversaciones de una persona real, también son usados por los operadores del servidor para realizar algunas operaciones de control de los canales, ayuda a los usuarios e incluso últimamente, de publicidad. Otros bots, por el contrario, están destinados a propósitos menos lícitos, como abrir cuentas en sitios de correo gratuitos, para evitar esto, los administradores optan a menudo por añadir un paso adicional como escribir una palabra en formato gráfico que el usuario debe introducir, algo difícil de interpretar para un bot, ya que estos no reconocen el texto contenido en una imagen. Es importante distinguir que bot es una definición funcional, y no hace diferencias en cuanto a su implementación. Un bot puede estar diseñado en cualquier lenguaje de programación, funcionar en un servidor o en un cliente, ser un agente móvil, etc. [2] Autor: Adrián Belmonte Martín 1
  • 11. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos En este proyecto vamos a centrarnos en un tipo de bot que está diseñado para tomar el control de las máquinas a las que ataca y que es capaz en algunos casos de propagarse automáticamente usando vulnerabilidades del sistema afectado. Estos bots forman una red de máquinas comprometidas (botnet) bajo la dirección única del creador de dicha red. “En las seis horas que pasaron desde que se desplomó en la cama hasta que salió de ella, el hacker de 21 años ha comprometido cerca de 2000 ordenadores personales en todo el mundo. Dormía mientras su programa barría Internet en búsqueda de ordenadores vulnerables, infectándolos con virus que los volvía su esclavo. Ahora, con el humo de su primer Malboro del día, anda por la sala de estar de la casa de sus padres. El hacker, conocido en la red como 0x80, se sienta en un sofá de cuero, pone su portátil en la mesa y teclea una serie de comando. Con esta orden, los ordenadores infectados, empezaran a bajar e instalar software que bombardeará a sus usuarios con anuncios de sitios Web pornográficos. Tras la instalación, 0x80 ordenará a las máquinas buscar en Internet nuevas víctimas potenciales. El joven hacker [...] da una profunda calada y se recuesta en el sofá para exhalarlo. Sonríe. Es su día de trabajo, terminado en menos de dos minutos. En dos semanas recibirá un cheque por valor de 300 dólares de una de las compañías de marketing on-line que le paga por sus servicios.” Fragmento traducido del artículo: Invasion of the Computer Snatchers por Brian Kreb. Publicado en The Washington post el Domingo 19 de Febrero del 2006 Página w10. 2 Autor: Adrián Belmonte Martín
  • 12. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos 1.2 Definiciones y clasificación Así pues, definimos: Bot: Se generaliza a programas sirvientes que realizan determinadas acciones a base de comandos emitidos desde el controlador. El tipo de bot que estudiaremos aquí es el denominado bot C&C (Command and Control, traducido: comando y control) cada vez que nos refiramos de ahora en adelante al término bot, estaremos refiriéndonos inequívocamente a este. Si hablamos de otro tipo, lo indicaremos explícitamente. Botnet: Su nombre se generaliza a partir del 2003 y hace referencia a redes de equipos comprometidos (bots) controlados desde un equipo central, empleando diversos protocolos. Bot herder o bot master: Es el “dueño” de la red de bots. Máquina zombie (drone): Con anterioridad al 2000 se solía usar este término para definir una máquina comprometida usada para ataques de denegación de servicio distribuida. En la actualidad podemos ampliar el término a máquina comprometida con un bot bajo las órdenes del bot herder o bot master Existen varios tipos de bots de comando y control (C&C), y se suelen clasificar según su topología [3]: • Centralizada: Se caracteriza por un punto central que comunica los mensajes entre los clientes. Al ser un sólo sistema único, los mensajes suelen tener una latencia baja, ya que la dirección entre todos los puntos es conocida y bien definida. Desde la perspectiva del atacante este sistema tiene dos puntos débiles: 1. Son fáciles de detectar si hay demasiados clientes conectados al mismo punto 2. Si se desconecta el punto central, se desconecta el sistema completo. Autor: Adrián Belmonte Martín 3
  • 13. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos Figura 1.1 Topología centralizada • Punto a punto (P2P): Este sistema está empezando a ser implantado en las botnets más avanzadas, posee importantes ventajas sobre las redes centralizadas. En primer lugar, es un sistema mucho más robusto. La desconexión de un bot no significa necesariamente la pérdida de la botnet completa, por el contrario el diseño de los sistemas p2p son más complejos y no existen garantías de entrega de mensajes o latencia. Figura 1.2: Topología p2p 4 Autor: Adrián Belmonte Martín
  • 14. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos • Aleatoria: Un sistema de comunicaciones podría estar basado en el principio de que ningún bot sabe nada sobre otro bot. En esta topología un bot o su controlador que quisiera enviar un mensaje, lo cifraría, analizaría la red en búsqueda de otro equipo infectado y enviaría el mensaje cuando lo detecte. Un sistema como este, es relativamente fácil de implementar y la detección de un bot nunca pondría en peligro toda la botnet, sin embargo, la latencia de los mensajes será muy alta y sin garantías de entrega. Topología Complejidad en Facilidad de Latencia de Supervivencia el diseño detección mensajes Centralizada BAJA MEDIA BAJA BAJA P2P MEDIA BAJA MEDIA MEDIA Aleatoria BAJA ALTA ALTA ALTA Tabla 1.1: Topologías de redes bot De manera un poco más abstracta también se clasifica según la cantidad de información que se suministra: por un lado, tenemos la topología central, en la que el servidor sabe todo acerca de todos los clientes mientras que en el otro extremo nos encontramos con la topología aleatoria, en la que no sabemos nada de ningún cliente. Cada topología tiene sus ventajas e inconvenientes, y sin duda, la topología óptima se encuentra en algún sitio entre los extremos. Entre todas estas opciones, vamos a focalizar el estudio en los bots de comando y control bajo protocolo IRC, que estaría dentro de la topología centralizada. Existen varios motivos para iniciar el estudio de los bots en esta categoría: • Simplicidad: Es más sencillo que estudiar que otros protocolos como p2p y mucho más clarificador. Además es un protocolo muy extendido y conocido. Autor: Adrián Belmonte Martín 5
  • 15. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos • Fueron los primeros en aparecer: Los primeros bots se programaron pensando exclusivamente en esta topología, por lo tanto los programas están más depurados y probados. • Poseen más código fuente para su estudio: Las fuentes con bots programados para esta topología son superiores a cualquier otra topología existente. • Contamos con más cantidad de programas para comparar: Con lo que podemos incluso realizar clasificaciones según distintos métodos o características. Es, por tanto, una plataforma y un protocolo excelente para comenzar el estudio de redes de bots, para ver cómo funcionan internamente, cómo se comunican y que métodos podemos usar para evitarlas. 1.3 Objetivos En este proyecto vamos a investigar a fondo las redes de bot, el objetivo final es proporcionar una idea clara de la estructura y funcionamiento de las redes de equipos comprometidos, de la amenaza que suponen a nivel particular y general, de concienciar de la importancia de la seguridad en red y de proporcionar información sobre métodos y herramientas que se puedan utilizar para combatir este tipo de amenazas. Para lograr esto: • Proporcionaremos una definición exacta sobre qué tipo de bot hablaremos. Al ser un término con tantas acepciones es importante indicar a cuál exactamente nos estamos refiriendo • Se analizarán las diferentes topologías en las que se implementan dada la importancia de conocer cómo se comunican estos tipos de redes para lograr su desarticulación • Conoceremos sus antecedentes. Sus diferencias con los gusanos de Internet, qué características heredan de ellos y de los bots de IRC. • Estudiaremos la historia de los diferentes virus y gusanos para comprender la evolución tecnológica de los mismos. 6 Autor: Adrián Belmonte Martín
  • 16. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos • Se realizará una clasificación exhaustiva por familias y características de aproximadamente 300 tipos de bots diferentes, estudiando detalladamente sus funcionalidades a través de su código fuente. • Estudiaremos las vulnerabilidades de las que se aprovechan estos programas y veremos cómo se implementan en los bots • Veremos el proceso de expansión de una red de bots, cómo comprometen los sistemas vulnerables y qué comandos y procedimientos se usan comúnmente • Estudiaremos cómo explota el bot-herder los ordenadores comprometidos y cuáles son los usos habituales de una red de bot para comprobar cómo nos afectan • Analizaremos las funcionalidades de cada tipo de bot • Examinaremos qué beneficios obtiene el dueño de las botnets para comprobar los negocios que se encuentran tras estas redes • Estudiaremos qué herramientas y métodos existen para protegernos de la amenaza que suponen • Veremos cómo se puede desactivar una botnet Para todo esto, comenzaremos el proyecto con la historia y antecedentes de los gusanos así como de los bots de IRC, antecedentes de los bots. Posteriormente, los clasificaremos según sus familias y siguiendo un orden cronológico para comprobar la evolución de estos programas, a continuación, pasaremos a la parte más técnica del proyecto y estudiaremos los módulos de expansión y explotación del sistema, analizando en multitud de ocasiones el código fuente de los programas. Acabaremos con las técnicas y programas usados para poder protegernos de estas redes. 1.4 Justificación Visto todo esto es interesante resaltar por qué debemos estudiar el funcionamiento de las redes de bots, ya que nos afecta directa e indirectamente. Podríamos diferenciar las causas de interés de este estudio en tres grandes grupos: Autor: Adrián Belmonte Martín 7
  • 17. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos 1. Usuarios Domésticos: • Suplantación de identidad • Robo de contraseñas • Robo de datos bancarios • Publicidad no deseada • Derroche de recursos y deterioro en el funcionamiento del sistema 2. Empresas • Deterioro de la imagen de la empresa: • Perdidas económicas por posibles caídas en los servicios • Filtrado de datos “sensibles” de la empresa • Generación de tráfico innecesario • Derroche de recursos • Extorsión por parte de terceros • Instalación de malware y envío de spam en los sistemas de la empresa • Perdida de confianza del usuario en servicios on-line 3. Internet • Generación de tráfico innecesario. Ruido de fondo de Internet • Aumento de ataques y del uso indebido de las redes. Los principales problemas que nos encontramos a la hora de hacer frente a una botnet son los siguientes: • Dificultad en la detección: Detectar un bot en un sistema es algo que en ocasiones resulta bastante complejo, los bots de última generación incluyen técnicas de ocultación avanzadas. Detectar una botnet es algo que dependerá de la topología de la red, de los métodos que contemos y sobre todo de la experiencia del administrador que realice esta tarea. • Uso de protocolos comunes: El uso de protocolos como IRC o http y el uso de puertos usuales, camufla este tipo de programas en el tráfico común de Internet, además cuenta con la ventaja de que la mayoría de Firewalls están configurados para permitir este tráfico. 8 Autor: Adrián Belmonte Martín
  • 18. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos • Falta de detección por los Antivirus: Dado que cada programa puede ser modificado, ampliado y lanzado a la red, se da el caso de que existen cientos de variantes del mismo programa, con lo que, a no ser que el programa antivirus posea unas características heurísticas muy buenas, la compañía tarda un tiempo en recoger el binario, analizarlo y publicar una vacuna, esto añadido al tiempo que tarda el usuario en aplicar la actualización, hace que los equipos puedan estar mucho tiempo “al desnudo”. • Dificultad de “cazar” al dueño de la red: Normalmente es muy difícil seguir el rastro del bot master ya que el servidor IRC hace de capa de protección, incluso es común que se conecte al servidor a través de uno de los equipos infectados, haciendo este de “proxy”. Además es usual la instalación de servidores IRC privados en máquinas infectadas, re-dirigiéndolos mediante DNS dinámicos y el uso de máscaras de acceso en estos servidores. Existen grupos en Internet que se dedican activamente a la caza de redes bots (denominados bot hunters o zombie hunters) como por ejemplo ShadowServer , un grupo de voluntarios expertos en seguridad que se encargan de recoger, clasificar e informar de actividades como spam, botnets y fraude electrónico con la finalidad de mejorar la seguridad de Internet.: Figura 1.3: Responsabilidades y técnicas de actuación de Shadowserver En la página Web del grupo, encontramos información sobre cómo instalar el software adecuado para detectar e informar de bots al grupo. Autor: Adrián Belmonte Martín 9
  • 19. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos Aparte de estos, organizaciones ligadas a los gobiernos como CERT en americano o REDIRIS en España, se dedican a prevenir estas redes y concienciar a los usuarios de los peligros que estas entrañan. A pesar de todos estos esfuerzos, el creciente número de máquinas “zombie” en las redes empieza a ser preocupante. De acuerdo con las estadísticas de Symantec, en los primeros 6 meses del 2006, se observaron una media de 57.000 bots activos por día. Así mismo, durante ese periodo 4.7 millones de ordenadores fueron usados activamente en botnets. [1] A pesar de contar con estas estadísticas nadie puede saber a ciencia cierta el porcentaje exacto de máquinas que se encuentran operando en la actualidad, esto es difícil determinar debido a las diferencias en su tipología y morfología, que las hace muy difícil de detectar y catalogar. El continuo crecimiento y diversificación de Internet, ha venido acompañado de un incremento de los ataques e intrusiones. Sin embargo, se observa un cambio significante en la motivación de los atacantes: se ha pasado del vandalismo y el reconocimiento en la comunidad, a los ataques para obtener beneficio económico. Este cambio ha supuesto un crecimiento en la sofisticación de los métodos y las herramientas de ataque. Actualmente los PC´s domésticos son objetivos apetecibles para los atacantes. La mayoría de los objetivos ejecutan Microsoft Windows y muy a menudo no son actualizados correctamente o protegidos tras un firewall, dejándolos expuestos a ataques. Además, se encuentran también los ataques indirectos como los archivos HTML que explotan vulnerabilidades o software malicioso en las redes Peer to Peer. Las máquinas con conexión de banda ancha que se encuentran siempre conectadas son un objetivo valioso para un atacante: se estima que los beneficios de este tráfico de ciclos de cpu y recursos gastados en la instalación de bots podrían llegar a rondar el billón de dólares. Trend Micro, afirma que al menos el 5% de todos los ordenadores conectados a Internet han sido usados alguna vez en botnets en cualquiera de sus variantes. [1] y si observamos los gráficos de los últimos meses en cuanto actividad de bot y botnets, en tan sólo los casos notificados (en la realidad son mucho mayores, ya que no todas las redes son fácilmente detectadas) observamos que nos encontramos lejos de acabar con esta amenaza. 10 Autor: Adrián Belmonte Martín
  • 20. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos Figura 1.4: Crecimiento del tamaño de las botnets informadas NOV-FEB 2007.Fuente ShadowServer Figura 1.5: Crecimiento del número de botnets informadas Nov-Feb 2007: Fuente ShadowServer Autor: Adrián Belmonte Martín 11
  • 21. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos Nos encontramos sin duda, ante uno de los retos más importantes a los que se enfrenta la seguridad informática en el principio de este nuevo milenio. Ya no sólo por el riesgo de violación de privacidad o robo de información, si no porque, tras estas redes de ordenadores remotamente controlados, se encuentran mafias perfectamente organizadas que se lucran económicamente de cada sistema comprometido. Existe en la actualidad una autentica lucha, un juego del ratón y el gato, entre los creadores de las redes bot y los que luchan por desactivarlas. Las técnicas en el desarrollo de los bots mejoran día a día, así como el abanico de vulnerabilidades que explotan. Los intrusos ya no se mueven por diversión o autosatisfacción, ahora lo hacen por beneficios económicos, lo que les permite dedicarle más tiempo y recursos al desarrollo de los programas. Sin embargo, el desconocimiento casi total que se tiene de este tema es una de sus mejores bazas, es un tema poco conocido incluso en los ambientes de técnicos en seguridad. Hay una enorme carencia de información con respecto a las redes bot, no hay ningún libro publicado y la que existe se encuentra muy diseminada, poco organizada y poco conocida. Era necesario realizar este proyecto ya que era preciso recopilar la poca información existente, organizarla y analizar a fondo cómo funcionan estos programas, será este, por tanto, el documento de mayor extensión y profundidad que existe actualmente sobre el tema. Conoce a tu enemigo, es importante estudiar siempre a qué nos enfrentamos y en este caso es el estudio de una red de las que provienen la mayoría de los fraudes y delitos cibernéticos que se usan en la actualidad siendo previsible que aumenten en un futuro. Conocer su estructura y el funcionamiento nos permitirá analizar y buscar soluciones ante uno de los principales problemas de Internet y que es, sorprendentemente, desconocido para la mayoría de los usuarios de la Red. 12 Autor: Adrián Belmonte Martín
  • 22. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos Capítulo 2 Historia Los intentos de comprometer un sistema han estado presentes desde la creación de las redes de comunicaciones, el atractivo que los primeros “hackers” encontraban en hacerse con el control de un sistema remotamente, solía ser el reto intelectual que les suponía el conseguirlo o el reconocimiento de su “comunidad”, por otra parte, se encontraban con la oportunidad acceder a una máquina con unas prestaciones que de otra manera no tendrían oportunidad de usar. El objetivo de estos atacantes solían ser ordenadores conectados a las redes de las universidades: Eran un buen objetivo, tenían más probabilidades a priori de estar mal configurados que un ordenador de un servidor militar o gubernamental, poseían una buenas prestaciones de cómputo y además estaban conectados 24 horas al día 7 horas a la semana. Usualmente, los atacantes a estos sistemas solían aprovechar de configuraciones típicas vulnerables, contraseñas poco seguras (normalmente por defecto) e incluso ingeniería social para acceder a los sistemas. La gran mayoría de estos atacantes no comprometían el sistema con fines maliciosos, se limitaban a curiosear y a intentar no ser detectados el máximo tiempo posible. Con la expansión de la informática y de las redes de ordenadores, un mayor número de usuarios se acercan a esta manera de comunicación y con ello un aumento de los usuarios interesados en explotar los sistemas con fines no lícitos o simplemente demostrar la inseguridad en las redes de comunicaciones. Sin embargo, las técnicas para ganar el acceso a un sistema han variado con el tiempo, mejorando y aumentando su complejidad técnica, se observa en la figura la evolución de los primero ataques en Internet. Autor: Adrián Belmonte Martín 13
  • 23. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos Figura 2.1: Evolución de los primeros ataques a redes 1980-2000 Formalmente y muy resumidamente las fases de un ataque a un sistema se dividen en: 1. Exploración: El atacante analiza el sistema objetivo para comprobar si usa Software vulnerable de ser explotado. 2. Acceso: Mediante un fallo de seguridad el atacante consigue acceder al sistema. Aprovechando fallos locales, puede conseguir el acceso como administrador. 3. Consolidación: Una vez en el sistema, el intruso elimina las pruebas del ataque e intenta instalar herramientas rootkit para asegurarse el acceso cómodo la próxima vez. 4. Explotación: El atacante emplea el sistema para diversos fines. 14 Autor: Adrián Belmonte Martín
  • 24. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos Rootkit Un rootkit es una herramienta, o un grupo de ellas usadas para esconder los procesos y archivos que permiten al intruso mantener el acceso al sistema, a menudo con fines maliciosos. Hay rootkits para una amplia variedad de sistemas operativos, como Linux, Solaris o Microsoft Windows [1]. Figura 2.2: Definición de Rootkit Las técnicas que usa un bot para comprometer un sistema viene heredado principalmente de dos tipos de programas distintos: • Gusano: El bot utiliza acciones típicas de un gusano de Internet para realizar más o menos automáticamente las tres primeras acciones del proceso ( Exploración, acceso y consolidación) • Bot de IRC: Es la técnica usada para mantener la estructura C&C y realizar la explotación del sistema, Este punto puede variar según el tipo de protocolo o la topología (por ejemplo si usamos p2p), como hemos comentado, en este documento nos vamos a centrar en estudiar este tipo. Vamos a comenzar definiendo estos tipos de programas y posteriormente intentaremos estudiar los antecedentes históricos de cada uno de ellos. Un virus informático es un pequeño programa creado para alterar la forma en que funciona un equipo sin el permiso o el conocimiento del usuario. Por definición [5], un virus debe presentar dos características: • Debe ser capaz de ejecutarse a sí mismo. A menudo coloca su propio código en la ruta de ejecución de otro programa. • Debe ser capaz de replicarse. Por ejemplo, puede reemplazar otros archivos ejecutables con una copia del archivo infectado. Los virus pueden infectar tanto equipos de escritorio como servidores de red. Algunos virus están programados para atacar el equipo dañando programas, eliminando archivos o reformateando el disco duro. Otros no están creados para causar daño alguno, Autor: Adrián Belmonte Martín 15
  • 25. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos sino para replicarse y dar a conocer su presencia mediante la presentación de mensajes de texto, vídeo o sonido. Incluso estos virus benignos pueden crear problemas al usuario informático. Normalmente hacen uso de la memoria correspondiente a los programas legítimos, como resultado, pueden provocar a un comportamiento irregular en el equipo e incluso hacer que el sistema deje de responder. Además, muchos virus contienen errores que pueden ocasionar pérdidas de datos y bloqueos del sistema. Los gusanos son programas que se replican a sí mismos de sistema a sistema sin utilizar un archivo para hacerlo. En esto se diferencian de los virus, que necesitan extenderse mediante un archivo infectado. Aunque los gusanos generalmente se encuentran dentro de otros archivos, a menudo documentos de Word o Excel, existe una diferencia en la forma en que los gusanos y los virus utilizan el archivo que los alberga. Normalmente el gusano generará un documento que ya contendrá la macro del gusano dentro. Todo el documento viajará de un equipo a otro, de forma que el documento completo debe considerarse como gusano, mientras que en los virus, sólo una parte del programa legítimo se encuentra infectado. En el siguiente punto estudiamos la historia de estos tipos de programas y cual ha sido su evolución a lo largo de los años que ha permitido el desarrollo de los programas bot. 2.1 Virus y gusanos: Los antecedentes Quizás los primeros interesados en la seguridad de los ordenadores no estaban demasiado relacionados con el acceso a los sistemas en redes ni a su explotación, deberíamos remontarnos mucho tiempo atrás, hasta 1939, año en el que el famoso matemático John Louis Von Neuman escribió un articulo en una revista científica de Nueva York exponiendo su “Teoría y organización de autómatas complejos” , donde demostraba la posibilidad de desarrollar pequeños programas que pudiesen tomar el control de otros de similar estructura. [9] Von Neuman, en 1944 contribuyó de forma directa en la fabricación de la ENIAC, una de las computadoras de primera generación y posteriormente la UNIVAC. 16 Autor: Adrián Belmonte Martín
  • 26. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos En 1949, en los laboratorios de la Bell Computer, subsidiaria de la AT&T, tres jóvenes programadores: Robert Thomas Morris, Douglas McIlory y Victor Vysottsky, a maneras de entrenamiento, crearon un juego al que denominaron CoreWar, inspirados en la teoría de Neuman. Este juego, ejecutaba programas que iban paulatinamente disminuyendo la memoria del ordenador y el ganador era el que finalmente conseguía eliminarlos totalmente. Este juego fue motivo de concursos en importantes centros de investigación como el de la Xerox en California y el MIT. Sin embargo, por aquellos años la computación era manejada por una pequeña élite de intelectuales, por lo que el CoreWar fue mantenido en el anonimato. [4] A principios de 1972 Robert Thomas Morris escribió lo que muchos consideran el primer gusano informático. Este programa, denominado `creeper', no era ni mucho menos dañino, sino que era utilizado en los aeropuertos por los controladores aéreos para notificar que el control de determinado avión había pasado de un ordenador a otro. Otros ejemplos de gusanos útiles fueron los desarrollados por John Shoch y Jon Hupp, del centro de investigación de Xerox en Palo Alto, California; estos worms se dedicaban a tareas como el intercambio de mensajes entre sistemas o el aprovechamiento de recursos ociosos durante la noche. Todo funcionaba aparentemente bien, hasta que una mañana al llegar al centro de investigación ningún ordenador funcionaba debido a un error en uno de los gusanos; al reiniciar los sistemas, estos volvían a fallar porque el gusano seguía trabajando, por lo que fue necesario diseñar una vacuna; Se había diseñado el primer “antivirus” aunque evidentemente por entonces no existía tal término. Este es considerado el primer incidente de seguridad en el que entraban gusanos en juego. Aunque este nombre no fue ampliamente usado para describirlos hasta que en 1975 John Brunner publicó la novela de ciencia ficción The Shockwave Rider, en ella Brunner aplicó termino gusano (Worm) para describir el programa que utilizó el protagonista y que se caracterizaba por su capacidad de auto replicarse en una red pudiendo, de esta manera, vulnerar y desvelar los oscuros secretos de la red de computadores que usaba el gobierno para controlar a sus ciudadanos. En 1984, el Dr.Fred Cohen, al ser homenajeado en una graduación, en su discurso de agradecimiento incluyó las pautas para el desarrollo de un virus. Este y otros hechos Autor: Adrián Belmonte Martín 17
  • 27. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos posteriores lo convirtieron en el primer autor oficial de los virus (aunque hubo varios autores más que actuaron en el anonimato) [6] El Dr. Cohen ese mismo año, escribió su libro “Virus Informáticos: teoría y experimentos” donde además de definirlos los califica como un grave problema relacionado con la seguridad nacional. Al poco, los usuarios del BIX BBS, reportaron la presencia y propagación de algunos programas que habían ingresado en sus ordenadores, actuando como “caballos de Troya”, logrando infectar a otros programas y hasta el propio sistema operativo, principalmente al sector de arranque. El año de la gran epidemia fue 1986, ese año se difundieron los virus Brain, Bouncing Ball y Marihuana, que fueron las primeras especies representativas de difusión masiva .Estas tres especies virales tan sólo infectaban el sector de arranque de los disquetes. Posteriormente aparecieron los virus que infectaban los archivos EXE y COM. Sin embargo, no fue hasta 1988 cuando se produjo el primer incidente de seguridad “serio” provocado por un gusano, que a la larga se ha convertido en el primer problema de seguridad informática que saltó a los medios. El 2 de noviembre de ese año, Robert T. Morris (hijo de Robert Thomas Morris, creador del ‘creeper’ y experto en seguridad en UNIX) saltó a la fama cuando uno de sus programas se convirtió en ` Gusano' el con mayúsculas. La principal causa del problema fue la filosofía ` Security through Obscurity'que muchos aún defienden hoy en día: Este joven estudiante se aprovechó de uno de los muchos fallos en Sendmail descubiertos por su padre y los incluyó en su gusano, además, explotaba varias vulnerabilidades en programas como, fingerd, rsh y rexecd para acceder a un sistema, contaminarlo, y desde él seguir actuando hacia otras máquinas En unas horas, miles de equipos conectados a la red dejaron de funcionar, todos presentando una sobrecarga de procesos sh (el nombre camuflado del gusano en los sistemas Unix), reiniciar el sistema no era ninguna solución, porque tras unos minutos de funcionamiento el sistema volvía a presentar el mismo problema. Fueron necesarias muchas horas de trabajo para poder detener el Worm de Morris; Expertos de dos grandes universidades norteamericanas, MIT y Berkeley, fueron capaces de desensamblar el código y proporcionar una solución al problema. Junto a ellos, cientos de administradores y programadores de todo el mundo colaboraron 18 Autor: Adrián Belmonte Martín
  • 28. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos ininterrumpidamente durante varios días para analizar cómo se habían contaminado y cuáles eran los efectos que el gusano había causado en sus sistemas. El día 8 de noviembre, casi una semana después del ataque, expertos en seguridad de casi todos los ámbitos de la vida estadounidense se reunieron para aclarar qué es lo que pasó exactamente, cómo se había resuelto, cuáles eran las consecuencias y cómo se podía evitar que sucediera algo parecido en el futuro; allí había desde investigadores del MIT o Berkeley hasta miembros de la CIA, el Departamento de Energía o el Laboratorio de Investigación Balística, pasando por supuesto por miembros del National Computer Security Center, organizador del evento. Esta reunión, y el incidente en sí, marcaron un antes y un después en la historia de la seguridad informática; La sociedad en general y los investigadores en particular tomaron conciencia del grave problema que suponía un ataque de esa envergadura, y a partir de ahí comenzaron a surgir organizaciones como el CERT, encargadas de velar por la seguridad de los sistemas informáticos. También se determinaron medidas de prevención que siguen vigentes hoy en día, de forma que otros ataques de gusanos no han sido tan espectaculares: a finales de 1989 un gusano llamado wank, que a diferencia del de Morris era destructivo, no tuvo ni de lejos las repercusiones que éste. Desde entonces, no ha habido ninguna noticia importante - al menos publicada por el CERT - de gusanos en entornos Unix. Figura 2.3: Eventos relacionados con gusanos y virus Autor: Adrián Belmonte Martín 19
  • 29. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos Una nueva generación La popularidad de Internet, el amplio uso de el correo electrónico, la potencia de los interpretes de script de MS Office unido con la ingenuidad de algunos usuarios hicieron posible la creación de una nueva generación de gusanos que usaban estos medios para propagarse, Sin embargo, no se podría hablar de un cambio de la “scene” en cuanto a dejar de programar virus a programar gusanos, sería más correcto hablar de evolución de los virus, de una adaptación a nuevos medios; Nuevos métodos de propagación y con otros fines. La barrera entre la programación de virus/gusanos y la “scene” hacker será, como veremos, cada vez más difusa. Marzo de 1999, el virus Melissa provoca una de las infecciones masivas más importantes de la historia de los virus informáticos. En principio un virus de macro de Word, se auto enviaba por correo electrónico a los 50 primeros contactos de la lista de correo del ordenador infectado. En Noviembre de ese mismo año el gusano VBS/BubbleBoy marca un antes y un después en los métodos de infección, dicho gusano, escrito en Visual Basic Script y aprovechando un agujero del Internet Explorer 5 se activaba sin necesidad de ejecutar ningún fichero adjunto, tan sólo con abrir el mensaje o visualizarlo el equipo quedaba infectado. Sin embargo, destaca el gusano VBS/LoveLetter ( 3 de Mayo 2000), comúnmente denominado “I Love You” que era especialmente ingenioso combinando los métodos expansión del gusano con técnicas de ingeniería social. Dicho gusano se mandaba por correo electrónico con un mensaje cuyo asunto era “I Love You” e incluía adjunto el fichero “Love-Letter-For-You-txt.vbs” que al abrirlo infectaba el ordenador y que se tomaba la libertad de sobrescribir archivos y música, imágenes y otros. También en el año 2000 apareció el gusano JS/Kak.Worm el cual se propagaba mediante la ocultación tras un guión de Java Script en la autofirma de Outlook Express, lo cual le permitía infectar sistemas sin que fuera necesario abrir ningún fichero adjunto. Por tanto, podemos observar una sustancial mejora en las técnicas de infección: Desde los primeros gusanos que necesitaban la interacción del usuario, se evoluciona a una infección cada vez más automática e independiente. Los creadores de virus aprovechan vulnerabilidades en el software de uso habitual a través de exploits programados por 20 Autor: Adrián Belmonte Martín
  • 30. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos terceros; Pocas veces están realizados por el autor del programa malicioso, ya que su creación suele ser una tarea compleja, no apta para cualquier usuario. Pero, en ocasiones, el autor del exploit lo pone a disposición de otros usuarios, esto es aprovechado por los creadores de virus y gusanos que lo incorporan en sus creaciones. Hay que destacar las múltiples ventajas de este nuevo método de infección: Si se trata de una vulnerabilidad para el sistema operativo Windows o un programa muy común, dispone de millones de víctimas potenciales. A esto hay que añadirle que la propagación puede llegar a realizarse de manera extraordinariamente rápida, ya que no hay ninguna barrera que evite su expansión. El 13 de Julio del 2001, una vulnerabilidad en el servidor Web de Microsoft, Internet Information Server (IIS) permitió al gusano Code Red infectar 359.000 ordenadores, en menos de una semana y más de un millón en su corta vida. A diferencia de sus predecesores, Code Red no requería ninguna intervención del usuario para ejecutarse y auto replicarse, además de las características típicas de expansión, este gusano al infectar el sistema, buscaba nuevos servidores IIS y comprobaba si había sido ya infectado, además pasados unos días, intentaba un ataque de denegación de servicio contra algunas IP´s prefijadas, como por ejemplo la de la Casa Blanca. A partir de ese momento, la expansión de este tipo de gusanos, se hace cada vez más dañina, y por tanto más famosa y mediática: El gusano Blaster, también conocido como Lovsan o Lovesan infectaba ordenadores que ejecutaba Windows Xp o 2000 y que no estaban correctamente parcheados. Este gusano fue detectado por primera vez el 11 de Agosto de 2003 alcanzando sus máximas cotas de infección el 13 de Agosto. Autor: Adrián Belmonte Martín 21
  • 31. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos Gusano Blaster Blaster utiliza una vulnerabilidad en la interfaz RPC que permite la ejecución arbitraria de código mediante un desbordamiento de buffer en dicho servicio de Windows. RPC (Remote Procedure Call) es un protocolo que proporciona a Windows un mecanismo de comunicación entre procesos para que un programa que se está ejecutando en un equipo ejecute fácilmente código en un equipo remoto. La falla mencionada permite que se pueda ejecutar código en forma aleatoria, enviando mensajes construidos maliciosamente entre procesos específicos. Estudiando un poco más en detalle, el gusano hace uso de los siguientes archivos: MSBLAST.EXE: Es el gusano propiamente dicho, un archivo comprimido con la utilidad UPX. El gusano se propaga a través del puerto TCP/135, copiándose en los ordenadores que no poseen el parche para la vulnerabilidad, crea un shell remoto (ejecutando CMD.EXE) en el puerto TCP/4444 de la máquina infectada (un SHELL es un intérprete de comandos que interpreta y activa los comandos o utilidades introducidos por el usuario) y usando este shell, el gusano ejecuta un comando TFTP (get) para descargar el gusano propiamente dicho en el directorio System32 de Windows. TFTP: (Trivial File Transfer Protocol) Es una versión simplificada de FTP (File Transfer Protocol), un protocolo que permite la transferencia de archivos entre dos ordenadores conectados en red. Además de todo esto el gusano también se ejecuta como un servidor FTP en el ordenador atacado usando el puerto UDP/69, con lo que permite que la víctima sirva de host a otros usuarios para que descarguen de allí una copia del gusano (MSBLAST.EXE). Para propagarse, el gusano utiliza una ingeniosa rutina que optimiza la infección en las redes más cercanas al host infectado. Para ello, genera 20 direcciones al azar por vez, tomando como base la dirección IP actual del ordenador infectado, y las explora, buscando otros sistemas vulnerables. Por ejemplo, si la dirección IP del host es AAA.BBB.CCC.DDD, las direcciones generadas por el gusano al comienzo tendrán AAA y BBB iguales a los del host. DDD siempre será cero, y CCC será un número al azar entre 0 y 253. Si el número es mayor de 20, se le restará otro valor menor de 20 también al azar. Después de ello, alternará las siguientes combinaciones: AAA será un número de 1 a 254 BBB será un número de 0 a 253 CCC será un número de 0 a 253 DDD será siempre 0 Con las direcciones generadas, el gusano analiza otros equipos vulnerables, siempre hasta 20 direcciones IP al mismo tiempo. Como resultado de toda esta actividad, la subred local será saturada con pedidos al puerto 135. Además de todo ello, el gusano está preparado para realizar ataques distribuidos de denegación de servicio (DDoS), al servidor de actualizaciones de Microsoft, con la intención es impedir la descarga del parche que evita que el propio gusano pueda propagarse. Para ello, y comenzando el 16 de agosto de 2003, todas las máquinas infectadas pueden enviar en forma masiva, una gran cantidad de paquetes de 40 bytes, en intervalos de 20 milisegundos, al puerto 80 de "windowsupdate.com". Curiosamente el daño a Microsoft fue mínimo, ya que el ataque fue realizado a windowsupdate.com y no a windowsupdate.microsoft.com que era la página a la cual era redirigida. De todas maneras y como medida preventiva, la página objetivo fue desconectada para minimizar el daño del gusano. Como curiosidades, en su código, el gusano contiene el siguiente texto (no mostrado al usuario): I just want to say LOVE YOU SAN!! billy gates why do you make this possible ? Stop making money and fix your software!! Figura 2.4: Descripción del funcionamiento del gusano blaster 22 Autor: Adrián Belmonte Martín
  • 32. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos Figura 2.5: Captura del código del blaster Otro detalle curioso e identificativo de este gusano es que en ocasiones, y debido a un error en el exploit utilizado para aprovecharse de la vulnerabilidad, se muestra el siguiente mensaje antes de que el sistema se cierre: Figura 2.6: Mensaje de infección del gusano Blaster Este mensaje de error se hizo famoso en ordenadores de todo el mundo. Autor: Adrián Belmonte Martín 23
  • 33. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos Pese a todo, el efecto del gusano pudo ser mucho peor, pero los intentos de los ISP por filtrar el tráfico y las medidas informativas para que los usuarios y empresas aplicaran el correspondiente parche ayudaron mucho a mitigar el impacto. Aun así se estima en billones de dólares en pérdidas económicas y cientos de miles de ordenadores infectados en todo el mundo. Como puede observarse en estos primeros gusanos de nueva generación, cada nuevo elemento usa características de los anteriores, refinan las técnicas antiguas y añaden nuevas, así mismo, la complejidad y sofisticación de los métodos de propagación y su efecto dañino se fue incrementando con el tiempo. Aprovechando las puertas traseras Otro de los gusanos que más equipo infectó y de los que hubo hasta 100 variantes, algunas de ellas aún en activo, es el Bagle, una vez en el equipo infectado, abría un puerto TCP que era usado remotamente por una aplicación para acceder a los datos del sistema, es decir, combinaba los métodos de propagación de los gusanos con la instalación de puertas traseras(del estilo de Back Orifice o SubSeven) en el equipo infectado lo cual daba al creador del programa o a cualquier atacante acceso posterior al sistema. El 26 de Febrero del 2004, el gusano MyDoom se convirtió en el gusano de propagación por email más rápido de la historia (aunque también se propagaba por las carpetas compartidas de la red Kazaa) y también uno de los más dañinos, se dice que llegó a ralentizar Internet un 10% y la carga de las paginas Web hasta un 50%. [7] 24 Autor: Adrián Belmonte Martín
  • 34. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos Gusano MyDoom La primera cepa de MyDoom se transmitía principalmente por mail, aparentando ser un error en la recepción de un correo. Contenía el encabezado “Error”, “Mail Delivery System”,”Test” o “Mail Transaction Failed” en diferentes lenguajes, incluidos Ingles y Francés. El mail contenía un documento adjunto que si era ejecutado se reenviaba a direcciones de mail encontradas en los documentos locales, tales como la libreta de direcciones del usuario, también se copiaba en las carpetas compartidas de Kazaa en un intento de aumentar su expansión. MyDoom evitaba las direcciones de ciertas universidades como Rutgers, MIT, Stanford y Berkeley, no porque fuera un virus “estudiante” si no porque de esta manera evitaba que infectara equipos con personal que pudiera estudiar su código y dar soluciones para su expansión, por el mismo motivo evitaba direcciones de compañías como Microsoft, Symantec y algunas más relacionadas con la seguridad. La cepa primaria de MyDoom realizaba dos acciones primordiales: 1. Abría una puerta trasera en el puerto TCP/3127 que permitía el control remoto del ordenador infectado 2. Realizaba un ataque de denegación de servicio contra el sitio Web de SCO Group. (Esta acción finalmente sólo funcionó en el 25% de los sistemas infectados). Las siguientes cepas del gusano, realizaban acciones mucho más interesantes e innovadoras. Por ejemplo bloqueaban el acceso http a algunos sitios antivirus online, bloqueaba utilidades antivirus o sus actualizaciones. Pero sin duda una de las características más novedosas y que llevaron a pensar que los autores del gusano podían pertenecer a redes de crímenes organizados o con fines lucrativos fue que añadía anuncios pop-up de algunas compañías de marketing. Este virus causó unas perdidas económicas de 40 billones de dólares. [7] Figura 2.7: Funcionamiento del gusano MyDoom El último caso de gusano que salió a la luz de los medios públicos, y sin duda uno de los que más daños causó fue el gusano Sasser (una variante de Netsky) que comenzó su actividad el 30 de Abril del 2004. Dicho gusano, se aprovechaba de un desbordamiento de buffer en el componente de Windows LSASS (Local Security Authority Subsytem Service). El gusano analizaba diferentes rangos de direcciones IP y conectaba al ordenador de la víctima principalmente a través del puerto 445. Sasser no era transmitido vía email y no requería usuarios para propagarse (como el Blaster). Cada vez que encontraba sistemas Windows 2000 y Windows Xp no actualizados, este era replicado. Autor: Adrián Belmonte Martín 25
  • 35. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos Los sistemas infectados experimentaban una gran inestabilidad, apareciendo otro famoso mensaje: Figura 2.8: Infección por el gusano Sasser Los efectos se hicieron notar en todo el mundo, aparte de infectar millones de ordenadores personales de todo el mundo, el gusano: • Bloqueó las comunicaciones de la agencia de comunicaciones francesa por cuatro horas. • La compañía de vuelos Delta Airlines tuvo que cancelar muchos vuelos transatlánticos por que su sistema de ordenadores estaba colapsado por el virus. • La compañía de seguros Nordic tuvo que cesar su actividad y cerrar sus 130 oficinas en Finlandia. • Los servicios de mapas electrónicos de los guardacostas Británicos estuvieron desconectados por horas • El departamento de rayos-x de Hospital Universitario de Lund tuvo sus máquinas de rayos-x apagadas por unas horas y tuvo que redirigir las emergencias a un hospital cercano. [8] 26 Autor: Adrián Belmonte Martín
  • 36. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos Figura 2.9: Cronología de la nueva generación de gusanos. 1-marzo 1999 /30 abril 2004 Actualmente Sin duda, desde entonces, han aparecido miles de nuevos gusanos y variantes de los anteriores, sin embargo se ha logrado minimizar enormemente el impacto y la expansión de los gusanos, esto es debido entre otras causas: • Esfuerzos de los ISP´s por filtrar y aislar el tráfico de su red. • Las campañas de concienciación de los departamentos de alertas y respuestas de seguridad y • Las investigaciones de las casas antivirus por encontrar las nuevas firmas que detecten estos gusanos En todos los casos de grandes epidemias de gusanos, es importante resaltar que fueron todos creados con base en vulnerabilidades anunciadas por el fabricante y que antes de cada ataque había disponible un parche que las corregía. [8] De cada error se aprende algo nuevo, y de estas epidemias aprendimos que es necesario tomar en serio las actualizaciones de seguridad para el sistema operativo y los programas que usemos. Desde entonces, dos nuevos objetivos están siendo enfocados por los atacantes: por un lado, las aplicaciones del tipo punto a punto; es decir, aquellos servicios que permiten la conexión directa de dos equipos en Internet, como es el caso de la mensajería instantánea y los programas para compartir archivos, tan populares hoy en día. Autor: Adrián Belmonte Martín 27
  • 37. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos Y en todo esto: ¿Dónde se quedan las redes de bots? Bien, los gusanos son, sin duda, los antecedentes directos de estas redes, los bots están programados para seguir el modelo de expansión de las últimas generación de programas, es decir, la explotación de vulnerabilidades en el software del equipo víctima. Sin embargo, una vez que el equipo está comprometido debemos observar la manera en la que el atacante hace uso del mismo. Como hemos visto, la forma más habitual de controlar la red de bots es a través del IRC, por tanto, si estamos estudiando la historia y los antecedentes de las redes de bots, sería interesante, estudiar la historia del modelo C&C mediante IRC: 2.2 Bots de IRC. Antecedentes Un bot de IRC (IRC bot) es un conjunto de scripts o un programa independiente que se conecta a un servidor de charlas como un cliente y aparece a los otros usuarios como un nick más. El bot responde a comandos predefinidos con acciones determinadas y suelen usarse para diversos motivos: • Proteger a los canales de inundaciones y absorciones. • Mantenimiento de los canales. • Mantener listas de acceso. • Permitir el acceso a bases de datos. • Creación de estadísticas. • Publicidad. • Ejecutar juegos (el Trivial es el más común). De hecho él primer bot de IRC llamado GM escrito por el operador de IRC Greg Lindahl (de nick Wumpus), era un juego para los usuarios que se comunicaban mediante IRC, el juego se denominaba “Hunt the Wumpus”. El primer bot usado para controlar y proteger un canal de Chat fue programado en Diciembre de 1993 por Robert Pointer en Tcl/tk bajo código abierto. Se creó para ser usado en el canal #gayteen, ya que el autor deseaba controlar y proteger, su por 28 Autor: Adrián Belmonte Martín
  • 38. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos entonces “controvertido” canal de Chat. Este programa empezó a volverse muy popular a través de los años y posteriormente, Robert Pointier en conjunción con un grupo de aficionados evolucionaron sus Scripts hasta convertirlos en sistemas, tal como es hoy el denominado Eggdrop, reclamado por ser el más popular bot de IRC y cuya comunidad ha crecido enormemente en estos últimos años, aunque su creador ya no pertenezca al grupo. La disponibilidad del código fuente de este y otros programas de bots de IRC, la facilidad del control remotamente de cualquier equipo remotamente y la gran popularidad de estas redes, hizo que los programadores de bots vieran una plataforma perfecta para el desarrollo de la estructura de comando y control. Por tanto, ahora poseemos una idea de cuales son los antecedentes y las influencias que hacen que estas redes de bots tengan la estructura que tienen y cómo funcionan, como iremos viendo a lo largo del proyecto, dependiendo de la complejidad de cada bot utilizará métodos y técnicas distintas y más o menos sofisticadas. Autor: Adrián Belmonte Martín 29
  • 39. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos Capítulo 3 Funcionamiento y estructura Ahora bien, ¿cómo funciona un bot? Un ejemplo de funcionamiento de una botnet C&C bajo IRC sería la siguiente: • Un atacante primero lanza un gusano que infecta varios Hosts. Estos se convierten en zombies y se conectan al servidor IRC para recibir instrucciones. • El servidor IRC puede ser una máquina pública en una de las redes IRC, o un servidor dedicado instalado por el atacante en uno de los Hosts infectados. • Los bots funcionan en los ordenadores infectados formando una botnet. • El bot master ordena a los bots, infectar más equipos para aumentar la red. Figura 3.1: El atacante busca un primer equipo víctima 30 Autor: Adrián Belmonte Martín
  • 40. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos Figura 3.2: Se ordena al ordenador semilla buscar nuevos objetivos Autor: Adrián Belmonte Martín 31
  • 41. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos Figura 3.3: Una vez encontrado la vulnerabilidad, se inyecta el código del bot Figura 3.4: Los ordenadores comprometidos se unen al canal especificado 32 Autor: Adrián Belmonte Martín
  • 42. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos Figura 3.5: La botnet busca en Internet nuevos objetivos vulnerables Por lo tanto una red de bots o botnet se podría dividir en: 1. El atacante: Este se conecta al servidor IRC a un canal definido por el y normalmente por medio de una contraseña, una vez allí, envía las ordenes que desee a la red de bots. 2. Servidor IRC: Hace de “máscara” entre el atacante y la red de ordenadores bots. 3. Red de ordenadores zombies comprometidos: Ejecutan las órdenes que el atacante les manda desde el canal IRC. Autor: Adrián Belmonte Martín 33
  • 43. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos Figura 3.6: Estructura típica de una botnet C&C IRC Es, como vemos, una estructura muy sencilla, que permite al atacante tener el control absoluto de las máquinas zombies, la denominada C&C (Command and control, comando y control) y que hace muy difícil su detección, ya que no son los ordenadores comprometidos quienes reciben las órdenes directamente si no que todo el tráfico se realiza a través de un tercero, que es en este caso un servidor IRC. Ahora bien, que ocurriría si el ordenador comprometido como servidor de IRC no es accesible, el bot es eliminado, o si, simplemente cierran el acceso al canal de IRC público. ¿Es tan sencillo eliminar una botnet? Como refuerzo para las redes de bots, los creadores, comenzaron a utilizar redirección dinámica de DNS (DDNS, Dynamic Domanin Name Server), una solución sencilla y con la cual no se perdía la red de bots completa. Tan sólo tenían que cambiar la DNS del servidor IRC caído por otra accesible y todos los ordenadores zombies sabrían a que IP conectarse de nuevo. Normalmente, para conseguir esto, se usa un DDNS gratuito, como DynDns.org o No-IP.com para apuntar hacia el servidor IRC con el canal que albergará a los bots. El servidor de DNS dinámico no proveerá servicio alguno para los ataques, tan sólo 34 Autor: Adrián Belmonte Martín
  • 44. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos trabajará como punto de referencia, con lo cual no realiza ninguna actividad ilegal con tales servidores. ! "# $ ! %" & ' ! ' ( & ( ' ) " # '* ! ) + $, $ ' $ $ $ & - $ $ " ! - ' " $ - . % - ' $ ( % -+ ! " Figura 3.7: Definición de DNS Dinámico Sin embargo, aun con todo esto, las redes de bots son bastante frágiles, principalmente por dos motivos: • En la actualidad las compañías de DNS dinámicos, se han dado cuenta del alcance del problema y están intentando eliminar los subdominios que apunten a redes bots.[10] • Falta de redundancia: si se descubre un servidor botnet o un canal IRC que albergue la red bot , todos los bots quedarán al descubierto, la desconexión del servidor o el cierre del canal, hará que caiga toda la estructura (al menos hasta que el controlador consiga una nueva dirección para el host) Como contrapartida, las nuevas versiones de programas para servidores de IRC incluyen entre sus características “enmascarar” otros servidores con lo cual si se descubre un host usado como servidor IRC y se consigue cerrar, la reconexión a un nuevo servidor IRC se haría de forma automática. Autor: Adrián Belmonte Martín 35
  • 45. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos 3.1 Ciclos de un bot La actividad de una botnet se considera “cíclica” y se podría observar desde dos puntos de vista diferentes. Por un lado, se puede observar el ciclo de actividad del atacante (ciclo de la botnet): • El ‘bot-herder’ configura los parámetros iniciales del bot, tal como los vectores. de infección, el payload, ocultamiento y los detalles de C&C. • Procede al registro del DDNS. • El ‘bot-herder’ lanza los bots-semilla. Comienzo de la infección. • Fase de crecimiento- expansión-propagación. • Pérdida de bots a otras botnets. • Pico de máximo crecimiento. • Abandono de la botnet. • Da de baja el DDNS. Baja del DDNS Configuración Abandono del botnet Registro del DDNS Perdida de bots Pico máximo de Lanzamiento del bot crecimiento semilla Crecimiento Figura 3.8: Ciclo de un botnet desde el punto de vista del atacante 36 Autor: Adrián Belmonte Martín
  • 46. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos Por otro el lado, el ciclo del equipo infectado (ciclo de un bot): • Infección. Establecimiento del C&C • Análisis de objetivos vulnerables para la expansión del bot • Pérdida del bot • Recuperación del bot • Actualización con nuevo código del bot • Espera Infección Espera de órdenes Pérdida del bot Análisis de otros Recuperación equipos/Uso del bot Actualización con nuevo código Figura 3.9: Ciclo de un bot desde la víctima Una de las características más importante de los bots, es que pueden extenderse con facilidad a otros ordenadores. La planificación cuidadosa del proceso de infección ayuda a conseguir mejores resultados en menos tiempo. El uso de los canales IRC para la comunicación remota de redes botnets tiene las siguientes ventajas: • Es flexible: Incluso los servidores públicos pueden usarse como medio de comunicación. • Simple: Es posible controlar cientos e incluso miles de bots de forma simultanea y con pocos comandos. Autor: Adrián Belmonte Martín 37
  • 47. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos • Fácil de usar: Se usan los comandos usuales del IRC, ampliamente conocidos. • Anónima: Permite al atacante ocultar su identidad, usando técnicas sencillas como servidores proxies anónimos, cuentas shell remotas o spoofing de direcciones IP, por lo que es difícil dar caza al dueño de la red de bots. 3.2 Algunos usos de las botnet Se va a ver aquí el uso que hacen los controladores de las redes bots. Aunque hablaremos en profundidad y lo analizaremos más concienzudamente en capítulos posteriores, servirá de introducción para incidir en la peligrosidad de estas redes y el peligro que conlleva para la seguridad en los sistemas. Una vez que el ‘bot herder’ se ha hecho control de una máquina (bot semilla), la botnet crece de manera exponencial. El atacante, ordenará a este equipo seguir rastreando la red en busca de equipos vulnerables, infectándolos, pudiendo llegar a montar redes de miles de sistemas comprometidos bajo su control. Aunque no es muy difícil imaginar que se podría realizar con una red de cientos o miles de ordenadores comprometidos bajo el control total de una persona, desglosaremos aquí algunas “aplicaciones”: Ataques de denegación de servicio distribuido (DDOS, Distributed Denial of Service) Supongamos que tenemos una botnet de 100 equipos, una red bastante pequeña, cada equipo tiene de media una conexión de subida de 128 kb/s, de la cual supongamos que sólo usa la mitad para el ataque (debido a que se esté usando la conexión para el usuario o por otros motivos) 128/2= 64kb/s*100= 6400kb/s, es decir, el equivalente a 8MB en datos por segundo contra sólo un objetivo, todo esto con tan sólo 100 equipos y con una conexión media-baja (lo normal en los equipos es 300kb/s de subida), sin duda capaz de saturar a más de un host de Internet. 38 Autor: Adrián Belmonte Martín
  • 48. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos Muchas redes han sufrido estos ataques, los controladores de las bots en ocasiones alquilan la red a mafias o a empresas para que ataquen empresas rivales. Sniffing y keylogging La observación de los datos que circulan por un equipo puede permitir la detección de una cantidad increíble de información que puede ser usada para actos maliciosos futuros, en este apartado se podría incluir, hábitos de usuario, análisis de paquetes TCP, robo de claves de correo, paypal, robo de identidades, información de banca online, tarjetas de crédito, licencias lícitas de software… Spamming Las botnets son el medio ideal para los spammers, se usan para intercambiar direcciones de email recogidas para controlar oleadas de correo basura de la misma forma que se hacen los ataques DDOS. Puede enviarse un sólo mensaje de correo basura a la botnet y ser distribuida a través de bots que envían el correo basura. El spammer permanece anónimo y toda la culpa será de los ordenadores afectados. Sembrar Malware Con tan sólo una orden del ‘bot herder’ todos los bots de una red pueden comenzar a descargar de cualquier sitio de la red, programas malware o de publicidad “pop-up” Crear servidores proxy Bien para ocultarse para acceder a los servidores IRC o para redirigir ataques de spam y malware Creación de servidores Web Con ficheros maliciosos, para ataques de phising o para almacenamiento de software ilegal, el ordenador infectado se usará como almacén dinámico de software pirata, pornografía, material ilegal, etc.…mientras que el legítimo usuario ignora que esto sucede. Autor: Adrián Belmonte Martín 39
  • 49. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos Capítulo 4 Fauna Bot A la hora de abordar el estudio de los bots, contamos a nuestro favor con que muchos de ellos tienen el código fuente disponible para su estudio, los más famosos incluso se encuentran bajo licencia GPL, otros poseen su código descargable de Internet (pero sin derecho de modificación), hecho que motiva su enorme expansión y diferentes versiones de cada uno. No obstante, no todos los programas que hemos podido encontrar incluyen su código fuente, hay algunos que traen tan sólo un ejecutable, lo que dificulta su análisis. Otros incluso contienen falsos bots en archivos binarios que en realidad ejecutan puertas traseras en el equipo, convirtiendo al supuesto atacante en víctima. El hecho de tener el código fuente disponible es causa directa de que estos bots sean los más frecuentes y de los que existen más variantes, también son los más desarrollados y los que más funcionalidades poseen. Por tanto, estudiaremos en mayor medida estos bots que normalmente forman las denominadas “familias”. Cada versión del bot en estas familias posee unas características diferentes, nuevas mejoras, o simplemente son personalizadas a gusto del “bot herder” que las compila y distribuye. Hay que destacar que sólo vamos a estudiar una pequeña muestra representativa de todos los bots existentes, sería imposible estudiarlas todas, ya que cada creador de bots va modificando y ajustando los programas según las necesidades de cada momento, es por tanto probable que si alguien continua este trabajo o lo empieza de nuevo, encuentre disponible otras versiones de los bots con nuevas características o no encuentre algunas a las que me refiero aquí. Sin embargo, las principales funcionalidades están comentadas a fondo en este proyecto. Se clasifican las características de los bots con la finalidad de poder contar con un número suficiente de elementos como para estudiarlos a fondo en los siguientes puntos, bien sea de manera conjunta (las de un mismo bot) o bien las singulares de un bot que resulte interesante resaltar. Para ello comenzaremos de un modo constructivo, desde los bots más básicos, iremos avanzando hasta llegar a las grandes familias que poseen decenas de versiones y características diferentes. 40 Autor: Adrián Belmonte Martín
  • 50. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos Se comienza el estudio con los primeros bots de IRC (no se pueden denominar aun de comando y control) que empezaban a “esbozar” la estructura y características que usarían posteriormente este tipo de bot C&C. Para ello, es importante definir cuales son las diferencias entre uno y otro, ya que a veces es difícil determinar la línea que los separa: Bot IRC Bot C&C IRC • No “infecta” el sistema: No se • Se instala sin consentimiento instala sin consentimiento del del legitimo usuario usuario legitimo del equipo. • Implementa acciones dañinas • No implementa acciones • Implementa acciones de robo dañinas contra el sistema en el de información que esta instalado ni contra • Permite el control absoluto otros equipos de la red del equipo infectado • No implementa características • Se instala usualmente en de robo de información en el ordenadores remotos equipo que se instala domésticos. • No permite el control absoluto del equipo que es instalado • Normalmente en ordenadores remotos mediante cuentas shell Figura 4.1: Diferencias entre bot IRC y bot C&C IRC Las diferencias entre uno y otro son meramente funcionales. Autor: Adrián Belmonte Martín 41
  • 51. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos 4.1 Los precursores. Bots IRC Como antecedentes de los bots de comando y control, vamos a estudiar dos programas: 4.1.1 Coromputer_dunno Es un bot de IRC muy simplificado y bastante fácil de estudiar, nos ayudará a comprender: • Cómo se realiza y se mantiene la comunicación con el servidor IRC. • Cómo se establecen los parámetros de configuración del programa. Sus características: • Escrito en C • Para sistemas *NIX, fácilmente portable a Windows. • Bastante más simple que otros programas bot IRC para el estudio de las comunicaciones con el servidor. La estructura de una conexión con el servidor IRC típica es la que se muestra en la figura: 42 Autor: Adrián Belmonte Martín
  • 52. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos Figura 4.2: Comunicación con el servidor IRC Sin embargo, este bot más escueto en el manejo de las comunicaciones con el servidor, ya que por ejemplo, no implementa acciones cuando recibe un mensaje privado. Un ejemplo de cómo realizar dicha comunicación lo encontramos en las siguientes líneas de código strcat(nick,NICK); // Introduce en la variable la cadena NICK strcat(nick,"n"); // Añade retorno de carro send(sock,"USER X X X :Xn",14,0); //Lo envía al servidor recv(sock,buff,sizeof(buff),0); //Recibe lo que el servidor responda memset((void *)&buff,0,sizeof(buff)); //Limpiamos buffer send(sock,nick,strlen(nick),0); recv(sock,buff,sizeof(buff),0); strcat(ping,&buff[6]); //Enviamos el buffer strcat(ping,"rn"); // Junto con la cadena PING Figura 4.3: Ejemplo de comunicación con el servidor IRC Se trata del envío del comando NICK_USER y PING que corresponde con el primer y segundo estado en la figura. Autor: Adrián Belmonte Martín 43
  • 53. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos Otro aspecto interesante a estudiar son las líneas de configuración del programa, en las que definimos el servidor IRC, los archivos temporales de las acciones que realicemos, así como el nick que queramos que tenga el bot: #define SERV "Geneva.CH.EU.Undernet.org" /* Don'forget to put the IRC server with his Upper Cases */ t #define FILLE "lala.txt" /* temporary file where WHO list will be placed at the end it will be erased */ #define TIMEOUT 4 /* seconds */ #define LOG "log.txt" /* log file where results will be writed(when you dont use verbose mode */ #define NICK "ZaIrcBot" /* the nick of the bot */ Figura 4.4: Configuración del bot Así pues, la simplicidad de este programa, nos sirve de lanzadera al estudio de otros bots, ya que nos ayuda a comprender fácilmente como funcionan los bots. 4.1.2 Skydance El siguiente programa es un poco más complejo que el anterior y ya posee algunas características de bot de comando y control, sin embargo, no llega a entrar todavía en esta categoría. Se clasifica como un bot “dedicado”, está diseñado para cumplir una función especifica: Realizar ataques de denegación de servicio distribuidos (Consultar anexo) usando sockets RAW: Raw sockets Es un Socket que tiene la capacidad de comunicarse directamente con el hardware de comunicación del ordenador permitiendo al programa el acceso directo a todos los aspectos de los datos en el paquete. Raw Sockets permite al usuario personalizar varias características de estos paquetes, lo que incrementa la probabilidad de error, accidental o intencionadamente. Figura 4.5: definición de Socket Raw 44 Autor: Adrián Belmonte Martín
  • 54. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos Entre sus características se encuentran: • Usa el protocolo ICMP • Incluye entre sus ataques SYN-ACK Flood y Simple ping flood attack • No aparece cuando se realiza un netstat (por el uso del ICMP) • No se detecta cuando se realiza un análisis de puertos (Usa RAW) • Permite spoofing de IP en Win2k/XP Actualmente se trata de un bot ya bastante obsoleto, las características de ocultación fueron rápidamente subsanadas y no funcionan actualmente, aun así, nos es útil para observar en este tipo de programas una evolución en cuanto la utilidad de los bots de IRC para otro tipo de fines. 4.2 Los primeros bots C&C Avanzando un poco en la complejidad de los programas, nos encontramos una gran variedad de bots más enfocados al “control simple”, suelen ser poco complejos, con tan sólo unos pocos comandos, que sin embargo, confieren un gran potencial de acción. 4.2.1 Microbot Posee tan sólo cuatro comandos: • .login <password> - Registro como dueño del bot • .die – Desconecta el bot del IRC y mata el proceso • .raw <commands> - Envía un texto RAW al servidor IRC • .run <file> - Descarga y ejecuta un archivo desde una Url o un comando DOS Características: • Empaquetado UPX • Pequeño tamaño: 14 Kb • Posibilidad de ejecutar y descargar programas • Para entornos Windows Autor: Adrián Belmonte Martín 45
  • 55. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos UPX UPX (Ultimate Packer for eXecutables) es un empaquetador de ejecutables gratuito, portable y de alto rendimiento. UPX soporta diferentes formatos de ejecutables, incluyendo programas de Windows 95/98/ME/NT/2000/XP y DLLs, programas de DOS, Linux, etc. • Excelente relación de compresión: típicamente comprime mejor que el WinZip/zip/gzip. • Descompresión muy rápida: ~10 MB/s en una Pentium 133, ~200 MB/s en un Athlon XP 2000+. • Universal: UPX puede empaquetar muchos formatos de ejecutables. • Portable • Libre: UPX es distribuido bajo la GNU General Public License. [11] Figura 4.6: Definición de UPX Sin embargo, a pesar de su corto número de instrucciones, puede volverse un arma extremadamente potente: Su pequeño tamaño y la posibilidad de descargar y ejecutar instrucciones desde una dirección, permitiría a un atacante con la suficiente experiencia, tener un control absoluto de la máquina. Este bot no provee de su código fuente, toda la configuración se realiza a través de un archivo ejecutable de configuración: 46 Autor: Adrián Belmonte Martín
  • 56. Bot y Botnets: Análisis de estructura y funcionamiento de las redes de ordenadores comprometidos Figura 4.7: Configuración de Microbot 4.2.2 G-spot Incluye un archivo de configuración en modo grafico y bastante intuitivo, sin embargo, tampoco provee de código fuente. Figura 4.8: GUI de Gspot Autor: Adrián Belmonte Martín 47