A pesar de que la semana que viene es un tanto extraña por el puente de vacaciones en el que estamos inmersos, hay algunas actividades que van a tener lugar en esos días, y en concreto yo voy a participar en un evento que tendrá lugar en Londres. Esto es lo que tenemos por delante estos días.
Figura 1: Eventos, conferencias y cursos del 3 al 6 de Mayo
Yo estaré el miércoles día 3 de Mayo por vídeo-conferencia en el 5th CDO Forum que se hará en la reunión de Londres. Yo voy a hablar de Big Data, Information Security & Cognitive Intelligence en Telefónica. Ahí se va a dar un premio al CDO del año por ser el que más cambios ha llevado a su organización con su trabajo y yo he tenido el honor de ser nominado como uno de los finalistas, así que más que agradecido por ello.
En Barcelona, ese miércoles a las 19:00 tendrá lugar en el Mobile World Centre de Movistar una conferencia centrada en el Machine Learning en la que participarán nuestro compañero Alexandros Kartzoglou, Director Científico de Telefónica Research y José A. Rodríguez-Serrano jefe del equipo de ciencias de datos de BBVA Data & Analytics. Más info:
También el día 3 de Mayo, a las 19:00 en la FlagShip de Telefónica en Gran Vía, tendrá lugar una charla gratuita de Desarrollo de una asistente virtual con Watson. Tienes la información en el MeetUp de Bot Dev Madrid.
El día 4, con el Centro de Ciberseguridad Industrial, participaremos en un evento gratuito que tendrá lugar en Madrid, donde hablaremos de como se puede hacer el proceso de "Automatización de un Sistema de Gestión de la Ciberseguridad Industrial con SandaS GRC". Tienes información completa de la agenda del evento y el proceso de registro en la siguiente dirección web:
Como os anuncié, voy a intentar un día del fin de semana traeros la agenda de actividades para cada semana que comience, que como siempre hay alguna cosa que merece la pena tengo en el radar. Hoy domingo, os dejo lo que tengo controlado para los días que van del lunes 20 al domingo 26 de Febrero. Toma nota, que hay muchas cosas.
Figura 1: Agenda del 20 al 25 de Febrero
Lunes, 20 de Febrero
El lunes 20 hay un taller en el FanLab de Valencia, que puede estar divertido. Cuesta 10 € por el consuma de material, pero se trata de comenzar en el mundo de las Impresoras 3D. Dura un par de horas de 17:00 a 19:00 por la tarde, así que si quieres hacer algo diferente y conocer este mundo prueba a ir y conocer gente con las mismas inquietudes.
También ese día, pero en La antigua fábrica de Estrella Damm, hay una interesante jornada de tarde sobre el mundo del BlockChain que comienza explicando a los asistentes los fundamentos de esta criptomoneda. Lo organiza el Barcelona Blockchain Meetup y da comienzo a las 17:45.
El mismo lunes, por la tarde, el Barcelona Geek Girls Meetup organiza unas charlas en la Fabrica de Moritz de Barcelona sobre casos de éxito de Startups lideradas por mujeres. El horario es de 19:00 a 21:30 y varias emprendedoras contarán sus experiencias personales. Un buena ocasión para conocer lo que te puedes encontrar si estás pensando en emprender y eres mujer.
También ese día en la tienda de Telefónica en Gran Vía, en la Flagship Store, habrá un evento sobre cómo crear ChatBots. Está organizado por el Bot Dev Madrid y ya hay más de 100 personas apuntadas. A las 19:00 horas, después de salir del trabajo, para seguir compartiendo experiencias.
Por último, en las oficinas de Microsoft Ibérica en Madrid, tendrá lugar un evento sobre el mundo de IoT y la sensorización en la industria. Será por la mañana y tendrá un horario de 11:00 a 14:30 con almuerzo incluido. Toda la información aquí: IoT hacia la industria 4.0.
Jueves, 23 de Febrero
Como habéis visto, para el miércoles no os he traído nada, pero para el Jueves 23 la agenda está bien repleta de cosas que molan. La primera de ella es en Madrid, la última jornada en la Universidad Politécnica dedicada esta vez al Deep Learning. Así que si te interesa el mundo de la Inteligencia Artificial, éste es un buen evento al que no faltar. Será por la mañana y tienes toda la información en la web de las jornadas.
A las 15:30 en un formato Webinar gratuito, tendrás la primera de las ElevenPaths Talks, en este caso dedicada al mundo del Ransomware y cómo luchar contra él. El seminario dura solo una hora y puedes apuntarte a través de este enlace: "La guerra contra el Ransomware"
Y nada más terminar este seminario, te puedes apuntar al Webinar gratuito que hacemos desde LUCA, dedicado al cómo el BigData puede ayudar a hacer cosas buenas en la sociedad. Big Data for Social Good, es una de las áreas que nos interesan potenciar desde nuestra empresa, y en este seminario te contamos qué cosas en concreto se pueden hacer.
También ese mismo día hay un par de eventos que te pueden interesar que tiene lugar justo después de estos seminarios. El primero de ellos es en Barcelona a las 19:00 horas, organizado por la comunidad de Barcelona Free Software y estará centrado en explicar qué es y cómo funciona Drupal 8 y su comunidad.
El segundo es en Madrid, a las 19:30 y está centrado en la Parte legal de la Ciberseguridad, el Big Data y el Cloud Computing. Totalmente gratuito y para resolver dudas sobre aspectos legales que puedan tener los desarrolladores de servicios o aplicaciones que saquen partido de estas tecnologías.
Viernes, 24 de Febrero
Para este día os traigo el Hack&Beers que se va a hacer en Madrid. Será por la tarde a partir de las 16:30 en el +K Copas de Madrid. Después de las charlas de seguridad tendrás las pertinentes cervezas con los asistentes. Una buena forma de hacer networking. Tienes la info aquí: Hack&Beers Madrid.
Y para terminar la semana, dos eventos para el sábado por la mañana. El primero de ellos un taller gratuito de introducción al Hacking Ético en Guadalajara (España), impartido por María José Montes y con el que podrás comenzar a aprender desde el principio. El evento está apoyado por la UNED y HoneySecCON.
El último de los eventos que os traigo es el Android Comunity Day que se hará en Barcelona, de 10:00 a 13:00 para los desarrolladores amantes de este sistema operativo. Así que tienes una oportunidad de ir, aprender, y conocer gente con tus mismas inquietudes.
Hola gente de este blog maravilloso, si bien he aportado varias veces en artículos, nunca se me ocurrió hacer uno de mi autoría, así que le doy las gracias y es un honor que Chema Alonso me deje redactar uno completamente. Aquí va y espero no defraudarlos. Como sabéis mi especialidad es el "Hacking con buscadores" y les mostrare lo fácil que puede ser para un atacante hacerse con un hosting completamente gratis. Cómo conseguir el mejor CMS o eCommerce o cualquier otra plataforma solo con usar Shodan y Google.
Figura 1: El ataque del CUCO. Cómo un enemigo se puede hacer con tu... WordPress, Joomla!, Drupal, Magento y cPanel
La idea es tan sencilla como estar atentos a cuándo quedan indexados sistemas CMS a medio instalar, por descuido o por desconocimiento. Un atacante los puede usar para distribuir exploits, hacer campañas de phishing, alojar malware o simplemente meterlos en campañas de BlackSEO. Un hosting gratis es un hosting gratis, y siempre se le puede sacar valor. Como si fuera un Cuco poniendo los huevos en el nido ajeno.
Figura 2: Descubriendo scripts de instalación de WordPress en Shodan
Para seguir los pasos de este artículo, como primera medida hay que registrarse en Shodan.io con una cuenta gratuita ya que haremos uso del operador "title" y eso no es posible si no estás con una sesión iniciada. Una vez registrados, veremos lo fácil que es localizar los paneles de instalación de WordPress, Joomla!, Magento y Drupal indexados a Shodan.io. Como se puede ver en la imagen superior, podemos localizar scripts por título, como en el caso de WordPress, pero en la Figura 4 lo vamos a hacer con el modificador title.
Figura 3: Script de instalación de un WordPress
Comenzaremos por el CMS de WordPress, que lo que vamos a explotar en Shodan es el gestor de instalación de esta plataforma. El script de instalación de WordPress se puede localizar accediendo a wp-admin/install.php y veremos cuántos de estos están indexados en Shodan.io por descuido de sus administradores, que no han hecho los deberes.
Figura 4: Buscando en Shodan los scripts de configuración de WordPress
Deberían leer el libro de Máxima Seguridad en WordPress para no tener estos problemas, que luego pasa lo que pasa. ;). Estos scripts de WordPress, aunque no tengan un motor de bases de datos al que conectarse, pueden ser utilizados para hacer ataques Time-Based Blind XSPA (Cross-Site Port Attack) en WordPress, como ya se explicó en otro artículo anteriormente.
Figura 5: Script inicial de Setup en WordPress
El segundo de los panel CMS que podemos localizar es Joomla! que también tiene su script de instalación para configurar las bases de datos, los usuarios privilegiados, etcétera. Lo que haremos nosotros en Shodan es encontrar gestor de instalación que esta generalmente en la ruta installation/index.php.
Figura 6: Buscando scrips de instalación de Joomla! en Shodan
En los scripts encontramos los parámetros de configuración de acceso a la base de datos, que en el caso de que no estuviera presente el motor de bases de datos MySQL siempre podríamos usar para escanear la DMZ con un ataque XPBA como el de WordPress de antes.
Figura 7: Script de instalación de Joomla!
Y si está la base de datos, pues te la configuras y ya tienes tu sitio web completo para hacer lo que quieras. Y si quieres, le pones hasta el Latch para Joomla!, que también se puede hacer una vez termines de ejecutar el script.
Figura 8: Búsqueda de scripts de instalación de Drupal
El siguiente en la lista de objetivos populares sería Drupal. Su script de instalación se encuentra indexado como ya podéis suponer en Shodan.io, y es un fichero install.php.
Figura 9: Script de instalación de un Drupal
Como es demasiado común el nombre de install.php, lo podemos filtrar como se ha hecho en la búsqueda de la Figura 8 por el campo title, usando el que tiene el paso 1 del script.
Figura 10: Búsqueda de scripts de Magento en Shodan
Magento es una plataforma de código abierto para eCommerce escrita en PHP. Es una de las más comunes y tiene versión community (para la que se hizo una versión de Latch para Magento). Su fichero de instalación se encuentra en: index.php/install/
Figura 11: Versión de Magento Community disponible para instalar
Como se puede ver, no solo aparecen versiones Community en las búsquedas, e incluso las versiones Enterprise están a disposición de cualquier atacante.
Figura 12: Versión de Magento Enterprise disponible para instalar
Esta es una fuga importante de información en la plataforma de Magento. También hay otras como la de Magento Repair Tool que tiene un XSPA o la de Magento Check. Con ellas se puede sacar información de la base de datos, del servidor en que está instalado y de la DMZ.
Figura 13: Magento Enterprise. Configuración de la base de datos
Quise, para completar este artículo, si ya directamente era posible localizar paneles de hosting completos, como cPanel. Con este dork es posible localizarlos en Google, pero de momento solo versiones "demo". Eso sí, si alguno alguna vez se lo deja indexado... tendrá problemas.
Figura 14: Cpanel google dork: inurl:login -intext:login inurl:user= inurl:pass= -
intext:user -intext:pass inurl:2082 OR inurl:2083
Al final, son leyes muy sencillas. No poner en los servidores nada que no esté en uso. No poner servidores a medio configurar en Internet, y revisar periódicamente la configuración de la seguridad de tus sistemas. Espero que les haya gustado.
Drupal es un sistema de gestión de contenidos (CMS) de código abierto muy popular y ampliamente utilizado en Internet, debido a características tales como su facilidad de uso, flexibilidad gracias a la cantidad de módulos de los que dispone creados por una amplia comunidad de desarrolladores y a la escalabilidad que proporciona para sitios webs personales o empresariales. Hoy vamos a ver en este artículo cómo se puede sacar información de la plataforma para hacer un pentesting a un sistema Drupal configurado en el sitio web de una empresa.
Figura 1: Descubrir usuarios de Drupal con FOCA y ZAP Proxy
Cuando se realiza un ethical hacking, es importante conocer quiénes son los usuarios válidos que tienen acceso al sistema. De esta forma, en un ataque de fuerza bruta, el espacio de búsqueda se reduce a la mitad si el proceso de autenticación únicamente solicita usuario y contraseña y no hay un segundo factor de autenticación, como por ejemplo Latch para Drupal.
Figura 2: Cómo proteger Drupal con Latch
En esta PoC (Prueba de Concepto) se muestra cómo obtener usuarios válidos en sistemas de gestión de contenidos (CMS) basados en Drupal a través de los metadatos presentes en los documentos ofimáticos alojados en él. Latch, metadatos, MetaShield Protector, FOCA, hacking web... ¿cómo no le iba a gustar este artículo a Chema Alonso?
Drupal y el fichero robots.txt
Por defecto, Drupal incorpora un fichero robots.txt para tratar de evitar el rastreo e indexación en buscadores de ciertas partes del sitio web. Su contenido varía versión a versión y en la web de Drupal se puede acceder a la información del fichero robots.txt en cada una de las ramas. Así, si te encuentras un fichero robots.txt en su servidor podrás saber qué versión tienes en frente en función de su contenido. Un contenido tipo de robots.txt para un Drupal 6.x es como el que sigue.
Figura 3: Contenido de un fichero robots.txt para Durpal 6.x
Si tras la instalación del sitio basado en Drupal y su puesta en producción no ha sido modificado el fichero robots.txt, por ejemplo, podría realizarse un poco de fingerprinting para ver cuál es la versión actual del CMS y el número de veces que ha sido actualizado: tantas como líneas con el patrón “Drupal X.X.X, año-mes-día” aparezcan en el fichero CHANGELOG.txt cuya ruta proporciona el fichero robots.txt.
Figura 4: Changelog.txt de la propia web de Drupal
Esta información puede ser importante porque es posible conocer si el sitio web está actualizado a la última versión o no, o si existe algún exploit o vulnerabilidad conocida para la versión actual del CMS que corre en el servidor web.
Figura 5: Algunos exploits y vulnerabilidades para diferentes versiones de Drupal
El fichero robots.txt también proporciona una ruta importante para intentar realizar el descubrimiento de usuarios: /?q=user/password/ ¿Para que utilizar Drupal esta URL en su sistema?
Solicitar una nueva contraseña por correo electrónico
Drupal permite, por defecto, solicitar una nueva contraseña por correo electrónico. Para ello, únicamente hay que realizar una petición como la siguiente:
http: //www.sitioweb.com?q=user/password
De esta forma, el sistema solicitará el nombre de usuario o la cuenta de correo electrónico del usuario que desea solicitar una nueva contraseña.
Figura 6: Solicitud de una nueva clave por correo electrónico en una web con Drupal
En caso de introducir un nombre de usuario o dirección de correo electrónico de un usuario presente en el sistema, la respuesta por defecto será: “Se le han enviado más instrucciones a su dirección de correo-e.”
Figura 7: Respuesta frente a un usuario o cuenta de e-mail presente en el sistema
Si el nombre de usuario o la cuenta de correo electrónico no pertenece a ningún usuario presente en el sistema, el sistema por defecto responderá: “Lo siento, XXX no se reconoce como nombre de usuario o dirección de correo electrónico”.
Figura 8: Respuesta frente a un usuario o cuenta de e-mail incorrecta
Es decir, por defecto, Drupal“proporciona” un mecanismo que permite descubrir qué nombres de usuario están en el sistema y cuáles no, debido a las dos respuesta anteriores.
Obtención de nombres de usuarios de documentos ofimáticos
Figura 9: Dorking para la búsqueda de sitios web de ayuntamientos hechos con Drupal
La idea es extraer el nombre de todos los usuarios presentes en los documentos ofimáticos y ver con cuáles de ellos pueden solicitar a Drupal una nueva contraseña por correo electrónico. Esos serán usuarios válidos presentes en el sistema.
Figura 10: Usuarios extraídos con FOCA de los documentos de un ayuntamiento
Almacenamos en un fichero de texto los usuarios encontrados por FOCA en los documentos ofimáticos, ya que será el payload que utilizaremos en el proceso de automatización para el descubrimiento de usuarios válidos.
Fuerza bruta basada en diccionario de usuarios de metadatos
Una vez que tenemos el fichero con los usuarios presentes en los documentos ofimáticos, lo único que tenemos que hacer es automatizar el proceso “de probar uno por uno” para ver, con cuál de ellos, el sistema es capaz de generar una nueva contraseña y enviarla por correo electrónico. Serán los nombres de usuarios válidos en el proceso de autenticación.
Para ello, mediante un Proxy HTTP/S como ZAP, tal y como explico en el capítulo de nuestro libro de Hacking Web Technologies, capturamos la petición HTTP de solicitud de cambio de contraseña con un usuario cualquiera:
Figura 11: Captura de petición HTTP para el cambio de contraseña
Tras capturar la petición HTTP, la reenviamos modificando el valor del parámetro name. Utilizamos para ello el Fuzzer que proporciona ZAP. Como payload usaremos el fichero con los usuarios descubiertos por la FOCA para que ZAP realice fuerza bruta basada en diccionario con todos ellos. Drupal por defecto no restringe este tipo de ataque.
Figura 12: Fuzzer preparado con el payload de usuarios
Tras esta primera prueba, ZAP Proxy arroja un resultado positivo con dos usuarios: Administrador y ADMIN.
Figura 13: Usuarios descubiertos en esta instalación de Drupal con el diccionario
Además, si analizamos las respuestas devueltas por el servidor web, puede observarse que el tiempo de respuesta con esos dos usuarios es menos al del resto de respuestas, el código HTTP también varía: 302 frente a 200 para el resto de usuarios. El tamaño de la cabecera HTTP también es diferente para estos dos usuarios: pasa de 391 bytes a 472 bytes y 473 bytes. El fuzzer de ZAP indica también, a través del TASK ID, el orden de los usuarios encontrados en el fichero generado con FOCA: el 2 y 23.
Figura 14: Orden de los dos usuarios descubiertos por ZAP y FOCA
Probando con uno de ellos vemos como efectivamente se trata del user de uno de los usuarios almacenados en Drupal.
Figura 15: Usuario ADMIN presente en el sistema
Conclusiones sobre esta PoC
A parte de eliminar los metadatos de los documentos ofimáticos antes de que estos sean colgados en Internet para que ningún usuario pueda quedar expuesto, tal y como indica el Esquema Nacional de Seguridad utilizando herramientas como las de MetaShield Protector, también es recomendable eliminar toda la información del fichero robots.txt que pudiera facilitar el descubrimiento de rutas y recursos de autenticación o de cambio de contraseñas, como de todas las actualizaciones y de la versión actual de Drupal que corre en el servidor web.
Parece también una buena idea restringir la autenticación y la solicitud de nuevas contraseñas únicamente a ciertas direcciones IP utilizando el módulo de seguridad.
Para ello, Drupal ofrece el módulo login security que, aparte de permitir o denegar (de manera temporal o permanente) el acceso por dirección IP a ciertas partes de Drupal, también permite limitar el número de intentos fallidos de autenticación antes de bloquear una cuenta de usuario, o avisar al administrador por correo electrónico o vía Nagios cuando se hayan adivinado cuentas o realizado realizado ataques de fuerza bruta. Por supuesto, no olvides poner un segundo factor de autenticación a todas las cuentas de tu Drupal por si alguien es capaz de conseguir la password de uno de esos usuarios.
Nipper Toolkit Web Scan para Android es una herramienta que permite comprobar vulnerabilidades en los CMS(Content Management System) comúnmente utilizados, es decir, plataformas como Wordpress, Drupal, Joomla!, etcétera, que te puedes encontrar en cualquier sitio de Internet o en la Intranet. Nipper Toolkit Web Scan es una herramienta que dispone de 15 módulos distintos para la recopilación de información de una determinada dirección URL proporcionada por un usuario y que explota algunos de los bugs más comunes, y que puede completar la colección de herramientas que puedes llevar en un terminal Android, como DSploit, Intercepter-ng o WiFiKill, junto con tu Metasploit de base.
Figura 1: Nipper Toolkit for Android: Una revisión rápida de tu CMS
Este tipo de herramientas están creadas para aquellos auditores de seguridad que quieren realizar pruebas de seguridad desde un terminal móvil sin llamar la atención. ¿Cuántas veces has visto a alguien sentado en la sala de espera de tu empresa usando su teléfono? Pues ese podría ser un auditor haciendo una prueba de seguridad, o un atacante que está en tu WiFi en medio de un APT. Aunque tengas el WordPress o el Joomla! en tu Intranet, no pienses que un atacante no puede estar rondando por ella.
Funcionamiento de Nipper Toolkit
Nipper Toolkit es una herramienta que busca bugs y explota fallos en servidores web, por lo no necesitaremos permisos de root para que funcione, con tener conexión de red será suficiente. Podemos adquirirla directamente en el Google Play Store y es completamente gratuita pero solo funcionará si nuestra versión de Android es la 3.0 o superior.
Figura 2: Introducción de una URL del CMS a auditar
Una vez hayamos descargado la app la abriremos y aparecerá el menú principal. En la parte superior encontraremos un icono con tres putos donde pulsando podremos ver la versión del programa e información sobre el desarrollador.
En la parte central de la pantalla encontraremos una ventana para introducir la URL sobre la que queramos lanzar las pruebas y sobre ésta un botón con el símbolo “Play”. Una vez introducida la URL pulsaremos sobre él y tras unos segundos nos mostrara en pantalla la plataforma utilizada por la web, su dirección IP, el tipo de servidor y nos permitirá ver su código fuente. También mostrara algunos módulos.
Figura 3: Información básica del CMS auditado
Si miramos en la parte superior encontraremos tres botones, el botón de la izquierda es el botón de retroceso, a su derecha encontraremos el botón –“Share”- que nos permitirá compartir la aplicación y la información conseguida sobre la URL, el ultimo botón -“3 puntos”- nos dará la opción de buscar en Exploit-DB y la opción ButeForceWP en su versión beta, esta opción nos permitiría iniciar un ataque de fuerza bruta con un CMS de tipo Wordpress, como los que se explican en este artículo "Cómo fortificar tu Wordpress frente a ataques de fuerza bruta"
Figura 4: Módulos para analizar un WordPress con Nipper Toolkit
A continuación explicare lo que hacen algunos de los módulos que nos podemos encontrar tras realizar un análisis. Estos serán distintos en función del dominio y la plataforma que estemos analizando. Algunos de sus módulos son:
DNS Lookup: este módulo se utiliza para identificar los servidores del dominio seleccionado, nos mostrará también el nombre del servidor en formato TXT.
Nmap: Nmap nos permite realizar un escaneo de puertos a nuestro objetivo, una vez tengamos el listado de estos podremos observar cuales están abiertos, esta información nos sería muy útil a la hora de realizar algunos ataques.
Figura 5: Ejecutando Nmap
Enumeración de usuarios: Este módulo realiza un escaneo en búsqueda de usuarios, en este caso usuarios de Wordpress, realizando un listado de los usuarios encontrados, tal y como se hace con WPScan.
Enumeración de Plugins: Con este módulo podremos extraer los detalles de los plugins utilizados, este escaneo tardara un poco, pero nos proporcionara un listado de plugins y nos dará la opción de buscar exploits, introduciremos los plugins de los que queramos obtener exploits y realizaremos una búsqueda en ExploitDB, también podemos realizar una búsqueda sin introducir el plugin del que queremos conseguir exploits y obtendremos todos los exploits al mismo tiempo. Lo que hay por detrás son los trucos explicados en este artículo: Cómo listar plugins de WordPress.
Figura 6: Listado de plugins
Theme identify: nos mostrara los detalles sobre el tema utilizado en la web. Algunos de ellos tienen bugs conocidos.
Core Analysis: Este módulo nos mostrara la versión de la web CMS objetivo utilizando un fingerprinting basado en el reconocimiento de ficheros utilizados en la plataforma.
Figura 7: Información del Core
En caso de que la web CMS se tratase de una plataforma Drupal encontraremos otro modulo llamado “Drupal Modules”, personalizada con otro tipo de ataques.
Nipper es una herramienta sencilla e intuitiva con la que podremos realizar mini-auditorías de seguridad a una web de forma rápida desde nuestra mano, en cualquier sala de espera de una empresa, de una forma fácil y rápida automatizando algunos de los ataques conocidos para estos CMS. Tal vez no hagas una auditoría completa, pero a lo mejor en unos minutos, aprovechando el tiempo en la salita, seas capaz de llevarte la lista de usuarios o info de cómo está administrado ese WordPress que has encontrado en la Intranet accesible por la web.