Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ZOMBIES EN LOS
ATAQUES DDoS.
por
U.N.R
2006
Universidad Nacional de Rosario
Resumen
Por
i
TABLA DE CONTENIDO
Como dice un famoso refrán: "la unión hace la fuerza". Esta frase tan sabia nos
explica de la importancia que tiene el trabajar unidos. Si muchas personas se
unen con un fin benéfico, probablemente concretarán sus deseos.
Si bien, una Botnet puede usarse para diversos fines maléficos, centramos
nuestra atención en un ataque de Denegación de Servicio Distribuido (DDoS por
sus siglas en inglés)
Capitulo 1
Las maquinas zombies son computadoras infectadas por algún tipo de malware,
al servicio de terceras personas para ejecutar actividades hostiles con total
desconocimiento del propietario o administrador del equipo. El nombre procede
de los zombies o muertos vivos esclavizados, figuras legendarias surgidas de los
cultos vudú.
• Servidores de pornografía
• Distribución de malware
2
Las maquinas zombies se siguen comportando mas o menos de la misma forma
que lo hacen comúnmente para no despertar ninguna sospecha a sus usuarios y
así seguir buscando victimas, infectarlas y continuar con este proceso de forma
exponencial de infección.
Los equipos que actúan como maquinas zombies se encuentran dentro de una
red de bot conocida como bonets.
3
Capitulo 2
BotNet
4
favorito y evitando que cualquier otro usuario pudiera tomarlo mientras uno
permanecía desconectado.
Actualmente, los Bots son amenazas múltiples, que combinan aspectos del
spyware, spam, malware y DDoS, y son distribuidos por virus y gusanos. Miles
de computadores pueden ser rápidamente infectados, formando redes de Bots
(Botnets).
En entornos más serios como UNIX, GNU/Linux o BSD la forma más clásica de
ataque a servidores para construir y expandir una Botnet es por telnet o SSH
(puertos 23 y 22 respectivamente) por medio del sistema prueba-error, probando
usuarios comunes y contraseñas al azar contra todas las IPs que se pueda de
forma sistemática o bien mediante ataques a bugs muy conocidos dado que los
administradores descuidados dejan sin parchear o corregir vulnerabilidades en
sus servidores causando un gran perjuicio para ellos (consumo de ancho de
banda, tiempo de CPU, pérdida de prestigio, repercusiones legales...) y para el
resto de Internet (spam, dDOS...).
Las compañías deben estar alertas, ya que sus activos se ven amenazados en
dos frentes: 1) los atacantes intentan tomar control de los computadores de la
red para utilizarlos como parte de ataques coordinados; o 2) los activos de la
5
organización pueden ser el objetivo de un ataque coordinado de DDoS.
En la mayoría de los casos, los Bots implantados se aprovechan de
vulnerabilidades en los sistemas operativos para distribuirse. Incluso se han
detectado casos donde el Bot aprovecha una vulnerabilidad en el sistema, se
instala, y después aplica las actualizaciones necesarias para corregir dicha
vulnerabilidad, para que el computador parezca que no es vulnerable al Bot. Una
vez infectado, lo primero que debe hacer un computador es reportarse con el
hacker creador.
Debido a que los Bots utilizan IRC para comunicarse, dado que de esta forma
pueden expandirse mas rápidamente y pasar desapercibidos puesto que el
atacante actúa como un usuario mas del canal. Generalmente se establece un
enlace de comunicaciones TCP por el puerto 6667, el puerto IRC por defecto.
Esta comunicación es necesaria ya que por esta vía el hacker ejecutará las
instrucciones necesarias para llevar a cabo su ataque.
Finalmente, podría ser utilizado para distribuir correos SPAM y de phishing. Esto
hace casi imposible la detección del atacante original, ya que el mismo no forma
parte de la Botnet. Actualmente, más del 70% de todo el correo SPAM es
originado por Botnets.
6
Existen paginas en Internet donde se pueden encontrar foros y tutoriales con
información de cómo montar una bonet en forma practica. Para mayor
información consultar la bibliografía.
7
Capitulo 3
Arquitectura de Internet.
Internet fué diseñado teniendo en mente una red funcional y no una red
segura.
8
b) Los recursos en Internet son limitados: Cada host de la red tiene un
número limitado de recursos que pueden ser consumidos por un número lo
suficientemente grande de usuarios.
9
a) Los medios utilizados para preparar y concretar el ataque.
10
maestro, debido a que se usa un servicio legítimo para comunicar y coordinar
una botnet.
11
computado desde su espacio de direcciones. Cuando encuentra una nueva
máquina ya infectada, elige un nuevo punto de inicio aleatorio. Este
escaneo tiene el efecto de permitir un escaneo semi coordinado y sensitivo
mientras mantiene los beneficios de un sondeo aleatorio.
12
recursos. Algunos ejemplos de éste método son: ataque TCP SYN, ataque
CGI request y ataque de autenticación de servidor.
Ataque por fuerza bruta: El ataque por fuerza bruta se logra por el inicio de
un gran conjunto de transacciones aparentemente legítimas. Una upstream
network normalmente puede entregar un volumen de tráfico tan grande que la
red víctima no puede manejar, esto desgasta sus recursos.
a) Ataques filtrables: Éste tipo de ataque usa paquetes falsos o que nos son
críticos para los servicios de la víctima. El problema puede ser filtrado con
un firewall.
La línea que separa un ataque de protocolo y uno por fuerza bruta es muy
fina.
13
Ataque a taza continua: Una vez que se ordena a los agentes que realicen el
ataque, las máquinas agentes generan paquetes de ataque con toda su
fuerza. Este repentino diluvio hace estragos rápidamente en los servicios de
las víctimas y ponen al descubierto el ataque.
14
Capitulo 4
La denegación de servicio, por tanto, sólo busca el impedir que los usuarios de
un determinado sistema no puedan acceder a él, y por consiguiente a los
servicios que proporciona. En las circunstancias actuales de globalización, el
daño económico y de imagen que sufre una empresa por un ataque de este
tipo probablemente sea mucho mayor que el derivado de una simple intrusión.
15
simples estados de inconsistencia que provocan que el proceso que atiende el
servicio quede inoperante.
16
TRINOO
Con los resultados obtenidos del rastreo se genera una lista de ordenadores
vulnerables dónde se ejecutarán los programas para obtener el acceso
(exploits).
Una red Trinoo esta formada por Atacantes, Maestros, Demonios y Víctimas, y
tendría una estructura como la reflejada en la siguiente figura.
17
El atacante controla uno o más maestros. Cada maestro controla a gran
cantidad de demonios. Los demonios son los que reciben la orden coordinada
de realizar un ataque contra una o más víctimas.
En los ataques de este tipo, el atacante envía tramas UDP con dirección de
origen falsa y que consigue enlazar el servicio de generación de caracteres
(chargen) de una de las víctimas con el servicio de eco (echo) de la otra. La
primera comienza a enviar caracteres que la segunda responde. El volumen de
18
tráfico se va incrementando hasta que los dos sistemas terminan por inundar la
red.
Una red TFN esta formada por Atacantes, Clientes, Demonios y Victimas.
El atacante controla uno o más clientes, los cuales pueden controlar varios
demonios. Los demonios son quienes reciben las instrucciones para realizar un
ataque coordinado basado en paquetes hacia una o más victimas por cliente.
19
El control remoto de una red TFN es logrado vía ejecución de comandos de
línea desde el programa cliente lo cual puede lograrse a través de alguno de
los siguientes métodos de conexión:
Aunque el acceso a los clientes no esta protegido por palabra clave, los
comandos que el cliente envía a los demonios van codificados en forma de
número binario en dos bytes, siendo fijo el número de secuencia del paquete:
0x0000, lo que puede hacer que parezca como el primer paquete generado por
un comando ping.
20
#define ID_STOPIT 567 /* to stop flooding */
#define ID_SENDUDP 890 /* to udp flood */
#define ID_SENDSYN 345 /* to syn flood */
#define ID_SYNPORT 678 /* to set port */
#define ID_ICMP 901 /* to icmp flood */
#define ID_SMURF 666 /* haps! haps! */
Tanto los clientes como los demonios necesitan ejecutar con privilegio de root,
pues utilizan sockets del tipo SOCK_RAW. Por otra parte, el cliente necesita
disponer del fichero conteniendo la lista de direcciones IP de los demonios
(iplist), por lo que localizado el cliente se dispone de la relación de demonios.
En las últimas versiones se ha detectado tratamiento criptográfico en el fichero
iplist mediante el sistema Blowfish.
21
5 Realizar un ataque SUMRF, la primera IP es la dirección
de origen y las demás son usadas como direcciones de
broadcast.
[ip] Dirección de origen (separadas por @ si hay mas de una)
[port] Debe especificarse para SYN Flood (0 =aleatorio).
• Los ataques utilizados son TCP SYN Flood, UDP Flood, ICMP/PING
Flood o SMURF. El demonio (daemon) puede ser programado para que
alterne entre estos cuatro tipos de ataque, lo que permite mantener un
ataque sostenido contra un ordenador concreto dificultando la detección
del ataque por los sistemas tradicionales de seguridad (Firewall).
22
• Los comandos enviados ya no se basan en cadenas de caracteres
(strings), sino que son de la forma
<ID> + <DATA>
• El daemon genera un proceso hijo para cada ataque a una dirección IP.
Además prueba de diferenciarse entre sí por los argumentos/parámetros
(arg[0]) que se pasan al ejecutarse.
23
Otros errores que pueden ayudar en la detección de tramas generadas por
TFN2K son:
STACHELDRAHT
24
Algunos analistas consideran Stacheldraht como la competencia a TFN2K,
pues presentan muchas similitudes en cuanto a comportamiento y facilidades:
denegación de servicio mediante avalancha de tramas ICMP, SYN y UDP, así
como ataques mediante técnicas de amplificación de broadcast (smurf). Sin
embargo a diferencia del TFN no contiene la posibilidad de proporcionar un
“shell de root” en las máquinas infectadas.
25
En el momento de arranque de un agente, éste intenta leer un fichero de
configuración en el que se le indica qué conductores le pueden controlar. Este
fichero contiene una relación de direcciones IP y está cifrado mediante
Blowfish. Para los casos en que falle la localización del mencionado fichero, el
propio agente lleva definido en el código una serie de direcciones que debe
usar por defecto.
SHAFT
26
en donde a los conductores (master/handler) los llama shaftmaster y a los
agentes (slaves) shaftnode.
27
Por otro lado en lo que se supone un fallo de implementación, tenemos que el
número de secuencia de todos los paquetes TCP es fijo siempre (0x28374839)
lo que permite su detección a nivel de red.
Los autores de Shaft han demostrado tener un interés muy especial por
disponer de estadísticas. En concreto, la tasa de generación de paquetes de
cada uno de los agentes. Es posible que esta información les permita optimizar
el número de agentes necesarios para ejecutar un ataque, o añadir más en
caso de disminuir el nivel estimado de carga para que el ataque proporcione los
resultados esperados.
MSTREAM
cliente(s)-->conductor / master(es)-->agente/slave(s)-->victima(s)
28
• Ataque con múltiples orígenes: saturación de la red
Al igual que las otras herramientas tanto los agentes como los conductores
tienen un grupo de comandos para comunicarse.
29
Conclusión
Como en todo ataque es importante que la identidad del atacante esté escondida
para de esta manera dificultar enormemente el desarme de la red.
30
- Algunos cifran sus comunicaciones para esconder mejor su trabajo
(ataque no filtrable - como puedo saber si me están acatando cuando no puedo
entender el contenido de los paquetes).
31
BIBLIOGRAFÍA
32
“TCP SYN flooding and IP spoofing attacks”, http://www.cert.org/advisories/CA-
1996-21.html
33