SSTIC 2010 - Vendredi matin : 2ème Conf

JBoss AS: Exploitation (et sécurisation)

JBoss AS est de plus en plus populaire, et on le retrouve soit comme serveur d’application classique soit directement en frontal. On retrouve du JBoss dans des produits proprios (ex : Cisco, Ironport).

Etude sécu existante : Red Team au hack.lu en 2008 mais uniquement sur JBoss 4.
Trustwave a Black Hat Europe 2010 -> POC Autopwn

JBoss c’est un tas de MBeans qui causent entre eux via le MBean Serveur. Pour gérer la communication avec l’exterieur le MBean Server s’appuie sur des connecteurs et des adapteurs.
La prise de contrôle se résume à la prise de contrôle du MBean Server.

Les composants de sécurité ne sont pas activés par défaut, et les composants d’administration sont accessibles à tous par défaut (souvenez vous mon post sur la console JMX).
Le sandboxing de composant c’est compliqué, et on ne sait pas si c’est efficace :D.

L’intrusion se résume au déploiement d’une backdoor sur le serveur, l’auteur est original car il utilise une archive SAR plutôt qu’un .war ou une .jsp.

Pour déployer des trucs sur JBoss, on utilise des composant de la console JMX (rien de neuf sous le soleil :|). JBoss utilise des vhosts et parfois sur le vhost par défaut on peut retrouver la console JMX o/. Le gros avantage du SAR bah c’est que c’est un MBean supplémentaire dans la console.
Petite évocation du Beanshell et de son utilisation pour uploader un composant et le déployer (merci Red Team).

Pour la sécurisation, l’auteur conseille de supprimer la console JMX.

Autre point d’entrée : JNDI et RMI (je vous invite a jetter un oeuil sur la présentation de ruby pour les pentester donné à la dernière Black Hat). Pour jouer avec ça, il y a l’outil twiddle fournit avec JBoss pour déployer la backdoor via RMI :). Pour sécuriser l’accès RMI, il suffit de mettre en place un invoker qui va demander une authentification au préalable.

Si par malheur vous n’avez ni accès a la console JMX, ni a RMI, il reste la console Web qui offre un invoker qui accepte n’importe quelle commande JMX (bon c’est chiant a écrire… ).

D’autres trucs du genre pour JBoss 4, après sur la version 5 et 6 il y a quelques évolutions coté sécurité, mais sur la version 6 apparait la console admin qui permet d’autres attaques similaires (plus d’infos sur les slides).

Avec le composant JMX-Invoker on peut redéployer une nouvelle politique de sécurité 🙂

La sécurité de JBoss s’améliore de version en version, mais pour l’instant il reste vulnérable. Pas de release des POC parceque ce n’est pas patché 🙁