Skip to content
This repository has been archived by the owner on Jan 21, 2024. It is now read-only.
/ fakePLC Public archive

Basic PLC emulation framework with pluggable protocol support (intended for honeypots).

License

Notifications You must be signed in to change notification settings

b-irb/fakePLC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fakePLC is a basic PLC emulation framework with pluggable protocol support.

Rationale behind this project: existing honeypots are inflexible or use
3rd-party protocol dependencies which are not designed for adversarial
interactions. As such, fakePLC implements a MODBUS server, interacting with a
simulated S7-1200.

The simulated Siemens S7-1200 is _not_ feature complete and _not_ reliable.
You _should not_ use this without comparing against a real device. The
simulation models a gas cannister with a heating element. The PLC can modify
the target temperature of the heating element then read the actual temperature
of the heating element and the pressure of the cannister.

The rate of change of temperature and the cannister pressure are related to the
actual temperature and target temperature. In other words, all readings are
interactive.

The service handler is multi-threaded and fault-tolerant so no networking
shenanigans are required to add your own protocols (but you might need to add
locks to emulate a serial protocol).

Feel free to use this as you please.

About

Basic PLC emulation framework with pluggable protocol support (intended for honeypots).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published