Este tipo de ataque se basa sobre una tecnica llamado computacion
distrubuida, en la cual y sin la ayuda de un sistema ya programado, se logra
distribuir el esfuerzo o el trabajo computacional que requiera una tarea en
varios equipos o maquinas , consiguiendo de esta forma una menor exigencia
de los requerimientos de cada equipo y de esta forma reduciendo los costos.
Recientemente se han llevado 2 proyectos muy famosos usando esta tecnica ,
en primer lugar un proyecto llevado a cabo por SETI en el cual cada usuario
descargaba un programa que descargaba datos obtenidos por
radiotelescopios del servidor de SETI y eran analizados en busca de señales
de cluturas extraterrestres , el otro proyecto fue el de romper el DES a la
fuerza bruta mediante una arquitectura también de cliente/servidor similar a
la del SETI y obteniendo exito en muy poco tiempo y aunque el modelo
cliente/servidor es el mas conocido tambien existen otros modelos . Los
beneficios de esta tecnica son obvios y sin nos podemos a pensar en su
aplicacion al hacking estso se aumentaran al maximo, por ejemplo que tal si
envez de hacer un port-scanning desde nuestra
maquina lo hacemos desde multiples maquinas , pues que obtenemos grandes
beneficios en cuanto a que la conexion de nuestra maquina no se recargara
mucho y obtendremos un anonimato al ser lo ip fuentes de otras maquinas , el
problema es que si se trata de una causa justa o interesante mucha gente
ofrecera su maquinas, pero si se trata de hacer un mail-bombing no creo que
haya muchas personas esten dispuestas a ayudarnos ; asi que lo que
debemos hacer es basicamente valernos de medios no muy "ortodoxos" para
instalar el programa esclavo en cuantas maquinas podamos y luego desde
nuestro programa maestro manejarlos a todos y conquistar al mundo !, y es
que en realidad no
exagero, imaginense ustedes tener bajo su mando mas de 1000 maquinas
incluyendo servidores y maquinas personales , todos dispuestos a obedecer
nustras ordenes, espectacular !.
Asi que en esto se basa el DDos, en usar la parte " slave " de una utilidad
DDos e instalarla en cuantas maquinas podamos y luego usar el programa "
master " para lanzar un ataque de flood de distintos tipos al server que
queramos y desde cada maquina, aunque el TFN2000 ha ido mas lejos y no
solo podemos lanzar ataques Denial of Service, sino que podemos ejecutar
comandos personalizados, casi como un Backoriffice, pero en cientos de
maquinas !.
Como vemos el concepto es muy simple y se basa en una arquitectura cliente
servidor, en la que tencgo un solo cliente y varios servers dispuestos a seguir
mis ordenes, algo asi :
Aunque el grafico me quedo muy cutre creo que entendieron el concepto
En realidad las posibilidades son fascinantes, es como si nuestro humilde 486
con Modem se convirtiera en todo un servidor IBM con X25 a bordo seriamos
David con las herramientas para derrotar a Goliat. Es por eso que aqui en
TCLegion estamos trabajando en una herramienta para computacion
distrubuida y que por el momento permitira hacer Pings , enviar paquetes con
contenido y flags personalizados (OOB?,DONTROUTE?), enviar mail anonimo y
masivo >=) , y hacer port-scaning el cual seria distribuido y anonimo , para
despistar al enemigo >=)
A continuacion y para ver la parte practica de todo esto analizaremos 4
herramientas para DDOS nativas de UNIX (si alguien conoce alguna de
Windows por favos que me escriba y me cuente) :
1. BlitzNet : Creado por phreeon , se compone de varios archivos divididos
principalmente en dos partes, los que van en las maquinas esclavas y los que
van en el server. En las maquinas esclavas debemos copiar los archivos blitzd
y slice2 , el primero es el daemon que detecta cuando nos conectamos y el
segundo es un programa hecho por otro autor que hace un flood de paquetes
syn,
cuando ya tengamos los dos archivos en la maquina debemos ejecutar blitzd
pasandole dos parametros : el puerto en el que queremos que escuche y una
cadena que sera el nombre que use el programa para "esconderse". Y en
nuestra maquina debemos tener los archivos blitz, rush. tcl, strobe y shell.list ,
el primero es el ejecutable del master, pero nosotros debemos ejecutar
rush.tcl, en shell.list debemos poner la lista de maquinas " infectadas " de la
forma ip-port ejemplo 192.9.49.33 31337, cuando el programa encuentre una
linea en blanco dejara de leer shell.list , strobe lo usara el programa para ver
si nuestros esclavos estan "vivos".
La forma de ejecutar el master sera asi : ./rush.tcl y podemos poner -check si
queremos hacer un scanning para ver cuantos de nuestros esclavos estan
vivos, o si queremos hacer un ataque lo haremos asi :
<source> <dest[,dest]> <start> <stop> <dupes> <duration>
Por ejemplo con :
./rush.tcl 192.43.9.33 0 1 600 10 600
Donde 192.43.9.33 sera la IP victima , el 0 significa que usara un IP fuente
escogido al azar, 1 es el puerto de inicio, 600 el puerto final, el 10 significa que
en cada esclavo creara 10 threads, y el ataque durrara 600 segundos. Como
ven completamente Mortal !.
Si queremos atacar varios targets al tiempo, lo haremos separando las IPs con
comas, ejemplo :
./rush.tcl 192.43.9.33,192.45.89.76,156.23.56.8 0 1 600 10 600
Y Blitznet distrubuira los targets entre las computadoras "atacantes"
Como ven un programa simple pero eficaz. Creado por phreeon@EFnet del
grupo Legend y el nombre del archivo es Blitznet.tar.gz
2.Stachel : utilidad para hacer syn/udp ddos hecha por Randomizer. Para
instalarlo simplemente descomprimimos stachel-yps.tar.gz y ejecutamos make
linux, este ejcutara un programita que nos preguntara por una passphrase,
introducimos el password y este acabara de instalarse. Para instalar el
daemon en las computadoras victmas debemos subir los archivos de la
carpeta client a la maquina y ejecutar el respectivo Make. Ya en nuestra
maquina ejecutaremos mserv y nos mostrara una pantalla de introduccion
donde podremos introducir help y veremos :
available commands in this version are:
--------------------------------------------------
.mtimer .mudp .micmp .msyn .mack .mnul .msort
.showalive .madd .mlist .msadd .msrem .help
.setusize .setisize .mdie .sprange .mstop .killall
.showdead .forceit .left
--------------------------------------------------
Como vemos los comandos son muy descriptivos y quizas los mas interesantes
son .msyn, micmp, mudp, en resumen una buenta utilidad y una de las
primeras de DDos.
3.Trinoo : Utilidad anonima para hacer smurf ddos . La parte del daemon esta
compuesta solo por un archivo ns.c, asi que simplemente lo subimos a la
maquina lo compilamos y ejecutamos y listo . La parte del master esta como
no, en la carpeta Master , asi que simplemente entramos ahi y ejecutamoes
make, por cierto este programa al igual que stachel usa blowfish como
algoritmo para encriptar las comunicaciones. Luego ejecutamos master y
estaremos frente a un prompt asi : Trinoo> en el cual podremos introducir los
comandos info - bcast - mping - mtimer - dos - mdos - mdie - quit - nslookup
Los mas improtantes son bcast que nos muestra la lista de todos los
Broadcast atacantes, dos <IP>, que ataca la ip seleccionada, mdos <IP1> ,
<IP2>, <IP3>, etc que ataca varias IP al tiempo y nslookup que nos devuelve
la IP de un hostname.
Una buena utilidad con una buena interfaz .
4.TFN2000 : Tribe Flood Network 2k - Este es el mejor y mas conocido de los
programas analizados, tal vez debe la mayor parte de su fama a su
participacion en los famoso ataques de este año a Yahho , Ebay , etc . Como lo
dice su creador Mixter TFN2K es un programa que usando funcionalidad
distribuida de tipo cliente/servidor, stealth, tecnicas de encripcion y numerosas
funciones mas permite controlar un gran numera de maquinas remotas para
generar por demanda ataques de DOS anonimos y acceso a un shell remoto .
Esta ultima funcion extiende las capacidades de TFN2K para realizar casi
cualquier tipo de tarea en una red distribuida. Otra de sus ventajas es su
compatibilidad con Win32 al poderse compilar con Win32, en realidad su
codigo fuente es una
excelente pieza de estudio para quienes quieran aprender a programas
sockets, excelente !.
Para instalarlo simplemente hacemos un MAKE linux o lo que sea y si todo va
bien tendremos dos archivos td y tfn, td es el server y simplemente debemos
ejecutarlo en un root shell o en nt con privilegios de administrador. El tfn por
supuesto es el cliente y el que nos permitira divertinos un buen rato, lo
primero es especificar los esclavos lo cual lo podemos hacer de dos formas,
con la opcion -h especificamos un solo host, y con la opcion -f podemos
especificar un file en el cual estaran guardados los IPS; el tfn lo debemos
llamar dandole las IPs victimas separadas con @, la opcion -i nos servira
paradarle valor a los parametros del comando que llamemos y -cX nos
permitira usar un total de 10 comandos, puediendo estos ser :
1 : Nos premite controlar que parte de la IP falsa del ataque DOS sera
spoofeada y que parte no lo sera.
2 : Cambia el tamaño de los paquetes del ataque DOS
3 : Inicia un servidor en el puerto que le indiquemos y que iniciara una shell
root cuando nos conectemos a el.
4 : UDP flood attack. Este ataque sirve para explotar el hecho que por cada
paquete UDP que mandemos a un host inalcanzable se respondera un
mensaje ICMP "unreachable message"
5 : Syn flood attack. Todos ya conocemos este clasico ataque que se realizara
de una forma totalmente anonima.
6 : ICMP echo reply (ping) attack. Este ataque envia grandes peticones Ping
con IPs erroneos, provocando la respuesta de paquetes de igual tamaño.
7 : SMURF attack . Envia peticiones Ping con la IP fuente de la victima a
amplificadores broadcast,los cuales responderan con un drastica multiplicacion
del tamaño de los paquetes a la victima.
8 : MIX attack. Envia paquetes UDP,SYN e ICMP intercambiados con una
relacion 1:1:1 los cuales pueden ser peligrosos especialmente para router o
otros servicios de packet forwading.
9 : TARGA3 attack. Envia paquetes al azar basados en protocolos y valores
que se sabe son criticos y peligrosos, y pueden causar en algunas
implementaciones de la pila de IP un fallo total o algun otro comportamiento
indefinido.
10 : Ejecucion remota del comando que le pasemos con la opcion -i. Muy
interesante!.
Asi si por ejemplo queremos hacer un syn flood a 125.36.56.51 lo hacemos
asi:
tfn -f hosts.txt 125.36.53.51 -c5
O si queremos cambiar el tamaño de los paquetes lo hacemos asi :
tfn -f hosts.txt -c1 -i4
Y si queremos tener una shell en 192.32.56.25 en el puerto 33137 lo hacemos
asi :
tfn -f host.txt 192.32.56.25 -c3 -i33137
Espero q os sea de gran ayuda suerte saludos .. xD