6 sept. 2009

Vulnerabilidades por métodos HTTP

Para los que no sepan qué es un método HTTP, pueden encontrar información sobre los mismos en el RFC2616:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html

Recomiendo que antes de leer este paper se tengan unas nociones básicas de estos métodos. En este artículo no se tratarán las ya conocidas de sobra vulnerabilidades por PUT y DELETE y tampoco otras que a día de hoy, debido a la evolución de los exploradores web, apenas tienen validez, como Cross Site Tracing por medio del método TRACE.

HTTP CONNECT:

Algunos servidores web, ya sean Apache, IIS, Tomcat... soportan el método CONNECT. Esto puede suponer una puerta de entrada para spammers o para atacantes que quieran evaluar otro servidor suplantando la identidad de terceras personas.

Tomemos como ejemplo la página www.victima.com. Para saber si tiene habilitado el método CONNECT, tendremos que hacer uso del método OPTIONS así que manos a la obra. Procedemos a conectarnos por telnet o netcat al servidor en el puerto 80 y mandamos la petición. Es importante que especifiquéis el nombre del servidor en el campo "Host:" ya que muchas veces, debido a mecanismos de proxy inversos del propio servidor con otros servidores, no coinciden, lo que puede dar lugar a resultados negativos. Para dar con posibles servidores que hagan de proxy inverso entre tú y el servidor original, se puede proceder a realizar una transferencia de zona DNS. En esta misma web tenéis información sobre como realizar consultas avanzadas a servidores DNS (http://n3t-datagrams.net/guias/dns.html):

$ nc -vv www.victima.com 80 
victima.com [127.0.0.1] 80 (www) open 
OPTIONS / HTTP/1.1 
Host: victima.com  HTTP/1.1 200 OK 
Date: Wed, 18 Feb 2009 15:43:06 
GMT Server: Apache/2.0.46 (Red Hat) 
Allow: GET,HEAD,POST,CONNECT,OPTIONS,TRACE 
Content-Length: 0 
Content-Type: application/x-httpd-php
Podemos comprobar en el campo Allow, que el método CONNECT está permitido. Es posible que el método OPTIONS no esté habilitado, por lo que se procedería a utilizar de forma directa el método CONNECT. Una vez estamos seguros de que el servidor soporta el método y además lo tiene permitido, procedemos a realizar el ataque. Para este ejemplo, nos haremos pasar por unos Spammers e intentaremos conectarnos al puerto 25 (SMTP) de un servidor de correo.

$ nc -vv www.victima.com 80 
victima.com [127.0.0.1] 80 (www) open 
CONNECT mx.mailexample.com:25 HTTP/1.0  
HTTP/1.0 200 Connection established 220 mx-example.com 
SMTP Server
Y a partir de aquí, si todos conocen el protocolo SMTP, saben lo que pueden hacer. Un spammer podría aprovechar este error de seguridad para que su verdadera IP no apareciese en las listas negras de las empresas de correo electrónico como hotmail, gmail, yahoo...

HTTP POST:

El método POST, puede ser también utilizado para acceder a equipos o mandar correos a lo Spam-style. No hay mucha información sobre esta vulnerabilidad así que espero que si tú, "querido lector", no has leido nunca nada acerca de esta vulnerabilidad: enjoy it. Si por el contrario sí, repasar nunca le hace mal a nadie. La técnica es similar a la que hemos visto anteriormente con el método CONNECT. El módulo mod-proxy para Apache en su versión 1.3.27 lleva por defecto una configuración que permite explotar este falla de seguridad.

$ nc -vv www.victima.com 80 
victima.com [127.0.0.1] 80 (www) open 
POST http://mx.mailexample.com:25/ HTTP/1.0 
Content-Type: text/plain 
Content-Length:0  
HTTP/1.0 200 OK 
220 mx-example.com 
SMTP Server

Y a partir de aquí, lo mismo que para el CONNECT (ehlo, auth login, etc...).

Fuente: http://n3t-datagrams.net/

Author & Editor

Ingeniero Civil en Computación (Universidad de Chile FCFM) y Diplomado en Gestión y Evaluación de Proyectos TI (Universidad de Chile FEN). Actualmente trabajo como Project Manager en varios proyectos y como asesor tecnológico para empresas.

1 Notaciones:

Nota: solo los miembros de este blog pueden publicar comentarios.

Labels

0-day (12) 1337day (1) 8.8 (2) Adobe Acrobat (1) Android (2) Anonimato (1) Anonymous (9) BackDoor (2) BackTrack (15) badUSB (1) Base64 (1) Black Hat (7) BlackHat (1) Blackploit (25) Brute Force (3) Bug (106) Bypass Password (1) Bypass Redirect (1) C99 Shell (1) Carding (1) CheatSheet (15) Chilean Way (1) Conference (10) Cryptsetup (1) CSRF (1) DDoS (11) DEF CON (3) DEFCON (7) Diapositivas (1) Diseño Web (1) Distro Linux (27) Documental (2) DoS (2) Drupal (1) DuckDuckGo (1) E-zine (18) Ekoparty (1) Escaneo (4) España (1) Exploit (64) Ezine (1) Facebook (1) Fast-Info (44) FBI (1) Ficheros Binarios (1) Firefox (4) Flash (2) Forense (9) Fuerza Bruta (11) Fuga de Datos (1) GhostShell (1) GNU/Linux (4) Google (2) Guía (1) Hack T00LZ (130) Hack Tips (63) Hacked (6) Hacking (18) Hacking Hardware (5) HashCat (1) Herramientas (121) HighSecCON (1) Humor Geek (13) Infografía (1) Ingeniería Social (5) Inj3ct0r (1) Internet Explorer (3) Java (7) JavaScript (2) Kali (3) KitPloit (1) Leaks (21) Linux OS (79) LulzSec (1) Mac OS (10) Magazine (1) Malaware (3) Malaware Tools (12) Malware (1) Man in the Middle (15) Manuales (3) MD5 CRACK (4) Metasploit (57) MSSQL (1) MySQL (6) MySQL CRACK (1) Nmap (6) Nmap NSE (2) Noticias (193) NTLM CRACK (1) Ofuscar (5) OpenSolaris OS (1) OpenSSL (1) ORACLE (1) OWASP (3) Paper (10) PDF (7) PenTest (14) Perl (2) Phearking (13) Phishing (3) PHP (13) phpMyAdmin (1) PoC (1) Premios Bitacoras (1) Presentaciones (11) PRISM (1) Privacidad (2) Programación (12) Programas Linux (41) Programas Windows (41) Pwned (1) Python (5) Reconocimiento (5) Ruby (2) s (1) Scripts (7) Seguridad (145) Seguridad Web (140) Seguridad Wireless (19) Sensitive Data Exposure (2) SHA1 CRACK (1) Shellshock (1) Slides (1) Spoofing (1) Spyware (1) SQLi (19) SQLi Tools (7) SQLMap (2) SSH (1) Textos (74) Tips (57) Troyanos y Virus (11) Trucos (7) Trucos Win (7) Turiales (56) Tutoriales (18) Twitter (1) Ubuntu (2) Underc0de (1) UnderDOCS (1) Unlock (1) URL Redirection (1) UXSS (1) vBulletin (1) Video (48) Virtualización (2) Web T00LZ (17) Wifislax (1) Wikileaks (1) WikiRebels (1) Windows OS (66) Wireless Tools (13) XSS (16) Youtube (1)

 
biz.