OT/ICS Security Tools
Specialized tools for ICS security testing, from protocol analyzers to PLC exploitation frameworks and lab simulation platforms.
Protocol-Specific Tools
Modbus Tools
pymodbus
Full Modbus protocol implementation in Python. Supports TCP, RTU, ASCII.
pip install pymodbusmodbus-cli
Command-line tool for quick Modbus testing and enumeration.
pip install modbus-climbtget
Simple Modbus/TCP client. Good for quick reads.
apt install mbtgetModbusPal
Java-based Modbus slave simulator for lab testing.
# Download from SourceForgeSiemens S7 Tools
snap7
Open-source S7 communication library. Python bindings available.
pip install python-snap7s7scan
S7 network scanner and enumeration tool.
git clone https://github.com/klsecservices/s7scanEtherNet/IP (Allen-Bradley) Tools
pycomm3
Python library for Allen-Bradley PLC communication.
pip install pycomm3cpppo
EtherNet/IP CIP protocol implementation.
pip install cpppoOPC UA Tools
# Python OPC UA
pip install opcua
pip install asyncua
# GUI Client
pip install opcua-client-gui
# OPC UA security scanner
git clone https://github.com/SCADACS/OPC-UA-CheckerICS Exploitation Frameworks
Metasploit ICS Modules
Built-in modules for ICS exploitation and enumeration.
msfconsole
search type:auxiliary modbus
search type:auxiliary scada
search type:exploit icsISF (Industrial Security Framework)
Exploitation framework specifically for ICS.
git clone https://github.com/dark-lbp/isfMetasploit ICS Modules
# Modbus modules
use auxiliary/scanner/scada/modbus_findunitid
use auxiliary/scanner/scada/modbusclient
use auxiliary/scanner/scada/modbusdetect
# S7 modules
use auxiliary/scanner/scada/s7_enumerate
use auxiliary/admin/scada/s7_control
# BACnet modules
use auxiliary/scanner/scada/bacnet_info
# EtherNet/IP modules
use auxiliary/scanner/scada/ethernetip_info
# DNP3 modules
use auxiliary/scanner/scada/dnp3_enumerate
# Running example
use auxiliary/scanner/scada/modbus_findunitid
set RHOSTS 192.168.100.0/24
runNetwork Analysis
Wireshark
Essential for ICS traffic analysis. Has dissectors for most ICS protocols.
apt install wiresharkZeek (Bro)
Network analysis with ICS protocol support.
apt install zeekNetworkMiner
Network forensics with protocol parsing.
# Download from netresec.comGrassmarlin
NSA tool for passive ICS network mapping.
git clone https://github.com/nsacyber/GRASSMARLINLab Simulators
Virtual PLCs
| Tool | Description | Cost |
|---|---|---|
| OpenPLC | Open-source PLC runtime (IEC 61131-3) | Free |
| CODESYS | Industrial PLC development system | Free trial |
| Siemens PLCSim | Official Siemens S7 simulator | Commercial |
| Factory I/O | 3D factory simulation for PLC training | $$$ |
Complete ICS Labs
# GRFICSv2 - Virtual ICS/SCADA testbed
# Includes: HMI, PLCs, Process Simulation
git clone https://github.com/Fortiphyd/GRFICSv2
cd GRFICSv2
vagrant up
# SWaT Dataset - Water treatment simulation data
# Used for ICS anomaly detection research
# https://itrust.sutd.edu.sg/testbeds/secure-water-treatment-swat/
# DVCP - Damn Vulnerable Chemical Process
# Simple process simulation for learning
git clone https://github.com/satejnik/DVCP-VAM
# ConPot - ICS/SCADA honeypot (can be used as lab)
pip install conpot
conpot --template defaultVulnerability Scanners
Nmap ICS Scripts
Built-in scripts for ICS protocol detection.
ls /usr/share/nmap/scripts/*scada*
ls /usr/share/nmap/scripts/*modbus*
ls /usr/share/nmap/scripts/*s7*Redpoint
Digital Bond's ICS enumeration scripts for Nmap.
git clone https://github.com/digitalbond/RedpointAsset Discovery
# Shodan CLI for ICS discovery
pip install shodan
shodan init YOUR_API_KEY
# Search for ICS devices
shodan search port:502
shodan search port:102
shodan search "Siemens S7"
# Download results
shodan download results port:502 country:US
# Censys for ICS
pip install censys
censys search "protocols: modbus"Tool Installation Script
#!/bin/bash
# ICS Pentesting Tools Installation Script
# Run on Kali Linux
echo "[*] Installing ICS/OT pentesting tools..."
# Update system
sudo apt update
# Python libraries for ICS protocols
pip3 install pymodbus
pip3 install python-snap7
pip3 install pycomm3
pip3 install opcua asyncua
pip3 install BAC0
pip3 install scapy
pip3 install shodan censys
# Nmap (should be installed)
sudo apt install -y nmap
# Wireshark
sudo apt install -y wireshark tshark
# Clone repositories
mkdir -p ~/ics-tools
cd ~/ics-tools
# s7scan
git clone https://github.com/klsecservices/s7scan
# ISF - Industrial Security Framework
git clone https://github.com/dark-lbp/isf
# Redpoint Nmap scripts
git clone https://github.com/digitalbond/Redpoint
sudo cp Redpoint/*.nse /usr/share/nmap/scripts/
# GRFICSv2 (requires vagrant)
git clone https://github.com/Fortiphyd/GRFICSv2
# ConPot honeypot
pip3 install conpot
# OpenPLC
git clone https://github.com/thiagoralves/OpenPLC_v3
cd OpenPLC_v3
./install.sh linux
cd ..
# GRASSMARLIN
git clone https://github.com/nsacyber/GRASSMARLIN
echo "[+] Installation complete!"
echo "[*] Remember to configure Wireshark for non-root capture:"
echo " sudo dpkg-reconfigure wireshark-common"
echo " sudo usermod -aG wireshark $USER"Resources
- CISA ICS-CERT -
cisa.gov/ics
Advisories, alerts, and best practices - MITRE ATT&CK for ICS -
attack.mitre.org/ics
ICS-specific adversary techniques - SANS ICS Library -
sans.org/ics-library
Free resources and whitepapers - SCADAhacker -
scadahacker.com
Tools, resources, and training
Certifications