Skip to main content

IndustrialXPL-Forge (IXF) — OT/ICS/SCADA/HMI/IIoT Security Assessment & Exploitation Framework. Python-First, 690+ 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.100 syntax
  • 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: automatic
  • LOW: simple warning
  • MEDIUM: press Enter
  • HIGH: type yes
  • CRITICAL: type the full confirmation string
  • CATASTROPHIC: 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

industrialxpl_forge-1.0.3.tar.gz (518.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

industrialxpl_forge-1.0.3-py3-none-any.whl (1.3 MB view details)

Uploaded Python 3

File details

Details for the file industrialxpl_forge-1.0.3.tar.gz.

File metadata

  • Download URL: industrialxpl_forge-1.0.3.tar.gz
  • Upload date:
  • Size: 518.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for industrialxpl_forge-1.0.3.tar.gz
Algorithm Hash digest
SHA256 46cc633d89a99fffff4586942fc2451bff44f810b2b40095d08b862a4c6448b3
MD5 979052a388947522bed5ac8b13d41ac5
BLAKE2b-256 c3b3ca635451fbda8351d330ea43679bcdeebac307b70786683cbf4114cf16a0

See more details on using hashes here.

File details

Details for the file industrialxpl_forge-1.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for industrialxpl_forge-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 4c52734d8fc87fee83bb166202b658d9c7eb1aea438fe43ef00bfbef223b82fc
MD5 30b4f7c6d9cf2dd0e23e73ab34602f60
BLAKE2b-256 72666d822ace5d9364b0b1e0bcd13349ba268232d380173defa2f686fb93e281

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page