Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

README.md

ICS Protocols

Developed as a community asset

AMI

BACnet

  • BACpypes - BACpypes provides a BACnet application layer and network layer written in Python for daemons, scripting, and graphical interfaces.

DNP3

Protocol Implementation

  • OpenDNP3 - Opendnp3 is the de facto reference implementation of IEEE-1815 (DNP3) provided under the Apache License.
  • DNP3 Simulator - Graphical DNP3 Master/Outstation simulator
  • PIFaceRTU - Opendnp3 running on a Raspberry Pi with Piface I/O board
  • Langsec DNP3 Parser - Parsing DNP3 using parser combinators in C.

Fuzzing

  • AEGIS Fuzzer - Aegis™ is a smart fuzzing framework for a growing number of protocols that can identify robustness and security issues in communications software before it is deployed in a production system. [commercial] Early Open Source version is mirrored here: Open-Source.

IEC 104

  • IEC Server - Software to simulate server side of systems using a telecontrol message Protocol specified in the IEC 60870-5.
  • OpenMRTS - MRTS is an attempt to create open source IEC 870-5-101/104 based components for telecontrol and supervisory systems and to become a complete solution in future.
  • QTester104 - This software implements the IEC60870-5-104 protocol (client side) for substation data acquisition and control via tcp/ip network using the QT UI Framework. It can be compiled on Linux and Windows platforms. It's possible to poll and view data from the substation system (RTU/concentrator) and also send commands.
  • lib60870 - Implements IEC 60870-5-104 protocol.

IEC 61850

Protocol Implementation

  • libIEC61850 - open source library for IEC 61850.
  • rapid61850 - Rapid-prototyping protection and control schemes with IEC 61850

Tools

  • IEDScout - IEDScout provides access to 61850-based IEDs and can simulate entire Ed. {1,2} IEDs. Specifically, IEDScout lets you look inside the IED and at its communication. All data modeled and exchanged becomes visible and accessible. Additionally, IEDScout serves numerous useful tasks, which could otherwise only be performed with dedicated engineering tools or even a functioning master station. IEDScout shows an overview representing the typical workflow of commissioning, but also provides detailed information upon request. [commercial] Free 30 day evaluation license.

Modbus

Protocol Implementation

  • pyModBus - A full modbus protocol written in python.
  • Modbus for Go - Fault-tolerant implementation of modbus protocol in Go (golang)
  • ModbusPal - ModbusPal is a MODBUS slave simulator. Its purpose is to offer an easy to use interface with the capabilities to reproduce complex and realistic MODBUS environments. Mirror available here.
  • SMOD - MODBUS Penetration Testing Framework. smod is a modular framework with every kind of diagnostic and offensive feature you could need in order to pentest modbus protocol. It is a full Modbus protocol implementation using Python and Scapy. This software could be run on Linux/OSX under python 2.7.x.

Fuzzing

  • AEGIS Fuzzer - Aegis™ is a smart fuzzing framework for a growing number of protocols that can identify robustness and security issues in communications software before it is deployed in a production system. [commercial] Early Open Source version is mirrored here: Open-Source.

PROFINET

Protocol Implementation

Fuzzing

  • ProFuzz - Simple PROFINET fuzzer based on Scapy

Siemens S7

  • Snap7 - open source Siemens S7 communication library.
  • LibNoDave - Another (less complete) open source communication library for the S7 protocol.
  • S7comm - open source Wireshark dissector plugin for the Siemens S7 protocol.

Zigbee

  • Killerbee - IEEE 802.15.4/ZigBee Security Research Toolkit.

General Protocol Fuzzing

  • AFL - American fuzzy lop is a security-oriented fuzzer that employs a novel type of compile-time instrumentation and genetic algorithms to automatically discover clean, interesting test cases that trigger new internal states in the targeted binary.

(creative commons license)