Bridging the Gap between the Enterprise and You – or – Who’s the JBoss now?
Der JBoss Application Server (JBoss AS) ist ein vielfach genutzter, quelloffener Java-Applikations-Server. Er ist Teil der JBoss Enterprise Middleware Suite (JEMS) und wird oft in großen Unternehmensinstallationen genutzt. Aufgrund der hohen Modularität und Vielseitigkeit dieser Softwarelösung, die zu einer hohen Komplexität führen, ist der JBoss AS ein lohnendes Angriffsziel in Unternehmensnetzen.
Whitepaper
Das folgende Whitepaper beleuchtet den JBoss AS aus der Angreiferperspektive und verdeutlicht das Gefahrenpotential anhand von konkreten Beispielen bis hin zum Ausführen von beliebigem Code auf dem Host-Rechner der JBoss AS-Installation. Verwendet werden hierfür JMX Console, Web Console, RMI, Main- und BeanshellDeployer sowie JMX Invoker der Web Console und des HttpAdaptors.
„Bridging the Gap between the Enterprise and You - or - Who’s the JBoss now?”, (englische Version)
Der JBoss Application Server verfügt in den Versionen 3.2 bis 5.1 über das DeploymentFileRepository MBean, welches das Schreiben von Verzeichnissen und Textdateien unterhalb eines gegebenen Verzeichnisses erlaubt. Das folgende Whitepaper erklärt, wie dies ebenfalls zur Installation eines eigenen Web Archives (WAR) genutzt werden kann, ohne dass der JBoss AS selbst ausgehende Verbindungen initiieren muss. Es wird zudem gezeigt, dass die Installation auch per Cross Site Request Forgery (CSRF) möglich ist, so dass auch JBoss AS mit geschützter JMX Console angegriffen werden können.
„JBoss Application Server - Deploying WARs with the DeploymentFileRepository MBean” (Englisch)
Skripte
Die im Whitepaper „Bridging the Gap between the Enterprise and You - or - Who’s the JBoss now?” genutzten Skripte können hier heruntergeladen werden. Die Signatur wurde mit dem GnuPG-Key von release@redteam-pentesting.de erstellt.
redteam-jboss.tar.gz (GnuPG-Signatur)
Im Archiv sind die folgenden Dateien enthalten:
- BeanShellDeployer/mkbeanshell.rb
- WAR/shell.jsp
- WAR/WEB-INF/web.xml
- Webconsole-Invoker/webconsole_invoker.rb
- JMXInvokerServlet/http_invoker.rb
- JMXInvokerServlet/jmxinvokerservlet.rb
- jboss_jars/console-mgr-classes.jar
- jboss_jars/jbossall-client.jar
- README
- setpath.sh
- Rakefile
Die README-Datei gibt eine Übersicht über die einzelnen Dateien und ihre Funktion.
Weiteres Material
- 24.09.2010 - „Forgotten JBoss AS Exploitation Techniques”, BruCON 2010 Lightning Talk, Folien (Englisch)
- 30.04.2010 - „Bridging the Gap between the Enterprise and You - or - Who’s the JBoss now”, Ruhr-Universität Bochum, Video (Deutsch)
- 21.04.2010 - „Bridging the Gap between the Enterprise and You - or - Who’s the JBoss now”, Ruhr-Universität Bochum, Folien (Deutsch)
- 22.08.2009 - „Bridging the Gap between the Enterprise and You - or - Who’s the JBoss now?”, FrOSCon 2009, Folien (Deutsch)
- 19.05.2009 - „Bridging the Gap between the Enterprise and You - or - Who’s the JBoss now?”, Rechen- und Kommunikationszentrum der RWTH Aachen, Folien (Deutsch)
- 17.03.2009 - „Bridging the Gap between the Enterprise and You - or - Who’s the JBoss now?”, DFN-CERT, Folien (Deutsch)
- 23.10.2008 - „Bridging the Gap between the Enterprise and You - or - Who’s the JBoss now?”, hack.lu 2008, Folien (Englisch)