Вы находитесь на странице: 1из 16

Laboratorio de Seguridad de Redes

Pgina: 1

UNIVERSIDAD CATLICA DE SANTA MARA


PROGRAMA PROFESIONAL DE INGENIERA DE SISTEMAS

SESIN 4:

Denegacin de Servicios
(DoS).

I
OBJETIVOS

Ejecutar acciones para causar denegacin de servicios


Conocer contramedidas
Realizar pruebas

II
TEMAS A TRATAR
Denegacion de servicio (DoD)
Denegacion de servicio distribuido (DDoD)
Fragmentacin IP

III
MARCO TEORICO
DENEGACION DE SERVICIO
Presenciamos actualmente un gran crecimiento de ataques del tipo DoS (Denial of Service), o sea
Negacin de Servicio. Es un ataque generalmente usado por "script kiddies" o crackers que no desean
pasar mucho trabajo (o no poseen la habilidad suficiente para llevar a cabo un ataque ms elaborado),
para hacer caer su blanco. (Nota de traductor: el trmino se refiere a chicos sin experiencia, que usan
herramientas fciles, creadas por otros. Tambin la diferencia entre hackers y crackers es importante.
Los segundos son los que suelen "romper" las protecciones o hacer dao por el simple placer de
hacerlo).
El DoS consiste en enviar una cantidad de mensajes, a un blanco determinado, superior a la cantidad
que este pueda soportar. En la prctica, el programa ms usado para realizar este trabajo sucio es el
"ping", disponible en todas las distribuciones de Unix, Linux y en las versiones actuales de Windows.
Como vimos en el artculo anterior (NT: Qu es TCP/IP?), los mensajes son enviados a travs de
Internet por medio de paquetes (de bits). Lo que un ping hace, es simplemente enviar en forma
constante una cantidad alta de paquetes a los efectos de sobrecargar su blanco, y as hacer caer sus
servicios por falta de recursos.
En esencia, el comando ping sera usado para verificar que una determinada computadora "estuviera
viva", o sea, con una conexin activa a la red. El ping enva una pequea cantidad de bytes (paquetes

Ing. Karina Rosas Paredes, Ing. Jos Esquicha Tejada

Prctica 04

Laboratorio de Seguridad de Redes

Pgina: 2

de 32 bytes), para comunicarse con otra computadora. Si la misma est activa, devolver un mensaje
avisando que los paquetes fueron recibidos con xito.
Vea este ejemplo de aplicacin del ping en Windows:

Figura 1: Uso normal del ping


Hasta aqu todo bien, el programa es muy til. Haciendo un anlisis, podemos ver que el host
www.uol.com.br est funcionando correctamente. Fueron enviados 4 paquetes de 32 bytes, y todos
ellos retornaron informando que el host est activo.
Lo que los crackers hacen, es especificar el tamao de los paquetes que sern enviados, y adicionar
una instruccin para que esos paquetes sean enviados continuamente. Vea este otro ejemplo, solo que
ahora con instrucciones maliciosas:

Figura 2: Ping usado con intenciones maliciosas


Ciertamente, si usted intenta realizar este procedimiento en solitario, va a notar que nada grave
acontecer con su "blanco".
Es exactamente en este punto que entran los famosos troyanos. Los troyanos son distribuidos en varias
computadoras por la red, y estos programas, a una determinada hora (preestablecida o controlada por
el cracker), ejecutan el comando ping, ya programado para enviar en forma constante, una cantidad
grande de paquetes al mismo blanco (cmo fue visto en el segundo ejemplo).
Considerando un troyano distribuido en cerca de 400 computadoras, todos ejecutando el programa

Ing. Karina Rosas Paredes, Ing. Jos Esquicha Tejada

Prctica 04

Laboratorio de Seguridad de Redes

Pgina: 3

