|   | 
	
	
		|   | 
	
	
		| JBoss Exploitation | 
	
	
		| Author:
		Prashant Uniyal  | 
	
	
		|   | 
	
	
		|   | 
	
	
		|   | 
	
	
		
	
			  |   
	
		
	
		| 
		
	 | 
	
	
		|   | 
	
	
		|   | 
	
	
		|   | 
	
	
	
		
	
			  |   
	
	
		 | 
	
	
		|   | 
	
	
		|   | 
	
	
		
	
		  |  	
		
		
	
			JBoss Application Server [Reference 1] is an open-source Java 
			EE-based application server. An important distinction for this class 
			of software is that it not only implements a server that runs on 
			Java, but it actually implements the Java EE part of Java. Because 
			it is Java-based, the JBoss application server operates 
			cross-platform, usable on any operating system that supports Java. 
			JBoss as was developed by JBoss, now a division of Red Hat.
 
  | 
	
		| 
		
		  | 
	
		
		  | 
	
		| 
		
		  | 
	
	
		| 
		
			JBoss Web Server provides organizations with a single 
			deployment platform for Java Server Pages (JSP) and Java Servlet 
			technologies, PHP, and CGI. It uses a genuine high performance 
			hybrid technology that incorporates the best of the most recent OS 
			technologies for processing high volume data, while keeping all the 
			reference Java specifications. | 
	
	
		| 
		
			  | 
	
	
		| 
		
			  | 
	
	
	
		
	
	  |  	
	
		JBoss is widely used today and is deployed by many organizations on 
		their respective web servers. Being a useful application, it must have 
		been under target of hackers and malicious users. 
		 Though many 
		vulnerabilities and bugs have been found on JBoss and many CVE's have 
		been issued. But today we will look at one of the most critical bug in 
		the JBoss application that can be used widely by cyber criminals.  
		 Let's 
		have a look at the default JBoss server   | 
	
	
		|   | 
	
	
		
		  | 
	
	
		|   | 
	
	
		|   | 
	
	
		
		  | 
	
	
		|   | 
	
	
		The default state, if not configured properly, can allow attackers 
		to create havoc. As the JMX console [Reference 2] can be accessed 
		remotely usually on port 8080, hackers and malicious users can deploy 
		their on WAR (web archive) file or shells on the server using the 
		DeploymentScanner function in the JBoss console. In the next section, we 
		will have a look on the exploitation in action.
  | 
	
	
		| 
		  | 
	
	
		| 
		  | 
	
	
		|   | 
	
	
		
	
	 |   |  	
	 Most of us will start looking for tools like 
		Metasploit, Nmap, Nessus etc! You won't need them here. 
		Yes, you heard it right ! For hacking JBoss server, you don't need much 
		application. All you need is a JSP shell and a browser. 
  We formed a
		Google dork to 
		search jmx consoles: inurl:jmx-console/HtmlAdaptor and here is the 
		result,
  |  	
	 |   |  	
	 
		
		
		  |  	
	 |   |  	
	 Most of the JBoss server have default 
		authentication to the jmx-console. The default configuration of JBoss 
		does not restrict access to the console and web management interfaces, 
		which allow remote attackers to bypass authentication and gain 
		administrative access via direct requests. 
  We just choose one of the 
		random URL and bingo! We got the access to the jmx-console. Next, we 
		need a JSP Shell. Jsp shells can be easily obtained by 
		searching over the internet. So now, we have a JSP shell to move on. |  	
	 |   |  	
	 
		
		
		  |  	
	 |   |  	
	 In order to deploy our shell, we will use the 
		DeploymentScanner in the jmx console by adding a new URL with our shell. 
		Using the addURL() command, it is possible to add a new URL with an 
		application or shell. Jboss will get the application from this URL.  
		 The 
		next step is to wait for the DeploymentScanner to deploy the file and 
		then we will access our shell. We uploaded our shell to a site, let's 
		say: abc.com/attack/cmd.jsp. Next we need to deploy it. So we will 
		access the DeploymentScanner in the console. |  	
	 |   |  	
	 
		
		
		  |  	
	 |   |  	
	 | Next, we will add our URL with the shell in 
		the jmx-console. |  	
	 |   |  	
	 
		
		
		  |  	
	 |   |  	
	 | Once the URL is added, we will invoke the 
		function. As seen in the figure above, we have a button to invoke the 
		function. Once finished, the application gives a message of successful 
		operation.  |  	
	 |   |  	
	 
		
		
		  |  	
	 |   |  	
	 | We waited for a minute while the shell was 
		being deployed on the server. After that, we accessed our deployed 
		shell. W00t W00t ! We have our shell running on the server perfectly! |  	
	 |   |  	
	 
		
		  |  	
	 |   |  	
	 | What surprised us was that we had a 
		root 
		privilege in the server using our shell |  	
	 |   |  	
	 
		
		
		  |  	
	 |   |  	
	
		|   | 
	
	
		|   | 
	
	
	
		
		 |   |   
	
	
	
		
	 
			
	
	  |   
	
	
		| 
		The JBoss default authentication vulnerability is like Christmas gift 
		for attackers! Usually administrators take it lightly. But the aftermath 
		can be fatal. An attacker can successfully gain control over the server 
		using this bug and | 
	
	
		
		
			- Root the server or tunnel it 
 
			- Get access to sensitive information 
 
			- Use the server to deploy malware 
 
			- Use the server in cyber crime campaigns Use the server to host 
			malicious contents
 
			- Compromise other machines connected to the server
 
		 
		 | 
	
	
	
		And the possibility may go on! 
  hat administrators need to do?  | 
	
	
	
		
		
			- Should try to avoid and should close remote access 
 
			- If remote access is enabled, a strong password should be applied
 
		 
		 | 
	
	
	
		| A small caution can save your organization's critical data and keep 
		them safe.  | 
	
	
	
		|   | 
	
	
	
		|   | 
	
	
	
		|   | 
	
	
	
		
	
	
	
		|   | 
	
	
	
		|  White Paper - JBoss Exploitation | 
	
	
	
		|   | 
	
	
	
		|   | 
	
	
	
		|   | 
	
	
	
		
	
	
	
		|   | 
	
	
	
		| 
		
		 | 
	
	
	
		|   | 
	
	
	
		|   | 
	
	
		
		
	
			  |   
	
		
	
		| 
		
	 | 
	
	
		|   | 
	
	
		|   | 
	
	
		|   | 
	
	
		|   | 
	
	
		|   | 
	
	
		|   | 
	
		|   |