Code Monkey home page Code Monkey logo

modshaft's Introduction

Modshaft

This python application lets you tunnel arbitrary ethernet traffic over the Modbus/TCP protocol. It is meant to assist in evading application layer firewalls. By running a special device (such a PwnPlug) on the PLC end of a control system network and running this tool, you may pass arbitrary traffic through to the PLC network, thereby evading an application-layer firewall. To the firewall, your traffic will appear to be 'read holding register' commands.

Run modbus-server.py on a system 'behind' a Modbus application-layer firewall, on the PLC side of the control network.

Run modbus-client.py on your workstation network.

Currently IP addresses, ports, etc are all hard-coded, sorry about that. Things aren't particularly well-written in general at the moment, but the tunnel does work. Expect an additional ~150ms latency, and not a lot of bandwidth. You might also want to adjust the MTU downwards: a packet full of modbus commands can only squeeze 3 bytes per modbus frame of meaningful data using the 'read registers' command, so setting the MTU of both client and server tap interfaces to something small (400 bytes or less) will probably increase the efficiency of the protocol a lot, and cause fewer tcp retransmissions. In addition you may want to set adjust your tcp timeouts upwards slightly for the tap interfaces on both ends of the tunnel.

Questions or comments? Please try krwightm 'at' gmail dot com.

modshaft's People

Contributors

reidmefirst avatar

Watchers

James Cloos avatar Romain A. avatar

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.