• Stars
    star
    448
  • Rank 97,523 (Top 2 %)
  • Language
    Python
  • License
    Creative Commons ...
  • Created over 1 year ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Security-oriented list of resources about industrial network protocols.

Awesome Industrial Protocols

Compilation of industrial network protocols resources focusing on offensive security.

Awesome Industrial Protocols

In this repository:

  • You are currently viewing the Awesome Industrial Protocols page.
  • Detailed pages for protocols are available in protocols.
  • All data is stored in MongoDB databases in db.
  • Turn/IP (in srcs) is a handy tool to manipulate this data, generate the awesome list and protocol pages, and simplify the research and test process on industrial protocols.

Note: Sometimes it is unclear whether a name refers to a protocol, a standard, or a complete environment, or if a protocol on a serial link can be accessed in any way from the Ethernet link (through a dedicated implementation or a gateway). I apologize for any confusion, and of course, I welcome any remarks or contributions.

Contents

BACnet/IP

Name BACnet/IP
Alias BACnet
Description Building automation and control network communication protocol for HVAC systems
Keywords HVAC
Port 47808/udp
Access Paid
Specifications BACnet/IP Specification
Nmap script(s) bacnet-info.nse
Wireshark dissector packet-bacnet.c
Detailed page bacnetip.md

Articles

Conferences

Tools

CAN

Name CAN
Alias CANbus, CANopen, CAN-FD
Description Communication protocol enabling data exchange between electronic components in vehicles
Keywords CANbus
Specifications ISO-11898
Wireshark dissector packet-canopen.c
Scapy layer can.py
Detailed page can.md

Documentations

Articles

Conferences

Papers

Tools

  • cantools - Python library to play with CAN databases & messages
  • opendbc - A list of CAN databases retrieved from reverse-engineered cars
  • python-can - Python library to plug to various CAN connectors

CC-Link IE

Name CC-Link IE
Alias CSP+, CC-Link, CC-Link IE TSN, CC-Link IE Control, CC-Link IE Field, CC-Link IE Field Basic
Description Industrial Ethernet communication network developed by the CC-Link Partner Association (CLPA)
Keywords Mitsubishi, CLPA
Access Free
Specifications CSP+ specification
Detailed page cc-link-ie.md

Documentations

CIP

Name CIP
Alias Common Industrial Protocol
Description ODVA's protocol suite for industrial automation communication
Keywords ODVA, Ethernet/IP, DeviceNet, ControlNet, CompoNet
Wireshark dissector packet-cip.c
Detailed page cip.md

Documentations

Conferences

CODESYS

Name CODESYS
Description Programmable logic controller (PLC) development, communication protocol and runtime environment.
Port 1200/tcp
Detailed page codesys.md

Conferences

CSPv4

Name CSPv4
Alias AB CSPv4, AB/Ethernet
Description Allen-Bradley's protocol for industrial Ethernet communication
Keywords Allen-Bradley, PCCC
Port 2222/tcp
Nmap script(s) cspv4-info.nse
Detailed page cspv4.md

DeviceNet

Name DeviceNet
Description CAN-based industrial automation network for device-level communication
Keywords CAN, CIP
Wireshark dissector packet-devicenet.c
Detailed page devicenet.md

Documentations

Articles

DF1

Name DF1
Alias DF-1
Description Allen-Bradley serial communication protocol for industrial automation devices
Keywords PCCC, Allen-Bradley
Access Free
Specifications DF1 specification
Detailed page df1.md

Articles

Tools

  • abdf1 - AB DF1 Protocol RS232 driver for Micrologix, SLC500, PLC 5
  • Df1 - Df1 protocol for Allen-Bradley PLC

DICOM

Name DICOM
Alias DCM
Description Communication and management of medical imaging information
Keywords Radiography, Medical
Port 104/tcp
Access Free
Specifications DICOM Standard
Nmap script(s) dicom-ping.nse
Wireshark dissector packet-dcm.c
Detailed page dicom.md

Conferences

Tools

  • DCMTK - DICOM ToolKit
  • dicom-server - Microsoft's OSS Implementation of DICOMweb standard
  • pydicom - Python package to read, modify and write DICOM files

DNP3

Name DNP3
Alias Distributed Network Protocol
Description Industrial communication protocol for remote monitoring and control of automation systems
Keywords Power grid, Water
Port 20000/tcp, 20000/udp
Access Paid
Specifications IEEE 1815-2012
Security Optional authentication, optional encryption with TLS
Nmap script(s) dnp3-info.nse
Wireshark dissector packet-dnp.c
Example Pcap(s) ICS-pcap DNP3
Detailed page dnp3.md

