Logo Studenta

(9) DoS

¡Estudia con miles de materiales!

Vista previa del material en texto

DoS
Índice
3
4
7
1 | Conceptos
2 | Tipos de ataques
3 | Pruebas
DoS | TELEFÓNICA // 3
Según la Wikipedia, un ataque de denegación de servicio1, también 
llamado ataque DoS (por sus siglas en inglés), es un ataque a un 
sistema de computadoras o red que causa que un servicio o recurso 
sea inaccesible a los usuarios legítimos. Normalmente provoca 
la pérdida de la conectividad con la red por el consumo del ancho 
de banda de la red de la víctima o sobrecarga de los recursos 
computacionales del sistema atacado. Un ejemplo notable de ello se 
produjo el 27 de marzo de 2013, cuando el ataque de una empresa 
a otra inundó la red de correos basura provocando una ralentización 
general de Internet e incluso llegó a afectar a puntos clave como el 
nodo central de Londres.
Los ataques DoS se generan mediante la saturación de los puertos 
con múltiples flujos de información, haciendo que el servidor se 
sobrecargue y no pueda seguir prestando su servicio. Por eso se le 
denomina denegación, pues hace que el servidor no pueda atender 
a la cantidad enorme de solicitudes. Esta técnica es usada por los 
crackers o hackers para dejar fuera de servicio servidores objetivo.
Una ampliación del ataque DoS es el llamado ataque de denegación 
de servicio distribuido (DDoS por sus siglas en inglés) el cual se lleva 
a cabo generando un gran flujo de información desde varios puntos 
de conexión. La forma más común de realizar un DDoS es a través 
de una red de bots, siendo esta técnica el ciberataque más usual y 
eficaz por su sencillez tecnológica.
En ocasiones, esta herramienta ha sido utilizada como un buen 
método para comprobar la capacidad de tráfico que un ordenador 
puede soportar sin volverse inestable y afectar a los servicios que 
presta. Un administrador de redes puede así conocer la capacidad 
real de cada máquina.
1. Conceptos
1 https://es.wikipedia.org/wiki/Ataque_de_denegaci%C3%B3n_de_servicio
Imagen 130 Esquema denegación de servicios
INTERNET
Attacker machine 
running silent progam
Handler
Compromised Compromised Compromised Compromised Compromised Compromised
Targeted Servers
Handler Handler Handler Handler Handler
http://es.wikipedia.org/wiki/Ataque_de_denegaci%C3%B3n_de_servicio
DoS | TELEFÓNICA // 4
UDP Flood (Saturación UDP)
Este ataque DDoS aprovecha el protocolo UDP (User Datagram 
Protocol), un protocolo de red que no necesita una sesión iniciada en 
el equipo remoto. Este tipo de ataque inunda puertos aleatorios dicho 
host remoto con numerosos paquetes UDP, causando que el equipo 
víctima compruebe ante cada petición a cada puerto, si hay alguna 
aplicación escuchando en destino; y en caso de no haberla responde 
con un paquete ICMP (Internet Control Message Protocol) de error 
de destino. Al ser el número de paquetes enviado enormemente 
exagerado, este proceso agota los recursos del servidor o equipo, y 
en última instancia puede conducir a la inaccesibilidad.
ICMP Flood (Saturación por Ping)
Similar en principio al ataque de inundación UDP, este en particular 
satura el recurso de destino con solicitud de paquetes “eco” ICMP 
(más conocido como ping), básicamente se trata de enviar paquetes 
de solicitud sin esperar los paquetes de respuesta. Este tipo de 
ataque puede consumir tanto ancho de banda saliente y entrante, 
ya que las solicitudes intentarán ser respondidas con paquetes ICMP 
mientras no paran de llegar nuevos paquetes, dando como resultado 
una significativa desaceleración general del sistema, hasta lograr la 
caída del servicio o el reinicio de la máquina. Los ataques mediante 
ICMP flood pueden ser detenidos gracias a la configuración de Listas 
de Control de Acceso (ACL’s) en routers y switches.
Service Port Flood (Ataque sobre Puertos de Servicio)
Así como en los ataques UDP Flood se atacaban puertos 
aleatoriamente, en este tipo de ataques las peticiones irán dirigidas 
hacia los puertos estándar en los que se conoce que habrá más 
volumen de tráfico (el puerto TCP 80, por ejemplo) tanto entrante 
como saliente. Estamos ante un tipo de ataque considerado de los 
más complejos para evitarlos o detenerlos. Por lo que deberemos 
implementar herramientas específicas para esta tarea o derivar 
todas nuestras comunicaciones por un mitigador o analizador de 
tráfico que detecte estos ataques.
HTTP Flood (Saturación HTTP)
En los ataques por HTTP DoS, como atacantes haremos uso de 
peticiones GET o POST en apariencia válidas para atacar servidores 
o aplicaciones web. Aquí no usaremos paquetes con tamaños 
abusivos ni nada por el estilo. Este ataque hace uso de muchísimo 
menos ancho de banda para inhabilitar a nuestra víctima, o incluso 
tomar el control. Uno de los usos más habituales de este ataque, 
es el de usar la máquina que acabamos de atacar para usar sus 
recursos y atacar a otros servidores o aplicaciones web; o dicho de 
otra forma para comenzar a crear una botnet o seguir ampliando la 
que ya tenemos.
2. Tipos de ataques
DoS | TELEFÓNICA // 5
SYN Flood
Así funciona la secuencia de conexión de tres pasos del protocolo 
SYN. Nosotros enviamos una petición SYN para iniciar la conexión 
TCP que el host al que conectamos debe responder con un paquete 
SYN-ACK para nosotros confirmarlo con una respuesta ACK. El 
ataque comienza cuando ignoramos la petición ACK por parte de 
nuestro objetivo, este mantiene las conexiones abiertas a la espera 
de respuesta y nosotros continuamos enviando paquetes SYN, lo 
que provoca que dicha máquina siga enviando peticiones SYN-ACK; 
saturando así el tráfico saliente y entrante del host. Los ataques 
SYN flood puede ser detenido fácilmente con la implementación de 
firewalls, tanto de tipo hardware como software.
Slowloris
En el resto de tipos de ataques enviamos paquetes o solicitudes 
completas. Pero en esta ocasión, lo que hacemos es enviar 
únicamente las cabeceras de las peticiones (HTTP en este caso), sin 
llegar a completar nunca una de estas al completo, con lo que cada 
“media-petición” que enviamos queda abierta, a la espera de que 
terminemos de enviar la información restante para completarla, lo 
que en poco tiempo acabará consumiendo los recursos del servidor 
víctima y denegando el servicio al resto de peticiones legítimas.
Ping of Death (Ping ‘de la Muerte’)
Por norma general una petición ping tiene un tamaño de 32 bytes 
(incluida la cabecera) y los servidores no tienen ningún problema para 
gestionar las peticiones y enviar la respuesta correspondiente legítimas.
Con el conocido como “Ping de la muerte” (Ping of Death o PoD), lo 
que hacemos es enviar paquetes mediante ping, pero con un tamaño 
mucho mayor y a mayor frecuencia de lo normal.
El esquema de este ataque es el siguiente:
ping DIRECCIÓN.IP.DEL.OBJETIVO -l 65535 -n 10000000 -w 
0.00001
Donde:
• l: Indica el tamaño del paquete en Bytes. Como vimos antes, 
el tamaño por defecto es de 32bytes y nosotros estaremos 
enviando 65535bytes, que es el tamaño máximo permitido por 
el comando.
• w: Estipula el tiempo de espera para la respuesta antes de enviar 
otro paquete. Como no nos interesa recibir respuestas, si no 
saturar de paquetes peticionarios al objetivo, lo establecemos a 
una espera ridículamente pequeña para que el envío de paquetes 
sea continuo.
• n: Establece una cuenta con el número de paquetes que 
enviaremos. Por defecto enviará 4 peticiones, y como se ve en el 
ejemplo, para nosotros eso no era bastante, por lo que subimos 
hasta los 10 millones de peticiones (y porque no nos hemos 
querido poner “chulos”) ;).
Este comando debe ejecutarse como usuario root para poder cambiar 
los tamaños de paquetes, intervalos de envío, etc… Además, es de 
los más “flojitos” que podemos encontrar en esta lista, debido a 
que es uno de los ataques contra los que primero se protegen los 
servidores. Por lo que para realizar una denegación de servicio como 
tal necesitaríamos una red de bots (botnet o red de equipos bajo 
nuestro control) que atacasen al objetivo de forma simultánea.
DoS | TELEFÓNICA // 6
NTP Amplification(Amplificación NTP)
Este tipo de ataque es muy curioso a la par que también es bastante 
difícil de detener, explico el por qué. Nosotros como atacantes 
realizaremos una petición a un servidor NTP (Network Time Protocol 
o Protocolo en Red de Tiempo, servicio dedicado a sincronizar el 
reloj del sistema con diversos servidores). Una petición realizada 
devolverá un paquete que contendrá las 100 últimas direcciones IP’s 
que se hayan conectado a ese servidor, con un tamaño en proporción 
a la petición enviada de entre 1:60 a 1:200. Lo “gracioso” del ataque 
es que, para realizar esta petición, “spoofearemos” (robaremos la ip 
de nuestra víctima y la usaremos como nuestra) la ip de la máquina 
a la que queremos atacar, llegando a ésta los enormes paquetes 
devueltos.
Si este proceso lo repetimos al estilo PoD, o bien usando una botnet, 
el resultado será la saturación del servicio de la ip de nuestra víctima 
hasta hacer inaccesible, bien por la propia saturación del servicio, 
bien porque resulte en un ‘crasheo’ del sistema.
Es bastante difícil de detener porque los paquetes “atacantes” 
provienen de servidores lícitos y verificados, por lo que lo único que 
podremos hacer es mantener el servicio ntpd lo más actualizado 
posible, o si no nos es posible, restringir el proceso asociado 
‘moonlist’ mediante la edición del archivo ntp.conf, añadiendo la 
directiva ‘noquery’ a las líneas de “restricción por defecto”.
Blended Flood (Ataque combinado)
Esto se da cuando múltiples tipos de ataques se combinan en el 
servidor, lo cual al final termina confundiendo al equipo. Debido a 
su complejidad, no pueden ser detenidos por firewalls, switches, 
routers, ni dispositivos IPS (Intrusion Prevention System), a menos 
que lo configuremos a conciencia, pero al ser ataques que mezclan 
las diferentes técnicas aquí descritas es una tarea tremendamente 
compleja.
Zero-day DDoS Attack (Ataques ‘Día Cero’)
Los ataques “Zero-day” o “Día-Cero” no son más que ataques 
novedosos o desconocidos que explotan vulnerabilidades de las 
cuales aún no se han publicado correcciones o parches (este término 
se aplica a cualquier vulnerabilidad, pero al existir tal cantidad de 
ataques DoS o DDoS, lo incluyo para que se tenga presente).
Por lo que no es nada fácil defenderse de algo de lo que prácticamente 
no se sabe nada. Un claro ejemplo de ataque Zero-day pueden ser 
aquellos relacionados con una vulnerabilidad conocida recientemente 
para la que aún no ha salido corrección o parche oficial.
DoS | TELEFÓNICA // 7
Partimos de un escenario controlado en el que utilizaremos la 
máquina virtual de Kali Linux para realizar los ataques. La primera 
víctima será un Windows 7 con XAMPP en el que se ha instalado un 
Wordpress previamente.
Imagen 131 Wordpress instalado
Posteriormente, atacaremos a la web en producción mediante kali a 
través de Metasploit. Para ello ejecutamos msfconsole, y utilizamos 
el módulo auxiliary/dos/tcp/synflood que nos permite realizar una 
denegación de servicios SYN flood. Configuramos la IP del equipo 
con contiene el CMS y lanzamos el exploit con el comando exploit. 
Imagen 132 Exploit denegación de servicio
Observaremos que la web queda durante un tiempo “bloqueada” sin 
que se tenga acceso a dicha web.
Imagen 133 Denegación de servicio activa
3. Pruebas
DoS | TELEFÓNICA // 8
Al cabo de un tiempo el servidor restablece la conexión al cancelar el 
ataque, y se vuelve a tener activa la web.
Imagen 134 Finalización ataque DoS
Es un simple ejemplo, pero sirve como base para ver el impacto que 
puede tener un ataque a gran escala de este tipo.
Imagen 135 Wordpress activo

Otros materiales