martes, 3 de septiembre de 2013

WEB HACKING – Ataques directos contra servidores web – ParteI

En la publicación anterior se ha hablado sobre algunos ataques básicos contra la infraestructura de un servidor web y se ha mencionado la importancia que tiene un buen proceso de recolección de información para llevar a cabo cualquier tipo de ataque, en esta ocasión, se hablará un poco más sobre otros tipos de ataques frecuentes contra servidores web, tanto aprovechando vulnerabilidades relacionadas directamente con el servidor, así como también vulnerabilidades relacionadas con alguna de las aplicaciones web que se ejecutan en el mismo.
Aprovechando Vulnerabilidades en servidores Web
Aunque es un vector de ataque que en ocasiones resulta difícil de conseguir dado que los principales servidores web utilizados actualmente (tales como Apache HTTPD, IIS o Ngnix) suelen actualizarse con bastante frecuencia y las vulnerabilidades descubiertas se suelen remediar rápidamente, de esta manera, normalmente los servidores web vulnerables son aquellos que no cuentan con las actualizaciones necesarias. Sin embargo, existen otros servidores web que si bien, no son de un uso tan extendido, suelen ser frecuentes en Internet y también, suelen llevar consigo vulnerabilidades conocidas y bien documentadas. En este publicación intentaré dar ejemplos de algunos de estos servidores web vulnerables explicando como se pueden llegar a comprometer.
Por otro lado, para encontrar objetivos en internet con vulnerabilidades como las que se describen a continuación, se puede utilizar Google, Bing o Shodan, en este sentido se recomienda leer el libro de Enrique Rando sobre “Hacking con Buscadores” el cual ha sido publicado por Informatica64: www.informatica64.com/libros.aspx?id=hackingBuscadores. Además, también se recomienda el uso de GHDB (Google Hacking Database) la cual contiene un amplio repositorio de GoogleDorks organizado por diferentes categorías:http://www.exploit-db.com/google-dorks/
A continuación se enseñan vulnerabilidades en algunos servidores web de uso no tan frecuente, pero que aun así pueden ser fácilmente localizados en Internet:
Servidor: CoreHTTP
Se trata de un servidor web liviano y rápido que permite atender a múltiples peticiones con un nivel de respuesta bastante bueno, es fácil de configurar y de instalar, con lo que no se necesitan conocimientos tan profundos como en el caso de otros servidores web como Apache HTTPD. Sin embargo, los problemas vienen en este servidor web cuando se encuentra habilitado el soporte para CGI, ya que no es estable ni seguro, de hecho, la vulnerabilidad que se describe a continuación depende de que el servidor tenga el soporte CGI habilitado. Si el lector tiene interés por conocer mejor este servidor web, pueden conocerse más detalles sobre su funcionamiento aquí: http://corehttp.sourceforge.net/
En primer lugar, es posible saber si el servidor web se encuentra en ejecución en la máquina objetivo utilizando NMAP o Nikto
niktocorehttpd
Como puede apreciarse, el servidor se encuentra en ejecución en el puerto 10443 y la versión del servidor web es la 0.5.3.1
Desde securityfocus.com hace algún tiempo se ha dado publicado un reporte sobre una vulnerabilidad critica en este servidor web, que permite a un atacante ejecutar comandos arbitrarios sobre el sistema si el servidor web tiene habilitado el soporte para CGI. El reporte de la vulnerabilidad puede encontrarse aquí: http://www.securityfocus.com/bid/37454
Por otro lado, existe un exploit disponible para ejecutar con Metasploit Framework, sin embargo, dicho exploit no se encuentra disponible en el repositorio de Metasploit, por lo tanto es necesario instalarlo de forma manual. El exploit se encuentra disponible aquí:http://www.securityfocus.com/data/vulnerabilities/exploits/37454.rb en este caso concreto, para utilizarlo, lo he incluido en el directorio /modules/exploits/multi/http. Posteriormente, he iniciado la consola de Metasploit Framework para ejecutarlo.
corehttpdmsf
El exploit intenta crear una BindShell en el sistema objetivo utilizando el puerto 4444 como punto de conexión, de esta forma es posible utilizar Netcat o cualquier otra herramienta para conectar con dicho puerto y de esta forma obtener una shell en el sistema objetivo.
nccorehttpd
Servidor: WebMin/UserMin
WebMin es una plataforma bastante robusta que permite la administración remota de múltiples sistemas basados en Unix, permitiendo realizar operaciones de mantenimiento sobre máquinas en un segmento de red y tareas de administración tales como gestión de servicios, cuentas de usuarios, archivos de configuración, etc. UserMin es una versión reducida de WebMin con menos caracteristicas pero siguiendo el mismo enfoque de control de sistemas de forma remota. Tanto WebMin como UserMin utilizan su propio proceso de servidor, que es independiente de otros servidores web disponibles actualmente en el mercado.
Las versiones inferiores a la 1.290 de WebMin y 1.220 de UserMin tienen una vulnerabilidad del tipo Arbitrary File Disclosure (Divulgación Arbitraria de ficheros) con la que un atacante podría intentar acceder a información sensible del sistema objetivo y posteriormente componer su vector de ataque en base a la información capturada, por ejemplo, si el servidor web se ejecuta con privilegios de root, es posible que un atacante pueda acceder a los contenidos de los ficheros /etc/passwd y /etc/shadow para posteriormente realizar un ataque offline y obtener las contraseñas de las cuentas de usuario con passwords débiles.
Nuevamente, es posible utilizar Nmap, Nikto o cualquier otra herramienta para conseguir el banner del servidor web.
nmapusermin
Como se puede apreciar en la imagen, el objetivo tiene instalado WebMin en el puerto 10000 y tal como se describe aquí: http://www.exploit-db.com/exploits/2017/ es posible utilizar el exploit disponible para obtener de forma arbitraria los contenidos de los ficheros/etc/passwd y /etc/shadow
passwd
Contenido del fichero /etc/passwd
shadow
Contenido del fichero /etc/shadow
Con esta información, un atacante podría ejecutar un ataque offline utilizando John The Ripper (u otra aplicación) siguiendo la siguiente rutina:
./unshadow passwdFile shadowFile > passwords.db
./john 241passwords.db

Loaded 3 password hashes with 3 different salts (FreeBSD MD5 [32/64 X2])
root           (ChangeMe)
 Estos han sido, solamente un par de ejemplos de como atacar de forma directa la infraestructura de un servidor web vulnerable, en la próxima publicación, habrán más ejemplos.

Miguel

No hay comentarios.: