sábado, mayo 03, 2014

Buscar bugs de HeartBleed en Well-Known Ports con Google Hacking: Cpanel, Oracle Web Server, Open View y demás

En el artículo de HeartBleed puede desangrarte vivo se explica cómo se puede explotar esta vulnerabilidad para robar las contraseñas de los usuarios de un servidor web, la demostración se hacía con un servidor Plesk publicado por el puerto 8443. El que ese puerto sea no demasiado común hace que muchos rastreos lo dejen fuera del radar. Pensando en cuántos tipos de servidores web, publicados a Internet en puertos no habituales, podrían estar esperando a que cualquiera le enviara un latido malicioso decidí hacer unas sencillas pruebas esta mañana de sábado que os paso a contar.

Detección automática con el navegador

Para simplificar la tarea de descubrir si un servidor es vulnerable o no, decidí automatizar este proceso mediante un plugin del navegador. Ahora existen muchos plugins como ChromeBleed para Google Chrome o FoxBleed para Mozilla Firefox que te ayudan a detectar cuando estás navegando por un servidor vulnerable a HeartBleed.

Figura 1: StopBleed y ChromeBleed instalados en Google Chrome

Esta protección es más que recomendable, y ayuda a saber cuáles son los servidores que podrían estar monitorizados en tiempo real para capturar todos los datos de la memoria del proceso OpenSSL vulnerable. Con uno de ellos activado en el navegador, ya estamos listos para poder comenzar a hacer un poco de hacking con buscadores.

Buscando los puertos comunes no habituales con OpenSSL

Como ya sabéis, el proceso OpenSSL puede usarse para muchos servicios, como VPN-SSL, FTP-s, LDAP-s, etcétera, pero también para paneles de administración web es común que los servidores HTTP-s de acceso estén en puertos distintos al que por defecto es usado para este servicio, el número 443.

Para encontrar cuántos puertos podrían tener servicios con SSL lo más sencillo es irse a cualquier base de datos de Well-Known Ports en Internet. En este caso yo utilicé la base de datos de puertos de Speed Guide que tiene un interfaz de búsqueda muy cómodo y una lista de puertos bastante ampliada. Una sencilla búsqueda por SSL para saber en cuántos puertos debería buscar para encontrar la mayoría de los servicios que pudieran tener una versión vulnerable de OpenSSL arrojó un total de 99 77 servicios.

Figura 2: Puertos con algún servicio SSL en ellos

Esto quiere decir que si escaneamos todas las direcciones IP de Internet por esos 99 77 puertos buscando versiones de OpenSSL vulnerables tendríamos un porcentaje grandísimo de todas las versiones vulnerables expuestas a Internet. Si alguien se anima y me pasa los datos, estaré agradecido.

Seleccionando los paneles de administración web

Para poder hacer Hacking con Buscadores, lo más cómo es buscar aquellos puertos que son utilizados por servicios como Plesk (8443), para lo que una revisión manual es suficiente. Como podéis ver, salen cosas interesantes en la lista.

Figura 3: Servicios HTTPs por puertos no habituales

Entre ellos, servidores web de Oracle, OpenView o el popular CPanel, utilizando puertos no demasiado habituales en los escaneos de HTTPs. Ahora se trataría de localizar esos servidores web indexados en los buscadores. Vamos a ello.

El truco de barra para localizar los servidores web en Google

Si te has leído el libro de Pentesting con FOCA, sabrás que una de las cosas que hace la herramienta para buscar los servidores más interesantes a la hora de hacer un pentesting es utilizar El Truco de la Barra en Google Hacking.

Este truco es algo que no acabo de entender muy bien por qué funciona así, pero lo cierto es que si pones una barra antes del dominio en el modificador site, te permite buscar por puertos. Así, si queremos localizar servidores web en un determinado puerto pertenecientes a un dominio solo habría que hacer algo como site:/dominio:puerto/. En los siguientes ejemplos se puede ver cómo serían las búsquedas en Google para localizar servidores Cpanel en Alemania o Argentina.

Figura 4: Servidores indexados en Google por el puerto 2096 de Cpanel

Esto es válido para cualquier puerto en cualquier dominio. Por ejemplo, para localizar servidores de Oracle Web Application Server en un país, solo habría que cambiar el dominio y el puerto para obtener una lista de servidores indexados por ese puerto.

Detectando la vulnerabilidad de HeartBleed

Para detectar la vulnerabilidad, bastaría con obtener los resultados y abrir la página web en nuevas pestañas y el plugin de detección automáticamente irá cantando si el servidor es vulnerable o no al fallo. Yo he probado en varios países y sorprende ver lo fácil que es encontrar servidores de administración de hosting, webmails o herramientas de gestión publicadas sobre versiones vulnerables de OpenSSL.

Figura 5: Uno de los muchos Cpanels vulnerables a HeartBleed descubiertos

Esto deja claro que la vulnerabilidad va a dar mucho juego durante años, como el famoso bug de IIS que permitía ejecutar comandos remotamente en los servidores y que costó erradicar de Internet años.

La explotación de HeartBleed

Explotar el bug de HeartBleed para conseguir las credenciales de los usuarios es ya conocido, solo hay que monitorizar la memoria del proceso OpenSSL constantemente hasta que en un volcado aparezcan - en texto claro - las credenciales buscadas. Todos los pentesters tienen ya sus scripts y herramientas, y si usas FOCA ya sabes que tiene un plugin de monitorización continua para que se vuelque la memoria.

Figura  6: Monitorización continua de un bug de HeartBleed con el plugin de FOCA

Vamos a ver si desde Eleven Paths podemos sacar algún plugin de Latch para Plesk o CPanel para poder implantarlo. Ya teníais disponibles los de RoundCube, y SquirrelMail para servidores de WebMail y ahora está listo también el de Open-Xchange que podéis conseguir ya si nos lo pedís. Aquí tenéis una lista de guías y plugins de Latch para integrar ya. Si alguien se anima a querer integrarlo con Cpanel o Plesk, o cualquier otro servicio, nosotros le ayudamos.

Lo dicho ya con anterioridad. Si descubres que alguno de los servidores que utilizas habituales es vulnerable a HeartBleed, notifícalo y no envíes ningún dato hasta que no esté solucionado. Después cambia las passwords de esos sistemas. Si estás a cargo de una red, escanea los 99 77 puertos del principio en todas tus direcciones IP, a ver si aparece alguna versión vulnerable del software en algún punto.

Saludos Malignos!

4 comentarios:

jcirigoien dijo...

Aunque dice que da un total de 99 resultados, lo cierto es que solo muestra 77, tanto en la captura que muestras en el post como en la búsqueda que yo he hecho.

Anónimo dijo...

La Foca no funciona en 64 bits... :/

Anónimo dijo...

+1 foca no va en W7 64b
(o no se usarlo...)

Anónimo dijo...

server vulbnerable 189.211.180.131 user root pass root ssh

Entrada destacada

Infraestructuras Críticas y Sistemas Industriales: Auditorías de Seguridad y Fortificación de @0xWord

Desde hoy está disponible a la venta un nuevo libro de 0xWord centrado en la seguridad de los Sistemas Industriales y las Infraestructuras...

Entradas populares