Coder Social home page Coder Social logo

iec61850-mms-fuzzer's Introduction

IEC61850-MMS-Fuzzer

Overview

Mutation Based Fuzzer. Test your IEC61850 MMS Server Implementations. Mutation Based means in this context that the inputs have to do be genrated separately. The previously recorded network traffic has to be split in little chunks. The input data needs to have the following datanames.

Format: X_YY_ZZ.pcap X: sequential number. YY: coding of the service:

  • 00 Association
  • 01 Write value
  • 11 Direct control with normal security
  • 12 SBO control with normal security
  • 13 Direct control with enhanced security
  • 14 SBO control with enhanced security
  • 20 SGCB
  • ZZ: Logical node reference.

Input filter:

Use Wireshark Filter ip.src == (server ip) && mms

  • 01: Use first package
  • 11: Use first package
  • 12: Use first and second package (first select, second control)
  • 13: Use first and second package (first select, second control) enhanced security is just for the client relevant but not for Fuzzing
  • 20: Use first, second and third package (edit SG, write single Data, confirm edit SG)

Features

  • Association
  • Mutation of data
  • Resend the mutated data (over a TCP-Socked)
  • Generate PDF documentation of the tests

Parameter

  • Python main.py -h
  • f: Directory of the input data
  • i: IP-Adress of the server
  • o: Path to the documentation directory (output for the PDF documentation)
  • c: Count number of tests (mutations) of each input file (default 500)
  • d: Debug (default false)

example: python main.py -f /Users/XZ/... -i 192.168.1.42 -c 200 โ€“d

Used IEC61850 services

  • Associate
  • Release
  • SelectEditSG
  • SetEditSGValue
  • ConfirmEditSGValues - Select
  • SelectWithValue
  • Operate
  • Write

Requirements

  • Python 3.X
  • Pyshark
  • Anytree
  • Reportlab
  • ...
  • Pip install -r requirements.txt

Info

  • please feel free to send a pull request
  • no warranty
  • please only use laboratory environment and handle all findings responible

Findings

Siemens SIPROTEC5 CVSS v3.0 Base Score: 7.5

License

  • CDDL

iec61850-mms-fuzzer's People

Contributors

luusl avatar skill3t avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

iec61850-mms-fuzzer's Issues

How to split data?

Should I split my pcap into small pieces by services?
I don't understand how to find the piont to split pcapfile
thank you

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.