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
Compartir