Unauthorized Access Vulnerability in JBoss

Vulnerability Description

JBoss is a container and server for managing EJBs that supports the EJB 1.1, EJB 2.0, and EJB3 specifications. However, the JBoss core service does not include a WEB container that supports servlet/JSP, and is generally bound with Tomcat or Jetty. JBoss listens on port 8080 by default.

In older versions of JBoss, the JBoss Web console (http://IP:8080/jmx-console) is accessible by default, without a username or password. Through the vulnerability of unauthorized access to the JBoss management console, the background service can be managed and system commands can be executed by script commands such as bouncing shells, wget writing Webshell files.

Environment Setup

Use the vulnerability environment of CVE-2017-7504, start the environment:

[root@localhost CVE-2017-7504]# docker-compose up

Access port 8080 in the browser

image-20220519164112458

Vulnerability Reproduction

Find the default JBoss page and click to enter the control page

image-20220519164128954

Assuming it's an unauthorized access, clicking on JMX-Console will not prompt for a username and password. This is a different vulnerability environment and the username and password are both admin, admin, so pretend that no username and password are needed.

image-20220519164230508

Find jboss.deployment and enter the application deployment page

image-20220519164333567

After entering the application deployment page, scroll down to find void addURL(). Fill in the address of the Trojan on the remote server in the ParamValue section.

image-20220519164708691

Access the iceword path to see the webshell

image-20220519165050177

Last updated