Cualquiera puede hackear: DOS attack con Slowloris

  • Categoría: Linux
  • Publicado hace más de 3 años
Antes de comenzar con este artículo, el disclaimer que corresponde: la información aquí presentada tiene fines puramente educativos y cualquier uso malintencionado de estas técnicas es responsabilidad exclusiva de quien incurra en malas prácticas.

 
Ya hace algunos años ha aparecido una pequeña aplicación en Perl llamada Slowloris que permite realizar un ataque de DOS (Denial of Service) contra sitios con infraestructuras de servidores no Balanceados. Para explicar rapidamente el funcionamiento de este script, citemos las palabras de su creador:

 
?Slowloris holds connections open by sending partial HTTP requests. It continues to send subsequent headers at regular intervals to keep the sockets from closing. In this way webservers can be quickly tied up. In particular, servers that have threading will tend to be vulnerable, by virtue of the fact that they attempt to limit the amount of threading they?ll allow. ?

 
Traducido y resumido: lo que es este pequeño script hace es enviar una cantidad importante de HTTP REQUESTS incompletos, lo cual impide que el servidor reciba->atienda->despache el Request. En otras palabras los servidores acumulan estos Requests sin posibiliad de ?despacharlos? desde que no pueden satisfacer vía Response las peticiones por no estar estas bien formadas a pesar de ser reconocidas como peticiones válidas.
 

Sorprenderá saber que entre los Servidores Web que se encuentran afectados por este script figuran (Apache 1.x y 2.x). Nos interesa especialmente poder poner esta herramienta a funcionar para analizar el grado de susceptibilidad que nuestros servidores puedan tener.

 
Es por esto que -con fines educativos- explicaremos cómo instalar y utilizar este pequeño pero efectivo script.

 
IMPORTANTE: he probado este script en Debian y Centos. No lo he hecho en Windows aunque, tratandose de Perl, debería ser posible correrlo sobre Win siempre que se cuente con Perl y las librerías necesarias instaladas.

 Realizando un DOS con Slowloris

Descargaremos el código fuente desde http://ha.ckers.org/slowloris/slowloris.pl. El script es Perl y puede leerse (tarea que recomiendo para comprender en profundidad su funcionamiento). Una vez tenemos el script en nuestro ordenador le asignamos permisos de ejecución con chmod 777 slowloris.pl. Para que slowloris corra Perl necesita los módulos: IO::Socket::INET
 , IO::Socket::SSL.

 
Estos módulos pueden instalarse a través de CPAN del siguiente modo:

 [email protected]:/# perl -MCPAN -e 'install IO::Socket::INET'
[email protected]:/# perl -MCPAN -e 'install IO::Socket::SSL'

Si bien esto debería resolver las dependencias requeridas por Slowloris, recomiendo además correr

 [email protected]:/# apt-get install libio-socket-ssl-perl

debido a que a pesar de tener el interprete de Perl instalado y haber incorporado los 2 módulos sin problemas el siguiente error me aparecía a querer ejecutar el script.

 Can't locate IO/Socket/SSL.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at slowloris.pl line 4.

BEGIN failed--compilation aborted at slowloris.pl line 4.

Habiendo instalado el componente libio-socket-ssl-perl, Slowloris comenzó a funcionar sin problemas y bastó con tipear:

 [email protected]:/# perl /path/to/slowloris.pl -dns nodo1

para dejar el Box que responde a ese hostname en /etc/hosts inutilizable. Es tan simple como eso ? Demás está decir que si nodo1 hubiese sido algún website sobre Apache en internet, éste hubiera caído del mismo modo en que cayó mi Box.

 
Por fortuna, mis HTTP servers corren detrás de un Load Balancer (Haproxy en caso de LB con software o F5 en caso de Hardware) y los ataques realizados mediante esta técnica contra el frente de mi Infraestructura no son efectivos (esta ha sido la razón por la cual instalé Slowloris y le tiré a morir al dominio e Ip virtual al frente de mi aplicación).
 

Ignoro qué tan al día estarán Hosting Providers trabajando con Apache respecto a los mecanismos para detener estos ataques pero pueden encontrarse en Google varios posts en que se explican posibles soluciones a este sencillo pero efectivo ataque (que van desde Balancear Carga hasta técnicas vía Firewall y NetFilter).
 

Dejo un buen artículo para comenzar a leer acerca de esta vulnerabilidad: http://www.funtoo.org/wiki/Slowloris_DOS_Mitigation_Guide. Si les importa la seguridad de sus aplicaciones web y éstas corren sobre Apache es irresponsable no conocer si son o no atacables mediante este método.

 
No creo que haga falta explicar que si dejan Slowloris pasandolé REQUESTS a algún site y se van a dormir, la IP desde la que estan enviando el DOS quedará registrada miles de veces en los access.log del server.
 

Conocer estas herramientas, utilizarlas y entenderlas siempre es bueno porque uno no puede defenderse de algo cuyo funcionamiento ignora. Lo que cada uno haga queda por cuenta de cada uno y me limito a decir que si poner offline algunos sitios con este programa te hace sentir un ?Hacker? vas por mal camino ;P




Cualquiera puede hackear: DOS attack con Slowloris
Cualquiera puede hackear: DOS attack con Slowloris
17 Puntos Score: 5.7/10
Visitas: 1665 Favoritos: 13
Ver los usuarios que votaron...
11 Comentarios Cualquiera puede hackear: DOS attack con Slowloris
@gonzaru77 Gracias a vos por pasar por mi post
jejejejejje !  XD
Buena info sobre el programa.
Me gusta esa parte de todos los post o pagina en donde dice "SOLO CON FINES EDUCATIVOS xd" pero fuera de leseo este programa resulta muy util para testear la seguridad y el funcionamiento de nuestro server ya que este tipo de ataques se puede evitar facilmente pero muchas veses se pasa por alto...saludos,
Buen post brother  
Sera posible tumbar Facebook?   como odio ese sitio de perdicion
@altets jajaj proba yo tambien odio ese nido de chusmas de cola de supermercado  
no facebook se podria tumbar pero con un ataque DOS por anonimus, donde tendrian que hacer el ataque miles de personas, si no seria llegando a millones a la vez.
Gracias por el dato.
Para dejar un comentario Registrate! o.. eres ya usuario? Accede!