Skip to content

Add codesys3, crimson, pcworx, and proconos OT protocol modules - #757

Open
Ananya9588 wants to merge 3 commits into
zmap:masterfrom
Ananya9588:add-ot-modules
Open

Add codesys3, crimson, pcworx, and proconos OT protocol modules#757
Ananya9588 wants to merge 3 commits into
zmap:masterfrom
Ananya9588:add-ot-modules

Conversation

@Ananya9588

Copy link
Copy Markdown

Adds passive fingerprinting scan modules for four industrial protocols: CODESYS V3 NameService, Red Lion Crimson CR3, Phoenix Contact PC WorX, and Phoenix Contact/KW-Software ProConOS.

How to Test

go build ./...
go test ./modules/codesysv3/... ./modules/crimson/... ./modules/pcworx/... ./modules/proconos/...
./zgrab2 codesys3 -p 11740 <target>
./zgrab2 crimson -p 789 <target>
./zgrab2 pcworx -p 1962 <target>
./zgrab2 proconos -p 20547 <target>

Each module has unit tests that spin up a local fake TCP server and exercise the full Scanner.Scan path.

Notes & Caveats

  • codesysv3's protocol identifier is codesys3 (pairs with the existing codesys2 module for CODESYS V2), even though the Go package is named codesysv3.
  • Output schemas were added under zgrab2_schemas/zgrab2/ for all four modules.
  • No integration_tests/ service was added for any of these, following the existing precedent set by other niche OT/ICS modules (bacnet, fox, siemens, dnp3, omronfins) which also lack integration tests — I could not find a public Docker image or simulator for any of these four protocols. Happy to add one if a maintainer can point to a suitable real device/simulator.

Issue Tracking

N/A — happy to open a discussion issue first if preferred.

Ananya9588 and others added 3 commits August 3, 2026 00:34
Adds passive fingerprinting scanners for four industrial protocols:
CODESYS V3 NameService, Red Lion Crimson CR3, Phoenix Contact PC WorX,
and Phoenix Contact/KW-Software ProConOS. Each includes unit tests
against a fake local TCP server and a zschema output schema.
# Conflicts:
#	zgrab2_schemas/zgrab2/__init__.py
- Fix govet shadow warnings (err shadowing) in codesysv3, crimson, pcworx
- Preallocate slices per prealloc linter suggestions in codesysv3, crimson, pcworx, proconos test helpers
- Add FuzzParseResponse for codesysv3 to satisfy fuzz coverage check
@Ananya9588

Copy link
Copy Markdown
Author

All checks passed

@Seanstoppable

Copy link
Copy Markdown
Contributor

I was going to contribute my own codesys3 module that is pretty similar so (thumbsup)

@Ananya9588

Ananya9588 commented Aug 19, 2026

Copy link
Copy Markdown
Author

OO cool

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants