Ataque de Negación de Servicio HTTP utilizando Slowloris

  • Posted on: 12 June 2014
  • By: ReYDeS

Este es una ataque de negación de servicios lenta contra un servicio particular, en lugar de inundar las redes, es un concepto emergente que podría permitir a una sola máquina hacer caer el servidor web de otra máquina con un mínimo uso de ancho de banda y con efectos sobre servicios y puertos no relacionados. La situación ideal para varios ataques de negación de servicio es cuando todos los servicios permanecen intactos pero el servidor web por si mismo es inaccesible completamente. Slowloris nace de este concepto, y es por lo tanto relativamente oculto comparado con la mayoría de herramientas para inundación.

Se procede a descargar Slowloris desde la página oficial.

Slowloris maneja conexiones abiertas enviando peticiones HTTP parciales. Este continúa enviando cabeceras subsecuentes a intervalos regulares para mantener los sockets. De esta manera los servidores web pueden ser rápidamente atados. En particular los servidores web que tienen hilos tienden a ser vulnerables, por virtud del hecho de que intentan limitar la cantidad de hilos que permiten. Slowloris debe esperar a que todos los sockets estén disponibles antes de que sean satisfactoriamente consumidos, así es que si trata de un sitio web con alto tráfico, puede tomar un momento para que el sitio libere sockets. De esta manera mientras no se es capaz de ver el sitio web desde un punto de vista, otros podrían ser capaces de verlo hasta que todos los sockets sean liberados para ser consumidos por Slowloris. Esto se debe a que otros usuarios del sistema deben finalizar sus peticiones antes de que los sockets estén disponibles para ser consumidos por Slowloris. Si otros reinician sus conexión en un corto periodo de tiempo estos serán capaces de ver el sitio. Así esto es un poco como una condición de carrera, pero una en el cual Slowloris eventualmente siempre ganará, más pronto que tarde.

Se procede a ejecutar Slowloris. De no ser especificado el puerto, será utilizado por defecto el puerto 80.

# perl slowloris.pl -dns 192.168.0.27

Slowloris inicia su labor construyendo los sockets y enviando paquetes al objetivo.

En el objetivo de evaluación se visualiza parte de las conexiones establecidas.

Slowloris permite al servidor web retornar a la normalidad casi instantáneamente (usualmente dentro de 5 segundos o más). Esto lo hace ideal para ciertos ataques que pueden solo requerir un corto tiempo de caída, donde el tiempo es la clave, o como una táctica de diversión.

Slowloris afecta un número de servidores web que usan procesos por hilos e irónicamente intenta limitar esto para prevenir el consumo total de la memoria – solucionando un problema crea otro. Esto incluye pero no está necesariamente limitado a los siguientes. Apache 1.x, Apache 2.x, dhttd, GoAhead WebServer , entre otros sin confirmar. No son afectados IIS6.0, IIS7.0, lighttpd, nginx, Cherokee, Squid, entre otros.

Fuentes:

http://ha.ckers.org/slowloris/
http://www.securityfocus.com/archive/1/456339/30/0/threaded
http://ha.ckers.org/blog/20090504/using-denial-of-service-for-hacking/

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor en Hacking Ético, Forense Digital & GNU/Linux
Correo Electrónico: ReYDeS@gmail.com
Twitter: @Alonso_ReYDeS
LinkedIn: pe.linkedin.com/in/alonsocaballeroquezada
Facebook: https://www.facebook.com/alonsoreydes
Youtube: http://www.youtube.com/c/AlonsoCaballero
Resumen de mi CV: http://www.reydes.com/d/?q=node/1