IndustrialXPL-Forge (IXF) — OT/ICS/SCADA/HMI/IIoT Security Assessment & Exploitation Framework. Python-First, 688+ modules, 79 MITRE ATT&CK for ICS techniques, 26 ICS malware TTPs, 50+ vendors, 50+ protocols.
Project description
IndustrialXPL-Forge (IXF)
The World's Largest OT/ICS/SCADA Security Assessment & Exploitation Framework Part of the XPL-Forge suite | Author: André Henrique (@mrhenrike) | União Geek
Python-First — no Metasploit required. No msfconsole. No Ruby. Just Python.
Quick Start
pip install industrialxpl
ixf
Or from source:
git clone https://github.com/mrhenrike/IndustrialXPL-Forge
cd IndustrialXPL-Forge
pip install -r requirements.txt
python ixf.py
What is IXF?
IndustrialXPL-Forge is a modular, Python-native security assessment and exploitation framework for Operational Technology (OT), Industrial Control Systems (ICS), SCADA, HMI, PLC, RTU, DCS, and IIoT environments.
It covers the complete attack lifecycle:
OSINT → Discovery → Fingerprint → Vulnerability Check → Exploit → Report
Key features:
- Python-First: all core functionality works with
pip install industrialxpl— no Metasploit, no msfconsole, no Java, no Ruby required - SafeMode by default: every module runs in simulate mode — prints payload without sending
- MITRE ATT&CK for ICS v19: 79 techniques mapped,
ttp T0843 192.168.1.100syntax - CVE coverage: 3,300+ ICS/OT CVEs from CVSS 0.1 to 10.0
- 50 vendors: Siemens, Schneider, Rockwell, ABB, Honeywell, Emerson, WEG, and more
- 50 protocols: Modbus, S7comm, EtherNet/IP, DNP3, BACnet, IEC-104, OPC UA, PROFINET, and more
Module Catalog
| Category | Modules | Description |
|---|---|---|
exploits/protocols/ |
~50 | Modbus, S7, ENIP, DNP3, BACnet, Profinet, IEC104, OPC UA |
exploits/plc/ |
~80 | Siemens, Schneider, Rockwell, GE, Beckhoff, Unitronics, ABB |
exploits/scada/ |
~60 | IGSS, RealWin, Genesis32, CoDeSys, FUXA, CitectSCADA |
exploits/mes/ |
~25 | Ignition, ThinManager, SIMATIC Historian, DELMIA Apriso |
scanners/ics/ |
~50 | Protocol-specific discovery (Modbus, S7, BACnet, DNP3...) |
scanners/osint/ |
~8 | Shodan queries, ELITEWOLF web dorks, OT Hunt |
creds/ |
~55 | Default credentials for 50+ OT/ICS vendors |
cve/ |
3,300+ | All CVE severity levels (CVSS 0.1-10.0), 3 implementation tiers |
cve/apt/ |
~10 | APT malware TTPs: FrostyGoop, Industroyer2, TRITON, INCONTROLLER |
assessment/ |
~25 | IEC 62443, NIST 800-82r3, MITRE ICS, risk scoring, IR playbook |
Usage Examples
# Open the IXF interactive shell
ixf
# Load and run a module (simulate mode by default — safe)
ixf > use scanners/ics/modbus_detect
ixf > set target 192.168.1.100
ixf > check
# Search for modules
ixf > search siemens
ixf > search CVE-2015-5374
ixf > search modbus
# Execute a TTP-ID against a target
ixf > ttp T0843 192.168.1.100 # Program Download — all modules
ixf > ttp T0878 10.0.0.0/24 # Alarm Suppression — subnet sweep
ixf > ttp-list --tactic evasion # List all Evasion TTP-IDs
# MITRE ATT&CK for ICS sweep
ixf > mitre-scan discovery 192.168.1.0/24
ixf > mitre-scan evasion 192.168.1.100
ixf > mitre-all 192.168.1.100 # All 79 techniques (simulate by default)
ixf > mitre-coverage # Show coverage % per tactic
# CVE-specific modules
ixf > cve CVE-2026-25895 # FUXA SCADA pre-auth RCE
ixf > cve CVE-2015-5374 # Siemens SIPROTEC4 DoS
ixf > cve-scan 192.168.1.0/24 # Discover assets + test all CVEs
# Generate reports
ixf > report json
ixf > mitre-report layer # ATT&CK Navigator JSON layer
SafeMode / DestructiveMode
Every module defaults to simulate mode — it prints what it WOULD do without sending any packets.
ixf (FrostyGoop) > run # SIMULATE: prints payload, no send
ixf (FrostyGoop) > set simulate false
ixf (FrostyGoop) > set destructive true
ixf (FrostyGoop) > run # LIVE: shows banner + requires confirmation
Impact levels require proportional confirmation:
INFO/READ: automaticLOW: simple warningMEDIUM: press EnterHIGH: typeyesCRITICAL: type the full confirmation stringCATASTROPHIC: type string + wait 10 seconds
All destructive operations are logged to .log/destructive_ops_YYYY-MM-DD.log.
Python-First Policy
| Tier | Type | Examples | Required? |
|---|---|---|---|
| 0 | Python stdlib | socket, struct, select | Always |
| 1 | pip install | pymodbus, scapy, rich, requests | Yes |
| 2 | pip extras | asyncua, cpppo, python-can | Optional |
| 3 | External runtimes | ruby, node, java, gcc, go | Optional — Python fallback always available |
No Metasploit installation required. All 64 MSF SCADA modules are ported to Python native.
Legal Disclaimer
This tool is intended for authorized security testing, research, and educational purposes only.
Using IndustrialXPL-Forge against systems you do not own or do not have explicit written authorization to test is illegal and may violate computer fraud laws in your jurisdiction.
OT/ICS systems control critical physical infrastructure. Unauthorized use may cause:
- Physical damage to industrial equipment
- Disruption of essential services (power, water, gas, manufacturing)
- Personal injury or death
- Significant legal penalties
The authors and União Geek assume no liability for misuse. Users bear full legal and ethical responsibility for all actions performed with this tool.
Author & Credits
Author: André Henrique (@mrhenrike) | União Geek
Module sources: EmbedXPL-Forge (suite sibling), ISF/ICSSploit, ModBusSploit, Metasploit SCADA modules (ported to Python), n-days-poc-benchmark, InduGuard, ZeronTek OT Hunt research, CISA ICS-CERT advisories, Vedere Labs OT:ICEFALL.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file industrialxpl_forge-1.0.4.tar.gz.
File metadata
- Download URL: industrialxpl_forge-1.0.4.tar.gz
- Upload date:
- Size: 520.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
320ad3dbdbb3a956509dc405054007abeebc067eb4395f31f800d9ec6bcca926
|
|
| MD5 |
d8c84b78ead231c2821c21a87ae077d0
|
|
| BLAKE2b-256 |
da3a11857cc412437a139dbe6002305a41f9cf2903120a5cc553929692c3d61f
|
File details
Details for the file industrialxpl_forge-1.0.4-py3-none-any.whl.
File metadata
- Download URL: industrialxpl_forge-1.0.4-py3-none-any.whl
- Upload date:
- Size: 1.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e1c5bcf4590384bfbe999d1e5c8586051d03cbfca41c3831a63b82cb306fa316
|
|
| MD5 |
48fdfb1c791a04d0b2368ed98c40211f
|
|
| BLAKE2b-256 |
25d7cbcea545bec59a19b39013a72c678d2fb532edd302c4f6b8be3a46b643fe
|