ping, cada uno enviando paquetes de 1,600 bytes, sera lo correspondiente a recibir 625 Kb cada uno o
dos segundos por un tiempo indefinido.
Con certeza este proceso ira a causar una sobrecarga de datos que no sera asimilada por la capa
TCP, causando la extincin temporaria del servicio, y dejando inactiva a aquella computadora. Esto
causa perjuicios significativos tanto en empresas de pequeo como de mucho trfico. Imagine un sitio
de ventas en lnea que quedara fuera del aire durante 2 o 3 das, el dao sera espantoso.

DENEGACION DE SERVICIO DISTRIBUIDO


En la actualidad se conocen cinco sistemas bsicos de ataque distribuido de denegacin de servicio:
Trinoo, Tribe Flood Network, Stacheldraht, Shaft y Mstream.

A. TRINOO
Los primeros demonios de Trinoo se localizaron en abril de 1999 en forma binaria y en varios sistemas
Solaris 2.X que haban sido asaltados utilizando problemas de buffer overrun en rpc.cmsd
[http://www.cert.org/advisories/CA-99-08-cmsd.html].
En un anlisis preliminar se pens que era un mecanismo evolucionado, basado en protocolo UDP,
para la recuperacin automtica de los resultados obtenidos mediante sniffers.
Una vez se obtuvo la primera copia de los fuentes, se vio que el cometido era otro y su funcionamiento
era mucho ms complejo. El demonio se compil y ejecut en Solaris 2.5.1 y Red Hat Linux 6.0. El
maestro pudo compilarse y ejecutarse el Red Hat Linux 6.0.
El 17 de agosto de 1999 se emple una red de Trinoo de al menos 227 sistemas, de los que 114
pertenecan a sistemas ubicados en Internet2, para atacar a un nico sistema de la Universidad de
Minnessota, dejando la red de la universidad inoperante durante ms de dos das. En febrero de 2000,
en la Universidad de James Madison (Harrisonburg Virginia), se detectaron 16 ordenadores
personales infectados con una variante para Windows de Trinoo.
El escenario tpico de un ataque sera: En una cuenta de un sistema asaltado se deposita un repositorio
de herramientas precompiladas: rastreo, ataque, sniffers, root kits , as como demonio y maestro de
Trinoo. El sistema idneo para un asalto dispondr de un gran nmero de usuarios, y por consiguiente,
una gran potencia de proceso y amplio ancho de banda en sus comunicaciones.
Se realiza un rastreo buscando posibles nuevos destinos para posteriores ataques. Suelen buscarse
sistemas Solaris y Linux, dada la disponibilidad de herramientas (sniffers y root kits) para estos
entornos.
Se elabora una lista de sistemas vulnerables que posteriormente se utiliza en un procedimiento de
comandos que realiza el asalto. El resultado es una lista de sistemas asaltados dispuestos para alojar
sniffers o demonios y maestros Trinoo.
Se seleccionan aquellos sistemas ms idneos para incorporarse a la red y se crea otro procedimiento
de comandos que automatiza la instalacin de los procesos Trinoo. De esta forma crece la red Trinoo.
Una red Trinoo esta formada por Atacantes, Maestros, Demonios y Vctimas, y tendra una estructura
como la reflejada en la siguiente figura.

Ing. Karina Rosas Paredes, Ing. Jos Esquicha Tejada

Prctica 04

Laboratorio de Seguridad de Redes

Pgina: 4

El atacante controla uno o ms 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 ms vctimas.
La comunicacin entre los distintos niveles de realiza de la siguiente forma:
Atacante a Maestro: 27665/TCP
Maestro a Demonio: 27444/UDP
Demonio a Maestro: 31335/UDP
La comunicacin entre el atacante y el maestro, as como la del maestro y el demonio estn protegidas
por claves de acceso. En las primeras versiones estas claves se almacenaban en claro en los ficheros
de programa. En versiones posteriores se ha detectado el empleo de mecanismos de criptografa para
el manejo de claves, siendo stas del tipo crypt(). Las claves se emplean en forma simtrica, de manera
que se almacenan cifradas tanto en el maestro como en el demonio, procedindose a su comparacin
con la clave que se proporciona y transporta sin cifrar por la red. Ciertos comandos enviados por el
maestro al demonio tambin estn protegidos por claves, que igualmente se transmiten sin cifrar por la
red.
El maestro mantiene una lista de demonios activos, que se almacena y cifrada mediante el sistema
Blowfish [http://www.counterpane.com/bfsverlag.html].
El ataque de Trinoo es del tipo de inundacin por tramas UDP.

Figura 3
En los ataques de este tipo, el atacante (que en este caso en particular sera el demonio) enva tramas
UDP con direccin de origen falsa y que consigue enlazar el servicio de generacin de caracteres

Ing. Karina Rosas Paredes, Ing. Jos Esquicha Tejada

Prctica 04

Laboratorio de Seguridad de Redes

Pgina: 5

(chargen) de una de las vctimas con el servicio de eco (echo) de la otra. La primera comienza a enviar
caracteres que la segunda responde. El volumen de trfico se va incrementando hasta que los dos
sistemas terminan por inundar la red.

B. TRIBE FLOOD NETWORK


Tambin conocido como TFN, fue originalmente localizado en forma binaria en sistemas Solaris 2.X.
Compuesto por un conjunto de programas clientes y demonios que implementan una herramienta de
denegacin de servicio distribuida, capaz de generar ataques por generacin masiva de paquetes
ICMP, SYN o UDP, as como ataques del tipo smurfing.
Las tramas SYN, o tramas de sincronizacin, representan el inicio de una comunicacin TCP:

donde el Sistema 1 solicita iniciar una comunicacin (SYN), el Sistema 2 contesta afirmativamente (SYN
ACK) al establecimiento de la misma, y el primero termina confirmando el comienzo de sesin (ACK).
En el caso de ataques por inundacin con tramas SYN, el sistema atacante, utilizando una direccin
inexistente o inoperante, enva multitud de solicitudes de establecimiento de conexin (SYN) al sistema
vctima del ataque. Tantas como para llenar la cola de solicitudes pendientes al no contestar los
supuestos peticionarios. Esta situacin lleva a que las solicitudes reales no puedan ser atendidas,
consiguindose de esta forma la denegacin de servicio.
Una red TFN est formada por Atacantes, Clientes, Demonios y Vctimas, y tendra una estructura como
la reflejada en la siguiente figura.

El atacante controla uno o ms clientes. Cada cliente controla a gran cantidad de demonios. Los
demonios son los que reciben la orden de realizar un ataque coordinado contra una o ms vctimas.
El control de la red TFN se realiza mediante comandos enviados al programa cliente.

Ing. Karina Rosas Paredes, Ing. Jos Esquicha Tejada

Prctica 04

Laboratorio de Seguridad de Redes

Pgina: 6

Estos comandos pueden transmitirse mediante diversos mtodos de conexin: shell remoto a un
determinado puerto TCP, shell remoto basado en conexiones UDP cliente/servidor, Shell remoto
basado en conexiones ICMP cliente/servidor, sesin SSH, o un simple Telnet a un puerto TCP.
La comunicacin entre los clientes y los demonios se realiza mediante paquetes ICMP_ECHOREPLY,
por lo que no existe comunicacin del tipo TCP o UDP entre ambos tipos de procesos.
Uno de los puntos fuertes de esta herramienta de ataque por denegacin de servicio es que muchas
herramientas de monitorizacin de redes no analizan todo el abanico de paquetes de tipo ICMP o
simplemente no muestran la parte de datos de estos paquetes, por lo que la deteccin de este dilogo
puede resultar compleja.
Aunque el acceso a los clientes no esta protegido por palabra clave, los comandos que el cliente enva
a los demonios van codificados en forma de nmero binario en dos bytes, siendo fijo el nmero de
secuencia del paquete: 0x0000, lo que puede hacer que parezca como el primer paquete generado por
un comando ping.
Tanto los clientes como los demonios necesitan ejecutar con privilegio de root5, 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 relacin de
demonios. En las ltimas versiones se ha detectado tratamiento criptogrfico en el fichero iplist
mediante el sistema Blowfish.

C. STACHELDRAHT
Esta herramienta de ataque por denegacin de servicio fue detectada entre finales de septiembre y
primeros de octubre de 1999 [http://www.cert.org/incident_notes/IN-99-04.html] tanto en sistemas
europeos como norteamericanos.
El trmino de origen alemn Stacheldraht podra traducirse por alambre de espino o alambrada de
espinos. Combina caractersticas de Trinoo y TFN, y aade mecanismos de cifrado en la comunicacin
entre el cliente y el conductor, as como mecanismos de actualizacin automtica de los agentes.
Su estructura, similar a los anteriores sera:

Algunos analistas consideran Stacheldraht como la competencia a TFN2K, pues presentan muchas
similitudes en cuanto a comportamiento y facilidades: denegacin de servicio mediante avalancha de
tramas ICMP, SYN y UDP, as como ataques mediante tcnicas de amplificacin de broadcast (smurf).
Al contrario que la primera versin de TFN, en donde la conexin entre el atacante y el cliente se
transmita sin cifrar, Stacheldraht dispone de un mecanismo similar a un Telnet (Stacheldraht Term)
para la comunicacin del cliente con el conductor que incluye cifrado mediante el uso de clave
simtrica. Una vez establecida la comunicacin entre el cliente y el conductor, se solicita un password
que est cifrado mediante crypt(). A partir de ese momento toda la comunicacin se realiza de forma
cifrada mediante el algoritmo Blowfish.

Ing. Karina Rosas Paredes, Ing. Jos Esquicha Tejada

Prctica 04

Laboratorio de Seguridad de Redes

Pgina: 7

El Stacheldraht se localiz inicialmente en forma binaria en sistemas Solaris. Un posterior anlisis de los
fuentes ha demostrado que tambin puede ejecutarse en entornos Linux, aunque no parece funcionar
demasiado bien.
La comunicacin entre los distintos niveles de realiza de la siguiente forma:
Cliente a Conductor: 16660/TCP
Conductor a/desde Agente: 65000/TCP, ICMP_ECHOREPLY
La mayor novedad que presenta Stacheldraht respecto a otras herramientas anteriormente analizadas
es la posibilidad de ordenar a los agentes su actualizacin. Para ello se utiliza el comando rcp (514/tcp)
sobre una cuenta robada en cualquier mquina de la red. Los agentes borran la actual copia del
programa, descargan la nueva versin y arrancan sta usando nohup. En ese momento finaliza la
ejecucin de la antigua copia.
En el momento de arranque de un agente, ste intenta leer un fichero de configuracin en el que se le
indica qu conductores le pueden controlar. Este fichero contiene una relacin de direcciones IP y est
cifrado mediante Blowfish. Para los casos en que falle la localizacin del mencionado fichero, el propio
agente lleva definido en el cdigo una serie de direcciones que debe usar por defecto.
Una vez que el agente ha arrancado y dispone de la lista de conductores, comienza a transmitir tramas
del tipo ICMP_ECHOREPLY con ID 666 y conteniendo en el campo de datos la palabra skillz. Todos
aquellos conductores que reciben esta trama contestan con otra del mismo tipo, con ID 667 y en el
campo de datos la palabra ficken. El dilogo entre conductor y agente se mantiene de forma peridica,
lo que permite detectar la presencia de Stacheldraht mediante la monitorizacin pasiva de la red a
travs de un sniffer.

D. SHAFT
Puede considerarse de la misma familia de herramientas que las analizadas anteriormente, y aunque
ha sido de las ltimas en detectarse, se piensa es contempornea a TFN por su modo de operar y
mecanismos de control. De hecho, su estructura bsica es similar:

El Shaft fue localizado a finales de noviembre de 1999, y slo se dispone de los fuentes del mdulo
agente, por lo que hay ciertas opciones que no se conocen con exactitud, por lo que ha sido necesario
deducir su utilidad.
La comunicacin entre los distintos niveles de realiza de la siguiente forma:
Cliente a Conductor: 20432/TCP
Conductor a Agente: 18753/UDP
Agente a Conductor: 20433/UDP
Una de las novedades que presenta esta herramienta es el uso de tickets para garantizar el control
sobre los agentes. Tanto el password como el ticket deben ser correctos para que un agente acepte las
peticiones que le puedan llegar.

Ing. Karina Rosas Paredes, Ing. Jos Esquicha Tejada

Prctica 04

Laboratorio de Seguridad de Redes

Pgina: 8

Tanto el conductor como el agente disponen de su propio conjunto de comandos. Aunque el atacante
slo interacta con el conductor mediante comandos a travs de una conexin Telnet.
A travs del anlisis del cdigo fuente se ha podido detectar la existencia de un cliente por defecto, y
definido de la siguiente forma:
#define MASTER 23:/33/75/28
que restando 1 al valor decimal de cada carcter (Cifrador de Cesar6) obtendremos la direccin IP
129.22.64.17, que corresponde a electrochem1.echem.cwru.edu.
Por otra parte, el programa por s mismo intenta camuflarse como un proceso habitual de un sistema
Unix, como puede ser por ejemplo httpd.
Los autores de Shaft han demostrado tener un inters muy especial por disponer de estadsticas. En
concreto, el ratio de generacin de paquetes de cada uno de los agentes. Es posible que esta
informacin les permita optimizar el nmero de agentes necesarios para ejecutar un ataque, o aadir
ms en caso de disminuir el nivel estimado de carga para que el ataque proporciones los resultados
esperados.

E. MSTREAM
En el segundo trimestre del ao 2000 ha aparecido la ltima herramienta distribuida de denegacin de
servicio, y se ha detectado en universidades americanas. Ha sido diseada para bloquear una red
ahogando determinados sistemas mediante la generacin de gran cantidad de tramas.
Su estructura es muy similar a los sistemas anteriormente citados: un mdulo controlador y un mdulo
agente. El controlador es el encargado de gestionar las relaciones con los agentes. De esta forma, un
atacante conecta con el controlador mediante una sesin Telnet para controlar a los agentes.
El tipo de ataque que generan los agentes es una modificacin del ataque conocido como stream.c,
pues la mayor parte del cdigo del agente se basa en dicho programa. El agente enva paquetes TCP
ACK al sistema que es objeto del ataque, aunque con la particularidad que dichas tramas se encaminan
a puertos seleccionados de forma aleatoria y conteniendo una direccin IP de remitente falsa.
Un ataque de este tipo presenta los siguientes sntomas: El sistema objeto del ataque baja su
rendimiento debido al consumo de CPU por el trfico de red que debe atender. Se observa un consumo
elevado de ancho de banda en la red como consecuencia del propio ataque. El sistema atacado ocupa
an ms ancho de banda al intentar contestar con tramas TCP RST a los falsos remitentes de las
tramas TCP ACK. Los routers contestarn a la vctima con tramas ICMP indicando que el destinatario
de la trama TCP RST no existe, lo que tambin consume an ms ancho de banda.
Aunque cuando este tipo de ataque proviene de un nico sistema no suele producir grandes efectos en
el sistema atacado, pero cambia el panorama cuando son varios los sistemas atacados y muchos los
atacantes, pues slo tiene un desenlace: la saturacin de la red, si no la cada del sistema atacado, y
por consiguiente la denegacin de servicio, que es el objetivo final.
La arquitectura de este sistema es similar a los anteriormente vistos:

Ing. Karina Rosas Paredes, Ing. Jos Esquicha Tejada

Prctica 04

Laboratorio de Seguridad de Redes

Pgina: 9

El cliente es la mquina que el atacante emplea para lanzar el ataque. El conductor coordina a todos los
agentes. Y son stos los que realizan el ataque a la vctima. Cada conductor puede coordinar un
nmero indeterminado de agentes, y cada agente puede estar coordinado por un nmero indeterminado
de conductores. Los agentes necesitan ejecutar con privilegio de root dado que utilizan sockets del tipo
SOCK_RAW.
Se han encontrado tres versiones de esta herramienta, y en cada una de ellas varan los puertos y los
passwords utilizados para la comunicacin entre los distintos componentes.Basndonos en la versin
que de forma annima se public en BugTraq, el conductor escucha por el puerto 6723/TCP, y el
password de identificacin es sex. El conductor tambin escuchapor el puerto 9325/UDP para permitir
que los agentes puedan registrarse.
Los agentes pueden transmitir dos tipos distintos de paquetes. Uno es un pong, como respuesta a una
peticin ping. El otro es un newserver, indicando que la direccin IP indicada se aade a la lista de
agentes. Dicha lista se mantiene en el fichero .sr. Las direcciones IP se codifican aadiendo 50 al
valor ASCII de cada carcter de la direccin IP (Cifrador de Cesar):
138.100.14.35 -> cej`cbb`cf`eg
Mediante el comando cat .sr | tr 'b-k`' '0-9.' | sed 's/<$//' podr ver en claro el contenido del fichero .sr.
En la versin a la que se ha tenido acceso la gestin de la lista de agentes es bastante deficiente, dado
que si un agente arranca varias veces ste aparecer otras tantas veces en la lista. Por otra parte, cada
agente lleva incluido en el propio cdigo la lista de posibles conductores autorizados, con un mximo de
tres, lo que obliga a definirlos en el momento de compilar.
Los agentes atienden por el puerto 7983/UDP los posibles comandos que les puedan transmitir los
controladores. A parte del comando ping anteriormente citado, pueden recibir el comando mstream,
cuyo formato es:
mstream/a1.b1.c1.d1:a2.b2.c2.d2: .../T
donde ax.bx.cx.dx representan las direcciones IP de los sistemas que deben ser atacados, y T
representa la duracin del ataque expresado en segundos.
Existe tambin el comando stream, que es similar a mstream, pero que slo permite lanzar el ataque
a una nica direccin IP, y en este caso la direccin IP del atacante es la real y no una falsa.

FRAGMENTACIN IP
La fragmentacin IP es una tcnica utilizada para dividir los datagramas IP en fragmentos de menor
tamao. sto es necesario ya que cuando los datagramas IP viajan de un lugar a otro, stos pueden
atravesar diferentes tipos de redes y el tamao mximo -llamado MTU- de estos paquetes puede variar
dependiendo del medio fsico utilizado para la transmisin.
El valor mximo que tcnicamente puede utilizarse para un datagrama IP es de 65536 bytes, aunque en
la prctica se utilizan otros tamaos mucho ms pequeos:
Ethernet: 1518 bytes (tpicamente 1500 bytes).

PPPoE: 1492 bytes.


ATM: 8190 bytes.
FDDI: 4470 bytes.
PPP: 576 bytes.

Veamos cmo funciona esta tcnica con ms detalle. La cabecera IP, que suele tener un tamao de 20
bytes, contendr la siguiente informacin:

Identificador de fragmento. Cada Fragmento debe asociarse con un nico identificador para
que el reensamblaje en destino pueda realizarse correctamente.
Informacin sobre la posicin en el paquete final.
Informacin sobre el tamao de los datos que se transportan en el fragmento.
Cada fragmento debe contener el bit MF (More Fragments) para saber si el fragmento actual
es el ltimo o no.

As que la figura de un paquete de mximo tamao que no necesite fragmentacin en una red tpica
Ethernet sera algo as:

Ing. Karina Rosas Paredes, Ing. Jos Esquicha Tejada

Prctica 04

Laboratorio de Seguridad de Redes

Pgina: 10

Paquete de 1500 bytes


Si sumamos la cabecera y los datos encapsulados, tenemos que en total hacen 1500 bytes, por lo que
al viajar por una red Ethernet, no sera necesaria su fragmentacin.
Los datos encapsulados pueden ser tanto un protocolo IP como TCP, UDP o ICMP. Veamos un ejemplo
en el que se tenga que utilizar la fragmentacin. Este es un ejemplo anormalmente grande, pero en el
que podremos ver cmo se realiza el proceso de fragmentacin. Se trata de una peticin echo que pasa
por una red Ethernet con MTU de 1500 bytes

.
Proceso de fragmentacin de un paquete de 4028 bytes
En el paquete original, la suma de las cabeceras y los datos ICMP suman 4028 bytes. Este paquete al
ser transmitido en una red Ethernet deber ser fragmentado, generandose as 3 paquetes de 1500
bytes o menos. Cada fragmento llevar obligatoriamente al menos la cabecera IP (necesaria para saber
hacia dnde se dirige el fragmento), que en este caso ocupa 20 bytes, as que tendremos realmente
1480 bytes tiles.
El primer fragmento contendr la Cabecera IP + la cabecera ICMP + la informacin restante para
llegar a 1500 bytes, en este caso 1472 bytes. Puesto que es el primer fragmento, el valor
de Offset valdr 0 y el bit MF valdr 1 ya que hay ms paquetes.

Ing. Karina Rosas Paredes, Ing. Jos Esquicha Tejada

Prctica 04

Laboratorio de Seguridad de Redes

Pgina: 11

El segundo fragmento contendr la Cabecera IP + la informacin restante para llegar a 1500 bytes, en
este caso 1480. Ahora el valor de Offset valdr 1480, ya que es la posicin que debe ocupar al
ensamblar el fragmento (recordemos que el primer fragmento tena 8+1472 = 1480). El bit MF valdr 1
ya que no es el ltimo paquete.
El tercer fragmento contendr la Cabecera IP + la informacin restante, en este caso 1048 bytes (ya
no hay ms bytes). El valor de Offset valdr 2960, ya que el primer y segundo fragmento ocupaban
1480 cada uno. El bit MF se establece a 0 porque es el ltimo fragmento del paquete.
El campo Protocol slo indica a qu tipo de protocolo corresponde el paquete original. ID
fragmento indica un identificador que ser igual para todos los fragmentos del paquete original, as se
podr reconstruir en destino sin confusin. El bit MF (more fragments) se establecer a 1 siempre,
excepto para el ltimo paquete, que ser 0. El Offset nos indica la posicin que ocupa cada fragmento
dentro del paquete original. El campo Tamao, simplemente registra el tamao del fragmento actual sin
contar la Cabecera IP.
Una vez conocemos a grosso modo cmo funciona esto de la fragmentacin, explicar por encima,
cmo un usuario malintencionado puede utilizar este procedimiento para realizar un ataque.
El ataque ms conocido que explota la fragmentacin IP se llama Teardrop. Este ataque usar
informacin falseada en los fragmentos para poder confundir el reensamblaje en destino y colapsar as
el sistema.

Vulnerabilidades del sistema operativo


Tal como dice la Wikipedia una vulnerabilidad es producida por un error de programacin. La diferencia
entre una vulnerabilidad y un error "normal" es que ste ltimo provoca que el programa deje de
funcionar y la vulnerabilidad permite un funcionamiento "extra" del programa al posibilitar que ste haga
acciones que no ha previsto el programador.
Qu tipo de errores de programacin son los que producen las vulnerabilidades y cules son los
sistemas operativos vulnerables? Cules son los criterios para decir que cierto sistema operativo es
ms seguro que otro?
En la presentacin se analiza en detalle la tcnica de programacin denominada "buffer overflow" que
es la que se usa para convertir un defecto de programacin en una forma de atacarlo, y las medidas
que toman los sistemas para evitar esto:

Limpieza de cadenas
Auditora de cdigo (strcpy vs. strlcpy)
Criptografa fuerte
Pro-police
W^X / NX bit / DEP / PAE
Tcnicas de randomizacin de la distribucin de memoria

Y por ltimo analizamos el mito de que "en Linux no hay virus" mediante analizar los riesgos de la carga
dinmica de mdulos del kernel.

IV
(La prctica tiene una duracin de 2 horas)

ACTIVIDADES

1. Denegacion de Servicio
Para realizar la prueba, tendran que usar los switches del laboratorio.
En cada Switch del laboratorio deben estar conectadas 3 Pcs, en cada maquina debe tener
instalado un servidor Web.
1.1. Instalacion del servidor Web
Ejecutar el xampp-win32-1.5.4a-installer.exe
Instale el xampp de manera predeterminada, siga la secuencia de las imagenes.

Ing. Karina Rosas Paredes, Ing. Jos Esquicha Tejada

Prctica 04

Laboratorio de Seguridad de Redes

Pgina: 12

Al terminar la instalacion, Inicie solo el servicio de apache.

Ing. Karina Rosas Paredes, Ing. Jos Esquicha Tejada

Prctica 04

Laboratorio de Seguridad de Redes

Pgina: 13

Abra un browser y escriba localhost, para verificar si esta funcionando correctamente


el servidor Web.

Abra un bloc de notas y escriba una pequea pagina web que ser publicada en el
servidor web local. Guardela con extension. php dentro de la carpeta ../xampp/htdocs.

Pruebe, que su pagina web se puede vizualizar en su servidor web.

Ing. Karina Rosas Paredes, Ing. Jos Esquicha Tejada

Prctica 04

Laboratorio de Seguridad de Redes

Pgina: 14

1.2. Instalacin Python.


Para que funcione el Ataque de DoS, se debe instalar las librerias de Python en el
Windows7.
Instale Python de manera predeterminada. (La version 2).
http://www.python.org/download/releases/2.7.3/

1.3. Herramienta de DoS


Descomprima el archivo pyloris-3.2.zip en la raiz del Windows 7
Ejecute el archivo pyloris.

Ing. Karina Rosas Paredes, Ing. Jos Esquicha Tejada

Prctica 04

Laboratorio de Seguridad de Redes

Pgina: 15

Cambie la direccion del host con la direccion IP de su servidor Web.


El numero de puerto 80, el limite de ataque =0, el limite de conecciones 900 y el
limite de los hilos 900. Finalmente presion el boton Atacar.

Deber esperar entre 10 a 15 minutos para que el ataque este completado.

Despues de la espera, se puede esperar que el servidor ha caido.

Qu haria usted para solucionar el problema?, Imagnese que usted es el


administrador del servidor web y debe darle una solucin rpida.

Ing. Karina Rosas Paredes, Ing. Jos Esquicha Tejada

Prctica 04

Laboratorio de Seguridad de Redes

Pgina: 16

VI
EJERCICIOS
1. Realice otras pruebas de DoD y DDoS en capa 1, capa 3 y capa 7.
2. Elabore un manual de funcionamiento para cada uno de ellos.

VII
BIBLIOGRAFIA

1. www.ac.usc.es/docencia/ASRII/Tema_3html/node16.html
2.

packetstormsecurity.org

3. http://packages.ubuntu.com/hardy/iptraf
4. http://www.comptechdoc.org/independent/security/terms/teardrop-attack.html
5. http://read.pudn.com/downloads111/sourcecode/unix_linux/network/461939/%E6
%96%B0%E5%BB%BA%E6%96%87%E4%BB%B6%E5%A4%B9%20(3)/tear
drop.c__.htm
6. www.projet7.org/releases/smurf.html

Ing. Karina Rosas Paredes, Ing. Jos Esquicha Tejada

Prctica 04