Conferences

Tools

  • dnp-info - Nmap discovery script for DNP3
  • dnp3-simulator - .NET DNP3 simulator with GUI
  • FreyrSCADA DNP3 - DNP3 Protocol - Outstation Server and Client Master Simulator
  • gec/dnp3 - Open source Distributed Network Protocol
  • gec/dnp3slavesim - Parallel dnp3 slave simulator
  • opendnp3 - DNP3 (IEEE-1815) protocol stack. Modern C++ with bindings for .NET and Java
  • Step Function I/O DNP3 - Rust implementation of DNP3 (IEEE 1815) with idiomatic bindings for C, .NET, C++, and Java

Ether-S-I/O

Name Ether-S-I/O
Alias EtherSIO, ESIO
Description Proprietary protocol for Saia PCD controller I/O communication
Keywords SAIA
Port 6060/udp
Wireshark dissector packet-esio.c
Example Pcap(s) ICS-pcap Ether-S-I/O
Detailed page ether-s-io.md

EtherCAT

Name EtherCAT
Alias ECATF, ECAT
Description Real-time industrial Ethernet communication protocol for automation systems
Port 34980/udp
Scapy layer ethercat.py
Example Pcap(s) ICS-pcap EtherCAT
Detailed page ethercat.md

Articles

Ethernet/IP

Name Ethernet/IP
Alias Enip
Description Ethernet-based industrial communication protocol for industrial automation systems
Keywords CIP
Port 44818/tcp, 2222/udp
Access Paid
Specifications Ethernet/IP Specifications
Nmap script(s) enip-info.nse, enip-enumerate.nse
Wireshark dissector packet-enip.c
Scapy layer enipTCP.py
Example Pcap(s) ICS-pcap Ethernet/IP, ICS-pcap EIP
Detailed page ethernetip.md

Documentations

Articles

Conferences

Tools

  • CIPster - Ethernet/IP (Common Industrial Protocol) stack in C++
  • cpppo - Communications Protocol Python Parser and Originator -- EtherNet/IP CIP
  • enip-stack-detector - EtherNet/IP & CIP Stack Detector
  • OpENer - EtherNet/IP stack for I/O adapter devices
  • pycomm3 - A Python Ethernet/IP library for communicating with Allen-Bradley PLCs
  • scapy-cip-enip - Ethernet/IP dissectors for Scapy

ETP

Name ETP
Description Energistics' protocol for interoperable oil and gas data exchange
Keywords Energetics
Detailed page etp.md

FF-HSE

Name FF-HSE
Alias Foundation Fieldbus HSE, FF
Description Ethernet-based communication for industrial process automation devices
Port 1089/tcp, 1090/tcp, 1091/tcp, 1089/udp, 1090/udp, 1091/udp
Wireshark dissector packet-ff.c
Detailed page ff-hse.md

FINS

Name FINS
Alias OMRON
Description Omron's industrial communication protocol for automation systems
Port 9600/udp
Nmap script(s) omrontcp-info.nse, omronudp-info.nse
Wireshark dissector packet-omron-fins.c
Detailed page fins.md

Conferences

FL-net

Name FL-net
Alias Factory LAN, OPCN-2
Description Japan Electrical Manufacturers' Association's industrial-use open network
Keywords JEMA
Port 55000/udp, 55001/udp, 55002/udp, 55003/udp
Access Free
Specifications FL-net specification
Detailed page fl-net.md

GE-SRTP

Name GE-SRTP
Description General Electric's protocol for communication between GE devices and SCADA
Port 18245/tcp
Detailed page ge-srtp.md

HART-IP

Name HART-IP
Alias HART, WirelessHART
Description IP-based communication protocol for HART (ICS) data transmission
Wireshark dissector packet-hartip.c
Example Pcap(s) ICS-pcap HART-IP
Detailed page hart-ip.md

Articles

Conferences

HICP

Name HICP
Alias SHICP
Description HMS IP Configuration Protocol
Keywords Anybus
Port 3250/udp
Wireshark dissector packet-hicp.c, packet-shicp.c
Scapy layer hicp.py
Detailed page hicp.md

HL7

Name HL7
Description Standard for healthcare data exchange and interoperability
Wireshark dissector packet-hl7.c
Detailed page hl7.md

