USANDO JOOMLA SCAN
Una vez hemos terminado nuestra serie de Metasploitable, me pregunte cual seria un tema que pudiera llamar la atención, que tuviera impacto inmediato, que causara alarma… y que pudiera sufrirlo un usuario medio, pues un ataque a un CMS, hoy en día que todo el mundo (poco mas o menos) sentimos la necesidad de comunicarnos, ya sea para mostrar nuestras fotos del verano o para promocionar nuestro pequeño comercio, muchísima gente utiliza un CMS como punto de partida lo cual es fantástico, pero a la vez peligroso…
‘Un sistema de gestión de contenidos (o CMS, del ingles Content Management System) es un programa que permite crear una estructura de soporte (framework) para la creación y administración de contenidos, principalmente en paginas web, por parte de los administradores, editores, participantes y demás roles.
Consiste en una interfaz que controla una o varias bases de datos donde se aloja el contenido del sitio web. El sistema permite manejar de manera independiente el contenido y el diseño. Así, es posible manejar el contenido y darle en cualquier momento un diseño distinto al sitio web sin tener que darle formato al contenido de nuevo, además de permitir la fácil y controlada publicación en el sitio a varios editores. Un ejemplo clásico es el de editores que cargan el contenido al sistema y otro de nivel superior (moderador o administrador) que permite que estos contenidos sean visibles a todo el público (los aprueba).’
Bien, el concepto es claro habría que añadir que estos cms se encuentran sobre:Un sistema de infraestructura de Internet que usa las siguientes herramientas:
- Windows o Linux como S.O.;
- Apache como servidor web;
- MySQL como gestor de base de datos;
- PHP, Perl o Python como lenguaje de programación .
El uso de un WAMP o LAMP permite servir páginas html a Internet, además de poder gestionar datos en ellas, al mismo tiempo un WAMP o LAMP, proporciona lenguajes de programación para desarrollar aplicaciones web, por lo tanto:
- LAMP es el sistema análogo que corre bajo ambiente Linux
- WAMP es el sistema análogo que corre bajo ambiente Windows
- MAMP es el sistema análogo que corre bajo ambiente Macintosh
Tengamos en cuenta también que su implementacion es sumamente sencilla precisamente para facilitar su rápido e indoloro despliegue, si deseáis conocer como se realiza detalladamente en este link tenéis un manual de como realizarlo.
Bien volvamos al tema que nos ocupa que me estoy diluyendo… no voy a entrar muy de lleno en la instalación de wamp ya que tenéis un manual…(el link anterior) solo una par de pantallazos en primer lugar la vista de los ejecutables de joomla-2.5.14 y xampp…
y el contenido de la carpeta htdoc de joomla una vez instalado en xamp
Y el resultado de la misma con la ventana principal de joomla o frontend en todo su esplendor…
y también la ventana de acceso al backend de administración del cms…
bueno os muestro también una captura del back-end, la zona de administración propiamente dicha…
Y nos metemos en harina propiamente dicha, para ello actuaremos como si no supiéramos nada mas que tenemos una dirección url http://www.ganagana.com.co/ que alberga una web que esta gestionada por un cms que se llama joomla que la versión del mismo es la 2.5.14 y que tenemos acceso a la ventana de acceso al back-end, esto es importante por que nos hace saltarnos un paso pequeño que es buscar dicho acceso, pero tratamos con una instalación por defecto de joomla por tanto “keep it simple”…
Para ello utilizaremos OWASP joomscan que como veis en la captura se trata de un escaner de vulnerabilidades especifico para la plataforma cms joomla, os expongo los parámetros que podemos configurar sobre la herramienta y ejemplos de su forma de uso…
Una vez visto esto pues haremos uso de la herramienta mediante la introduccion de joomscan -u http://172.16.9.129/joomla_2.5.14 , obviamente la opcion -u es la url que deseamos escanear…
Y comienza su trabajo, fijaos en la ultima linea de la captura anterior… checking if the target has deployed an Anti-Scanner measure, comprueba si tenemos un anti escaneo en el cms, y también nos indica que corre sobre apache 2.2.11 y php 5.2.9 por lo tanto aunque no consiguiéramos nada tendríamos información muy importante…también nos indica que no hay un firewall instalado sobre joomla, lo único mosqueante es que nos pregunta si es joomla en el fingerprint de la url, y en este caso es una certeza! pero en fin puede ser un bug…pero es una versión sin actualizar, continuamos…
.
Os podría aburrir con las capturas de las 49 pruebas que realiza el escaner pero prescindiré de ellas y os indico que las 2 que se observan en la captura superior son la únicas que muestra…lo que si hay son bastantes N/D para muestra un botón…
Y se nos indica cuando alcanza el fin el escaneo con el numero de pruebas y el resultado de las vulnerabilidades encontradas…
vemos el resultado al que ha llegado en 1 minuto y 32 segundos…se nos aclara el panorama ligeramente… vemos como la vulnerabilidad numero 2 nos dice que el directorio del administrador no esta protegido y que por tanto un atacante malintencionado (hay alguno que no lo sea???…al menos momentáneamente???….) podría atacar las cuentas de administrador por fuerza bruta, suena bien verdad?…
¿Y como lo vamos a realizar? pues con un script confeccionado en python de nombre Bjoomla y escrito por zonesec que os presento en la siguiente captura, donde os muestro los parámetros configurables del script
…
Y como lo vamos a utilizar nosotros mediante el comando “python bjoomla.py -U users.txt -P pass.txt -h http://172.16.9.129/joomla_2.5.14/administrator&8221;, donde la opción -U le indica que utilice el siguiente diccionario de usuarios…
la opción -P le indica que use el siguiente diccionario de contraseñas…
y la opción -h la url de prueba que utilizamos en esta practica…
y de nuevo vemos el script ejecutado y el resultado del mismo, vemos al final de la ejecución que nos muestra un error pero lo mejor de todo es que antes nos muestra el juego de credenciales del administrador admin-admin…
comprobemos si nos permite acceder al backend de esta instalacion de joomla…
HASTA LA COCINA!!!!…da que pensar ¿verdad? escasos 6 minutos…vamos de hecho estoy tardando mas en escribir este post que lo que tarde en entrar en joomla con la instalación por defecto!!!…
Ahora pongámonos en la mente de un atacante que no quiera llamar la atención, que podríamos hacer? pues lo típico subamos una shell!!!!…
***BIEN AHORA LLEGA EL TURNO DE LAS ADVERTENCIAS, TE INDICO QUE CUALQUIER TIPO DE MANIPULACIÓN QUE SE LLEGUE A REALIZAR SOBRE EL SOFTWARE DE UN EQUIPO REMOTO ES UN DELITO, TENLO EN CUENTA!! DESDE ESTE BLOG NUNCA APOYAREMOS ESAS PRACTICAS, POR LO TANTO TE RECUERDO QUE LA PRESENTE ACTIVIDAD ES REALIZADA DENTRO DE UN ENTORNO CONTROLADO DE MAQUINAS VIRTUALES PROPIAS QUE ADEMAS SE TE INDICA COMO CONFIGURAR***
Bien sin mas preámbulos vamos a buscar una shell adecuada para esta plataforma, sera una shell en php, si realizamos una búsqueda en google encontraremos mil, en este caso nos hemos decantado por la webshell c100, la encontraremos en pastebin como mostramos a continuación…
La guardamos como elnombrequetedelagana.php y nos la reservamos, otro peque;o apunte vamos a usar la forma mas sencilla de realizar esto, tampoco se van a dar mas pistas de las necesarias, y nos dirigimos dentro del backend o zona de administración del cms y seleccionaremos media manager…
y si intentamos subir la shell desde ahí sin mas nos dirá que no esta permitido… entonces? sencillo habremos de cambiar las opciones de subida, en configuración global, y habremos de a;adir php a las extensiones legales, tal como se observa a continuación…una vez realizado lo anterior, ya podremos ir a media manager y realizar la subida de nuestra shell, pulsaremos browse seleccionaremos nuestra shell y pulsaremos upload…tened en cuenta que lo que subamos se encontrara en el directorio %userdir%/xampp/htdocs/joomla/images importante!
vemos como nuestra shell se llama raw.php…
la seleccionamos y subimos y vemos que se encuentra en el directorio….
Una vez aquí tenemos todo el trabajo hecho… por lo tanto nos despedimos del backend, y nos dirigiremos a nuestra shell para ello introduciremos como url http://172.16.9.129/joomla_2.5.14/images/raw.php y observaremos el resultado…