PLC Service - zakharb/labshock GitHub Wiki
Labshock provides multiple PLC services to simulate, test, and analyze Programmable Logic Controllers (PLCs) in an OT environment. These services support industrial automation, cybersecurity research, and integration with monitoring tools like SIEM and IDS.
PLC services in Labshock allow users to:
- Deploy and manage virtual PLCs.
- Simulate industrial control logic.
- Communicate using standard automation protocols.
- Monitor PLC activity and log events for security analysis.
Labshock includes different PLC implementations, each designed for specific use cases, such as testing real-world scenarios, detecting attacks, or integrating with OT security solutions.
OpenPLC is an open-source PLC runtime that supports standard industrial automation protocols. It provides a web-based interface for managing and monitoring PLC logic.
Labshock contains modified version of OpenPLC
Full docs for OpenPLC on official website
Source code for service: forkedOpenPLC
PLC supports all five languages defined in the IEC 61131-3 standard:
-
LD
Ladder Logic -
IL
Instruction List -
ST
Structured Text -
FBD
Function Block Diagram -
SFC
Sequential Function Chart
PLC supports protocols
- Modbus
- DNP3
- OpenPLC Web Interface: http://localhost:8080
- Default login credentials (if not changed):
-
Username:
openplc
-
Password:
openplc
-
Username:

The dashboard provides an overview of the OpenPLC runtime status. Key features:
- Check logs to monitor system activity.
- View runtime status and active connections.

- Upload, edit, and delete PLC programs.
- Compile programs and deploy them to the runtime.
- Select and activate a specific logic program.

- View the status of PLC runtime execution.
- Check tag values in real time.
- Monitor I/O status and variables for debugging.

- Manage user accounts with different permission levels.
- Add, modify, or delete users.

- Enable/disable specific services and protocols.
- Configure security options, such as logging.
- Enable Syslog logging to send logs to an external log server.
- Adjust system settings for OpenPLC runtime.

- Set checkbox Enable Syslog Server
- Set IP and Port like: 192.168.3.40:514
- Restart container!
docker-compose restart plc