Conferences

ICCP

Name ICCP
Alias IEC 60870-6, TASE.2
Description Real-time data exchange between power system control centers
Keywords Power
Port 102/tcp
Access Paid
Specifications ICCP (TASE.2) specification
Detailed page iccp.md

Conferences

IEC-60870-5-104

Name IEC-60870-5-104
Alias IEC-104
Description Grid communication protocol for control and monitoring
Port 2404/tcp
Access Paid
Specifications IEC-60870-5-104 Specification
Nmap script(s) iec-identify.nse
Wireshark dissector packet-iec104.c
Scapy layer iec104.py
Example Pcap(s) ICS-pcap IEC-60870-5-104, Industroyer2 pcap samples
Detailed page iec-60870-5-104.md

Conferences

Papers

Tools

IEC-61850

Name IEC-61850
Alias IEC-61850/GOOSE, IEC-61850/GSSE, IEC-61850/SV
Description Communication networks and systems for power utility automation
Keywords Power grid
Access Paid
Specifications IEC 61850 Specification
Wireshark dissector packet-goose.c, packet-sv.c
Detailed page iec-61850.md

Conferences

Tools

  • libiec61850 - Open-source library for the IEC 61850 protocols

IEEE-C37.118

Name IEEE-C37.118
Alias C37.118, Synchrophasor, Synphasor
Description Standard for synchrophasor data exchange in power systems
Keywords Power
Wireshark dissector packet-synphasor.c
Detailed page ieee-c37118.md

Tools

  • OpenPDC - Open Source Phasor Data Concentrator
  • PyMU - Library based on the C37.118.2-2011 standard used for accessing PMU data in real-time

ISA100.11a

Name ISA100.11a
Description Wireless standard for industrial automation and control systems
Detailed page isa10011a.md

Conferences

KNXnet/IP

Name KNXnet/IP
Alias KNX, KNX/IP, Konnex
Description Protocol for home and building automation systems
Keywords BMS, BAS, Building
Port 3671/udp
Access Free
Specifications KNXnet/IP Specifications
Security Optional, Security extensions available
Nmap script(s) knx-gateway-discover.nse, knx-gateway-info.nse
Wireshark dissector packet-knxip.c
Scapy layer knx.py
Detailed page knxnetip.md

Documentations

Conferences

Papers

Tools

  • BOF - Testing framework for industrial protocols
  • calimero - Lightweight KNX/IP framework in Java
  • ETS - Engineering Tool Software for KNXnet/IP (ETS Demo is free)
  • KNX Virtual - Windows-based application simulating a KNX installation
  • knxd - KNXd service
  • KNXmap - KNXnet/IP scanning and auditing tool
  • Unpwning A Building - Peter Panholzer @ S4x22 (2022)
  • XKNX - A KNX library written in Python

LIS

Name LIS
Alias LIS01-A2, LIS02-A2
Description Protocol to transfer messages between clinical laboratory instruments and computer systems.
Keywords CLSI, Healthcare, Medical
Port 1520
Access Paid
Specifications CLSI LIS01-A1 Specifications
Detailed page lis.md

LoRaWAN

Name LoRaWAN
Alias LoRa
Description Long-range IoT communication protocol with low power requirements
Keywords Wireless
Access Free
Specifications LoRaWAN specification
Wireshark dissector packet-lorawan.c
Detailed page lorawan.md

Conferences

Tools

M-Bus

Name M-Bus
Alias Meter-Bus, EN13757
Description Communication protocol for utility metering devices
Access The old specification is free, not the current one
Specifications M-Bus specification
Detailed page m-bus.md

MELSEC

Name MELSEC
Alias MEL-SEC
Description Communication protocol for Mitsubishi Electric's MELSEC series of PLCs
Keywords Mitsubishi, MELSOFT
Detailed page melsec.md

Conferences

Modbus

Name Modbus
Alias Modbus TCP
Description Widely used industrial communication protocol
Port 502/tcp
Specifications Modbus TCP Specification
Nmap script(s) modbus-discover.nse, modicon-info.nse
Wireshark dissector packet-mbtcp.c
Scapy layer modbus.py
Example Pcap(s) ICS-pcap Modbus
Detailed page modbus.md

Articles

Conferences

Tools

  • ctmodbus - A tool to interact with the Modbus protocol
  • Malmod - Scripts to attack Modicon M340 via UMAS
  • PyModbus - A full modbus protocol written in python

