Blog

Hacking de servidores JBoss

Buenas a todos! En este nuevo post vamos a ver cómo sería posible acceder a un servidor de aplicaciones JBoss (uno de los más comunes) y que sería posible hacer con él para tomar el control del servidor.

Lo primero de todo vamos a explicar un poco más en profundidad que es un servidor de aplicaciones JBoss y para ello os voy a dejar aquí la definición de la Wikipedia: “JBoss es un servidor de aplicaciones Java EE de código abierto implementado en Java puro. Al estar basado en Java, JBoss puede ser utilizado en cualquier sistema operativo para el que esté disponible la máquina virtual de Java“.

Cuando estamos realizando una auditoria, gran cantidad de veces vemos que las claves por defecto están en una gran mayoría de casos aunque no en todos… El problema es que existen una inmensa cantidad de servidores de aplicaciones JBoss accesibles desde internet, con unas claves por defecto una gran cantidad de ellos y como no, cacheados ya sea por Google:

jboss-04

 

O por Shodan:

JBoss-03

 

 

Pero bueno, aunque hemos visto que existen una gran cantidad de servidores cacheados eso no es lo que queremos aquí, sino que queremos saber cómo seriamos capaces de acceder a un servidor de aplicaciones. Para ello deberemos de buscar las claves por defecto “admin/admin” y probarlas para comprobar si nos permite acceso en la parte de “JMX – Console”. En caso de no permitirnos acceso lo tendremos más complicado, y deberemos de realizar algún ataque de fuerza bruta.

jboss

En el caso de que logremos acceso con las credenciales por defecto, que como he dicho es bastante común, deberemos plantearnos… Y ahora que tengo control del servidor de aplicaciones que puedo hacer? Pues utilizaremos una función que trae el servidor JBoss para subir una aplicación web que tengamos alojada en otro servidor a través de una URL. Es decir, le indicaremos al servidor de donde tiene que descargar la aplicación .war, el servidor se la descargara y la desplegara.

En dicha aplicación deberemos crearnos una shell en jsp para poder interactuar con el servidor a través de la web. Otra cosa que podríamos hacer seria utilizar metasploit para generar un payload que al ejecutarlo nos devolviera una shell de meterpreter del servidor, pero en el caso de una auditoria puede ser algo más complejo si el servidor tiene filtrado de puertos y demás (Como sería de esperar), por lo que seguiremos con el ejemplo a través de la web.

Lo primero que veremos al acceder a “JMX – Console” será algo como lo siguiente, con una inmensa cantidad de links…

jboss_repair

 

 

Aquí deberemos buscar el siguiente, que será el que nos permita realizar el proceso anteriormente descrito…

JBoss-06

 

 

Ahora deberemos de subir nuestra shell en un .war (Es posible encontrar .war de una shell en jsp ya hechos, aunque hacerla es trivial) a algún servidor que tengamos propio, o sino a algún repositorio abierto de internet, por ejemplo como vemos a continuación…

JBoss-01

 

 

JBoss-02

 

 

Una vez tenemos el link de descarga de nuestra shell en jsp introducida en él .war deberemos de subirla, para ello nos vamos a la parte de la función “addURL()” como vemos a continuación e introducimos nuestra URL donde se encuentra la aplicación .war…

JBoss-09

 

Una vez le demos a invocar realizara todo el proceso de descargar el .war y desplegarlo en el servidor. Una vez hecho esto deberemos ir a la ruta que hayamos especificado en él .war, en este caso “/cmd/cmd.jsp?cmd=[COMANDO]” para poder interactuar con el servidor a través de comandos del sistema operativo gracias a la aplicación desplegada. Una vez a terminado el proceso veremos una pantalla como la siguiente…

JBoss-10

 

Lo cual indica que todo ha ido bien y que ya tenemos control del servidor para enviar comandos como vemos en la siguiente imagen…

jboss-11

 

Por lo cual ya podríamos realizar cualquier acción de post-explotación, ya sea escalar privilegios en caso de no ser un usuario privilegiado, hacer pivoting con dicha maquina o un sin fin de acciones.

Como habéis visto, este puede ser un punto débil en las empresas que sin duda hay que comprobar debido al enorme abanico de posibilidades que nos brinda en caso de tener éxito. Recordar que en este caso hemos visto JBoss, pero sería posible realizarlo con Tomcat y todos los servidores de aplicaciones, aunque los pasos variarían un poco.

Espero que os haya gustado y os sea útil!

Un saludo,

Eduardo – eduardo@highsec.es – @_Hykeos

  1. quim
    quim05-26-2014

    Los servidores del login de la administracion electronica van con JBoss:/

    • Eduardo Arriols
      Eduardo Arriols05-26-2014

      jajaj pues esperemos que estén protegidos como mínimo con una buena contraseña :S

Leave a Reply to quim Click here to cancel reply.

*

    No Twitter Messages