Intro to Common Industrial Protocol & Exploits
This talk demonstrates how to perform fuzzing and exploit vulnerabilities in the Common Industrial Protocol (CIP) used in industrial control systems. It details the protocol's object-oriented structure and how to leverage CIP routing to traverse between air-gapped network segments. The speaker explains how to identify and trigger 'Major Non-Recoverable Faults' (MNRFs) to cause denial-of-service conditions in programmable logic controllers. The presentation includes a practical guide on using Python and Wireshark to interact with and audit industrial hardware.
Exploiting Industrial Control Systems via Common Industrial Protocol Routing
TLDR: The Common Industrial Protocol (CIP) allows for seamless routing between disparate network segments, including air-gapped industrial environments. By fuzzing CIP objects, researchers can trigger Major Non-Recoverable Faults (MNRFs) that force programmable logic controllers into a dead state. This research highlights how protocol-level trust in industrial environments can be weaponized to cause physical process disruption.
Industrial control systems are often treated as black boxes by the broader security community. We assume that because a PLC is air-gapped or sits on a dedicated, non-routable network, it is inherently secure. This is a dangerous misconception. The Common Industrial Protocol (CIP) is the backbone of many industrial networks, and it was designed for interoperability, not for a hostile environment. When you look at how CIP handles routing between different network types like Ethernet/IP, ControlNet, and DeviceNet, you realize that the protocol itself provides a mechanism to traverse network boundaries that defenders assume are physically isolated.
The Mechanics of CIP Routing
CIP is not a standard network protocol in the way we think of TCP/IP. It is an object-oriented protocol that operates at the application layer but includes its own routing and session management logic. This is the critical point for any researcher: CIP does not care about your underlying network topology. If you can reach a device that speaks CIP, you can potentially route your traffic through that device to reach another, deeper segment of the industrial network.
The protocol uses a path-based addressing system. You define a route by specifying a sequence of ports and destination addresses. For example, you might send a request to a PLC on an Ethernet/IP network, tell it to route the packet out of its backplane to a specific slot, and then out of a secondary port to a ControlNet segment. The PLC acts as a router, blindly forwarding your malicious payload to the target. This allows an attacker to pivot from a compromised HMI or workstation directly into the heart of a control loop, bypassing traditional network segmentation.
Fuzzing for Major Non-Recoverable Faults
The most effective way to find vulnerabilities in these devices is through targeted fuzzing of the CIP object model. Every CIP-compliant device exposes a set of objects, each with its own class, instance, and attribute IDs. These are essentially C++ objects running in the device firmware. Because vendors often implement these objects with minimal input validation, they are prime targets for memory corruption bugs.
A highly effective strategy is to target the Get Attribute List service, which is service code 0x03. By iterating through class IDs and instance IDs, you can map the device's internal structure. When you hit an object that doesn't expect a specific service call or receives malformed data, you can trigger an MNRF.
# Simple fuzzer snippet for CIP object discovery
for class_id in range(0x00, 0x100):
# Requesting Get Attribute List (0x03) on Instance 0 (Singleton)
payload = b"\x03\x00\x01" + class_id.to_bytes(2, 'little')
# Send to target device via pycomm3
response = send_cip_request(target_ip, payload)
if response.error != 0x00:
print(f"Potential hit on Class {hex(class_id)}: {response.error}")
When an MNRF occurs, the PLC stops executing its logic, dumps its configuration, and enters a faulted state. It becomes a brick until a technician physically intervenes to reload the program. In a production environment, this is a catastrophic denial-of-service. You aren't just crashing a server; you are potentially stopping a manufacturing line, a power grid component, or a chemical process.
Real-World Engagement and Impact
During a penetration test, you will likely encounter these devices on the plant floor. The first step is to identify the hardware. Look for Allen-Bradley ControlLogix or similar modular systems. Once you have access to the network, use Wireshark to capture traffic. The CIP dissector in Wireshark is excellent and will show you exactly how the devices are communicating.
If you are a researcher, you should be using pycomm3 to automate your interactions. It is the gold standard for interacting with these devices. If you find a crash, do not just walk away. Document the specific path and the service call that triggered the fault. If you are working with a client, this is a high-severity finding. If you are doing independent research, report it through the CISA VINCE program. Vendors need to know that their input validation is failing.
The Defensive Reality
Defending against these attacks is difficult because the vulnerability is often in the protocol implementation itself. You cannot simply patch the protocol. Instead, you must focus on deep packet inspection at the network boundary. Your firewalls need to be aware of CIP traffic and should be configured to block unauthorized routing requests. If a PLC does not need to communicate with a specific segment, that path should be explicitly denied.
Furthermore, ensure that your industrial network is not just segmented, but monitored. If you see a workstation suddenly sending thousands of CIP requests to a PLC, that is an immediate indicator of a fuzzing attempt. Do not wait for the MNRF to happen.
The security of our critical infrastructure depends on us understanding these protocols as well as the engineers who built them. Stop treating the plant floor as a separate, untouchable world. Start auditing the traffic, start fuzzing the objects, and start building better defenses. The next time you are on an engagement, look for the PLC backplane. That is where the real story is hidden.
Vulnerability Classes
Target Technologies
Attack Techniques
Up Next From This Conference
Similar Talks

Unmasking the Snitch Puck: The Creepy IoT Surveillance Tech in the School Bathroom

We are currently clean on OPSEC: The Signalgate Saga