MQTT

Name MQTT
Description Publish-suscribe network protocol for message queue
Keywords Telemetry
Nmap script(s) mqtt-suscribe.nse
Wireshark dissector packet-mqtt.c
Scapy layer mqtt.py
Detailed page mqtt.md

Articles

Conferences

Niagara Fox

Name Niagara Fox
Alias Fox
Description Communication protocol used by Tridium Niagara devices
Keywords Tridium
Port 1911/tcp, 3011/tcp, 4911/tcp, 5011/tcp
Nmap script(s) fox-info.nse
Detailed page niagara-fox.md

Tools

  • foxdissector - Wireshark dissector for the Niagara Fox protocol in Lua

OPC-DA

Name OPC-DA
Alias OPCDA
Description Legacy protocol for real-time data exchange in industrial systems
Scapy layer opc_da.py
Detailed page opc-da.md

Papers

Tools

OPC-UA

Name OPC-UA
Alias OPCUA
Description Open communication standard for industrial automation and control
Port 4840/tcp, 4840/udp, 4843/tcp (TLS)
Wireshark dissector OPC-UA Plugin
Detailed page opc-ua.md

Articles

Conferences

Papers

Tools

PC-WORX

Name PC-WORX
Description Software suite with proprietary protocol for Phoenix Contact PLCs
Keywords Phoenix Contact
Port 1962/tcp
Nmap script(s) pcworx-info.nse
Detailed page pc-worx.md

PCCC

Name PCCC
Alias AB/PCCC
Description Legacy command/response protocol for Allen-Bradley PLC communication
Keywords Allen-Bradley
Detailed page pccc.md

Articles

POWERLINK

Name POWERLINK
Alias Ethernet PowerLink, EPL
Description Real-time Ethernet protocol for industrial automation and control
Port Ethernet
Wireshark dissector packet-epl.c
Detailed page powerlink.md

Articles

Tools

ProConOs

Name ProConOs
Description Real-time operating system with proprietary protocol for industrial automation and control
Port 20547/tcp
Nmap script(s) proconos-info.nse
Detailed page proconos.md

Profinet-DCP

Name Profinet-DCP
Alias PNDCP
Description Device identification, configuration, and network management protocol
Port Ethernet
Scapy layer pnio_dcp.py
Detailed page profinet-dcp.md

Profinet-IO

Name Profinet-IO
Alias PNIO
Description Real-time communication between controllers and I/O devices
Port 34962/udp, 34963/udp, 34964/udp
Scapy layer pnio.py
Detailed page profinet-io.md

Articles

S-Bus

Name S-Bus
Alias Ether-S-Bus, SAIA S-Bus
Description SAIA's communication protocol for building automation
Keywords SAIA
Access Free
Wireshark dissector packet-sbus.c
Example Pcap(s) ICS-pcap Ether-S-Bus
Detailed page s-bus.md

S7comm

Name S7comm
Alias S7, S7commPlus
Description Communication protocol for Siemens S7 PLCs
Port 102/tcp
Nmap script(s) s7-info.nse, s7-enumerate.nse
Wireshark dissector packet-s7comm.c
Example Pcap(s) ICS-pcap S7
Detailed page s7comm.md

Articles

Conferences

Tools

  • python-snap7 - A Python wrapper for the snap7 PLC communication library
  • s7-pcaps - Traffic captures between STEP7/WinCC and S7-300/S7-400 PLCs
  • s7scan - Scan networks to gather basic information about Siemens PLCs
  • Snap7 - Step7 Open Source Ethernet Communication Suite

SECS/GEM

Name SECS/GEM
Alias SECS, SECS-I, SECS-II, HSMS
Description Semiconductor equipment communication standard with generic equipment model
Keywords Semiconductor, MES
Port 5000/tcp (HSMS)
Detailed page secsgem.md

SERCOS-III

Name SERCOS-III
Alias SERCOS
Description IEC standard universal bus for Ethernet-based real-time communication
Wireshark dissector packet-sercosiii.c
Detailed page sercos-iii.md

SLMP

Name SLMP
Alias Seamless Message Protocol
Description CC-Link's messaging protocol for industrial automation communication
Keywords Mitsubishi, CC-Link, CLPA
Access Free
Specifications SLMP specification
Detailed page slmp.md

Tools

SOME/IP

Name SOME/IP
Description Automotive Ethernet protocol for ECU communication over IP networks
Keywords Automotive, ECU
Port 30490
Wireshark dissector packet-someip.c
Detailed page someip.md

Documentations

  • SOME-IP.com - Main website with resources about SOME/IP

Conferences

TriStation

Name TriStation
Alias Triconex TriStation
Description Triconex's proprietary protocol for safety system communication
Keywords Triconex, TRITON
Wireshark dissector TriStation.lua
Detailed page tristation.md

Articles

Conferences

Tools

  • tricotools - Triconex TriStation utilities and tools

TSAA

Name TSAA
Description Messaging protocol to read and write data to Triconex controllers
Keywords Triconex
Detailed page tsaa.md

Documentations

UMAS

Name UMAS
Description Schneider Electric's proprietary protocol for communication systems
Nmap script(s) modicon-info.nse
Wireshark dissector modbus-umas-schneider.lua
Detailed page umas.md

Articles

Tools

  • Malmod - Scripts to attack Modicon M340 via UMAS

WITS

Name WITS
Alias WITS0, WITSML
Description Real-time drilling data transfer standard in oil and gas
Keywords Wellsite, Drilling, Geology
Detailed page wits.md

ZigBee

Name ZigBee
Alias ZBee
Description Wireless communication protocol for low-power IoT devices.
Wireshark dissector packet-zbee-nwk.c
Scapy layer zigbee.py
Detailed page zigbee.md

Conferences

Papers

Tools

  • KillerBee - IEEE 802.15.4/ZigBee Security Research Toolkit
  • Mirage - Framework dedicated to the security analysis of wireless communications

All unreviewed AI-generated data is marked with *.
AI is used as a search engine with an extra step. It is never used to find resources because it does not find them, it invents them. More details here.

awesome-industrial-protocols is licensed under CC0. Turn/IP is licensed under GPL-v3.

More Repositories

1

GOAD

game of active directory
PowerShell
4,933
star
2

arsenal

Arsenal is just a quick inventory and launcher for hacking programs
Python
3,155
star
3

ocd-mindmaps

Orange Cyberdefense mindmaps
1,001
star
4

KeePwn

A python tool to automate KeePass discovery and secret extraction.
Python
444
star
5

fenrir-ocd

Python
226
star
6

grepmarx

A source code static analysis platform for AppSec enthusiasts.
Python
194
star
7

russia-ukraine_IOCs

Russia / Ukraine 2022 conflict related IOCs from CERT Orange Cyberdefense Threat Intelligence Datalake
173
star
8

graphcat

Generate graphs and charts based on password cracking result
Python
152
star
9

versionshaker

Find the remote website version based on a git repository
Python
122
star
10

haiti

🔑 A CLI tool to identify the hash type of a given hash.
Ruby
107
star
11

CVE-repository

🪲 Repository of CVE found by OCD people
Python
68
star
12

disposable-mailbox-docker

A self hosted yopmail like server running in a docker
PHP
55
star
13

cme-wmi

A standalone WMI protocol for CrackMapExec
Python
48
star
14

wmi-shell

WMI Shell project : proof-of-concept of remote access to a Windows machine using only the WMI service.
C
43
star
15

bof

BOF (Boiboite Opener Framework) is a testing framework for industrial protocols implementations and devices.
Python
42
star
16

ctf-party

🎏 A library to enhance and speed up script/exploit writing for CTF players
Ruby
39
star
17

rabid

🍪 A CLI tool and library allowing to simply decode all kind of BigIP cookies.
Ruby
37
star
18

ctf-write-ups

📝 Collection of our CTF write-ups
Python
27
star
19

sikara

Ease and assist the compromise of an Active Directory environment.
Python
26
star
20

reverse-proxy-auth

A Nginx reverse proxy that authenticates users using their personal certificates. Includes everything to create and revoke those certificates, create the CA and even TLS certificates for websites.
Shell
23
star
21

mass-nessus-docker

Deploy multiple instances of Nessus in docker containers easily
Shell
19
star
22

log4shell_iocs

Log4Shell IOCs from CERT Orange Cyberdefense Threat Intelligence Datalake
17
star
23

leHACK-2022

C
16
star
24

sqltrees

Developper-proof prevention of SQL injection (java library)
Java
10
star
25

sweetlemonade

SWEETLEMONADE is a bootkit for UEFI firmware
C
5
star
26

CyberSOC-detect-Nanocore-RAT

Détection de malwares par Artefacts : le cas du RAT Nanocore
Python
3
star