A Modbus TCP scan lights up port 502. On its own that tells you one fact: something on that address is listening and willing to talk. It does not tell you whether the answer is a PLC, a gateway standing in front of a PLC, a simulator left running on a test bench, or an HMI with a driver nobody remembers installing. A port opens a door. The exchange behind it tells you who is standing there.
This page is the port list for the protocols you will meet on a plant floor, in a substation or in a building automation network. Every number below is either an IANA registration or comes from the vendor's own documentation or a protocol specification, linked at first use. Bookmark it. Link to it. And read the "authenticates by default" column as carefully as the port number, because for most of this list the honest answer is no.
The port list
Transport and port decide where a probe is worth sending. Nothing in this table decides what a device is on its own, a point the next two sections cover in more detail.
| Protocol | Transport | Port(s) | What it is for | Authenticates by default | Safety note |
|---|---|---|---|---|---|
| Modbus TCP | TCP | 502 | Master/slave polling of coils, registers and discrete I/O against PLCs, RTUs and drives | No, the protocol has no authentication field at all | Write function codes (5, 6, 15, 16) can move an actuator on the next scan cycle |
| DNP3 | TCP and UDP | 20000 | Utility SCADA polling and unsolicited event reporting between a master station and RTUs or IEDs | No by default. Secure Authentication v5/v6 (IEC 62351-5) exists and is rarely turned on | Unsolicited response and direct-operate function codes can issue a control command without a prior poll |
| EtherNet/IP (CIP) | TCP + UDP | 44818 (explicit) / 2222 (implicit) | Configuration and one-off reads over 44818, cyclic I/O and CIP Safety traffic over 2222 | No by default, CIP's optional security extensions are rarely enabled on the plant floor | 2222 can carry CIP Safety I/O for GuardLogix-class controllers, not just ordinary data |
| S7comm | TCP | 102 | Siemens S7-300/400/1200/1500 programming, diagnostics and read/write access | S7-300/400 none, S7-1200/1500 optional password-based access levels | Shares port 102 with IEC 61850 MMS, confirm by the PDU, never by the port |
| OPC UA | TCP | 4840 / 4843 (secure) | Vendor-neutral read, write and subscribe access to a server's information model | Capable of certificate-based mutual authentication, but Security Policy None ships and stays on in the field | A None-security endpoint gives full browse and write access to anyone who can reach the port |
| BACnet/IP | UDP | 47808 | Building automation and access control discovery and read/write, via Who-Is/I-Am broadcasts | No, classic BACnet/IP has no authentication (BACnet/SC adds TLS, rarely retrofitted) | One Who-Is broadcast queries every device on the segment at once |
| IEC 60870-5-104 | TCP | 2404 | Control-centre to substation telecontrol, the IEC equivalent of DNP3 | No at the application layer, IEC 62351-3 TLS is a bolt-on with inconsistent vendor support | Carries single/double command APDUs that can operate a breaker directly |
| IEC 61850 MMS | TCP | 102 | Client/server reads, reports and control against protection relays and bay controllers | An optional MMS association password exists, most IEDs answer without it | Shares port 102 with S7comm, same port, different tenant |
| IEC 61850 GOOSE | Ethernet L2 multicast | none, Ethertype 0x88B8 | Sub-millisecond trip and status events between protection relays, bypasses IP entirely | None, there is no session to authenticate | A spoofed or replayed frame is not a data problem, a relay can read it as a genuine trip command |
| PROFINET | UDP + raw Ethernet | 34962-34964 | Device discovery (DCP) and real-time context management for drives and distributed I/O | No, DCP answers any station that asks on the segment | The cyclic real-time payload itself rides Ethertype 0x8892, a port scan alone will miss it entirely |
| FINS (Omron) | UDP and TCP | 9600 | Omron PLC read/write, node addressing and remote programming over Ethernet | No | Memory-area write and program-mode change commands need no credential |
| SLMP (Mitsubishi) | TCP and UDP | Set per module in the Ethernet configuration, no protocol-mandated default | Mitsubishi's open MC protocol successor, read/write and remote control on Q/L/iQ-R PLCs | No | Vendor and third-party sources disagree even on the common default, confirm the live port from the module's own configuration or from the exchange itself, never from a table |
| HART-IP | UDP (session), then a server-assigned port | 5094 | Carries classic HART commands to smart transmitters and positioners over Ethernet | No mandatory authentication in the base session | Write commands can shift a transmitter's calibrated range, this is a process-affecting channel |
| KNXnet/IP | UDP | 3671 | Tunnelling and routing for KNX building automation, lighting, HVAC and access control | No on classic KNXnet/IP, KNX Data Secure and IP Secure are opt-in extensions | Unauthenticated group writes can operate physical actuators, including door strikes |
| MQTT | TCP | 1883 / 8883 (TLS) | Publish/subscribe telemetry, increasingly used to bridge OT sensor data toward historians and cloud | Capable of username/password and client certificates, anonymous CONNECT is commonly left open on 1883 | An open broker lets anyone subscribe to every topic and publish to any topic a subscriber trusts |
| CODESYS | TCP | 1217 | IEC 61131-3 runtime and Edge Gateway, licensed into dozens of PLC brands | No by default before V3.5.14 (KLCERT-18-035), an option after, off unless the integrator enables it | An unauthenticated session can stop the controller, pull the application, or download a new one |
| Niagara Fox | TCP | 1911 (fox) / 4911 (foxs, TLS) | Tridium's native protocol between Niagara stations, JACE controllers, Workbench and Supervisor | Station login is required for control, version and identity banners have historically been readable pre-auth | Internet-facing port 1911 drew a dedicated FBI advisory in its own right |
Where these protocols sit on the plant network
Most of this list was never meant to face the internet, and most of it was never meant to face a corporate laptop either. Where a protocol's port sits on the Purdue model says more about what a probe is likely to disturb than the port number alone, and that placement is the axis an engagement gets planned around, see how the Purdue model shapes an OT penetration test for the full picture. The figure below maps this guide's ports onto that ladder.
Two things fall out of that ladder immediately. First, almost nothing at Level 0 carries an IP address, HART-IP is the exception, most field instruments are still 4-20mA loops or fieldbus segments a network scan will never see. Second, protocols that share a level do not share a vocabulary. A Modbus master and an EtherNet/IP scanner on the same Level 1 switch cannot talk to each other without a gateway between them, and neither can identify the other by listening on its own port.
A port tells you where to look, not what is listening
Port 102 is the clearest illustration of the whole point of this page. Both S7comm and IEC 61850 MMS ride on ISO-TSAP over RFC 1006, and both listen on TCP/102 by specification. A scan result of "102 open" is genuinely ambiguous: it could be a Siemens S7-1500 running a bottling line, or a protection IED in a substation bay, where the wrong probe has very different consequences. The only way to tell them apart is to read the first protocol data unit after the COTP connection is established. S7comm frames carry Siemens' own job and acknowledgement structure. MMS frames open with an ISO 9506 Initiate-RequestPDU. Different grammar, same door.
The same discipline applies everywhere in the table above, not just on port 102. A device answering on 502 might be a real PLC, a Modbus/TCP-to-serial gateway relaying a different fieldbus behind it, or a honeypot built to look like one. A device on 44818 might expose a full EtherNet/IP object model, or refuse everything except an identity request. Treat the port as a hypothesis worth testing, never as a conclusion, and log the bytes that came back as your evidence, not the port number you connected to.
Ports that should never be probed
Some of these channels are not just fragile, sending anything to them at all is the wrong call regardless of how carefully it is crafted.
| Channel | Why it is off-limits | What a probe risks |
|---|---|---|
| Safety I/O networks (CIP Safety over EtherNet/IP, UDP 2222) | CIP Safety devices, including GuardLogix-class safety controllers, share the same physical network and the same implicit-messaging port as ordinary I/O, up to SIL 3 | Malformed or unexpected traffic on the same port a safety loop uses is not a data-integrity concern, it is a functional-safety one |
| Redundancy and failover sync links between a primary and standby controller or SCADA/HMI node | These links are vendor-specific, usually undocumented outside the integrator's own manual, and rarely encrypted or rate-limited | Unexpected traffic arriving on a sync channel can be misread as a health check failing, forcing an unplanned failover mid-shift |
| Engineering software licence servers and floating-seat connections | Tools such as PLC programming suites and SCADA configuration clients commonly use floating (concurrent) licensing, a fixed pool of seats shared across the site | A scanner that opens and closes a session repeatedly can hold or exhaust a seat that a shift engineer needs at that exact moment |
None of this is a reason to avoid identifying what is on an OT network. It is a reason to identify it passively first, from a mirrored switch port or a network tap, and to agree the do-not-touch list with the site engineer before a single active packet goes out. A plant engineer will usually know these boundaries by instinct. A security lead running the assessment needs them written down.
What the specifications and registries leave out
A specification defines a default. It does not define what actually ships.
- Vendors remap ports in the field. A site standardising twenty RTUs might move DNP3 off 20000 behind a firewall NAT rule to avoid a conflict, and the specification will not warn you.
- One port, several protocols. Port 102 is the standing example, but any protocol built on a generic transport, ISO-TSAP, plain TCP, plain UDP, can end up shared by more than one vendor's application.
- An open port does not mean the function you need is implemented. A device answering on 502 may support only a handful of Modbus function codes. Reading holding registers does not guarantee the device also accepts a write, and the safety half of that question belongs to the Modbus guide.
- Capable of security is not the same as secured. OPC UA and MQTT can both authenticate and encrypt. Both are routinely deployed without either, because turning security on can break an older client that has no certificate to present.
- Registration is not deployment. An IANA entry tells you what a port is meant for. It says nothing about whether the specific device on the other end of a cable in a specific plant actually honours it.
A short checklist before you scan
- Get the do-not-touch list from the site engineer in writing before anything active happens, safety I/O, failover links and licence servers belong on it by default.
- Start passive. A SPAN or mirror port on an OT switch will identify most of what is on the segment from observed traffic alone, with nothing sent.
- When an active probe is agreed, confirm identity from the protocol exchange, never from the port number, and keep the capture as your evidence. For whether a scan itself is safe to run in the first place, see will a port scan crash a PLC.
- Treat every device that answers as production until told otherwise. A test bench and a live line can share the same subnet and the same port.
- Write down what actually answered, including the protocols that were expected on a port and were not there. A silent 502 is information too.
Nexich runs authorised offensive assessment work inside the perimeter, air-gapped by default. On control networks it stays read-only.
Frequently asked questions
What port does Modbus use?
Modbus TCP listens on port 502, registered with IANA under the service name mbap. The protocol has no authentication field, so anything that can reach port 502 can issue read and write function codes to coils and registers. A secured variant, Modbus/TCP Security, exists on port 802, but it is rarely deployed outside newer integrations.
What port does DNP3 run on?
DNP3 uses TCP and UDP port 20000, the IANA-registered default for utility SCADA polling between a master station and RTUs or IEDs. Secure Authentication (SAv5/v6, based on IEC 62351-5) runs on top of the same port rather than a separate one, and in practice it is rarely turned on across a fleet of outstations.
What port does EtherNet/IP use?
EtherNet/IP splits its traffic in two. TCP port 44818 carries explicit messaging, the request and response traffic used for configuration and one-off reads, while UDP port 2222 carries implicit messaging, the cyclic I/O traffic, which can include CIP Safety data for safety-rated controllers such as GuardLogix.
Is OPC UA secure by default?
OPC UA is capable of certificate-based mutual authentication and encryption on its default port, 4840, or the secure variant on 4843 (registered with IANA as opcua-tls). Capable is not the same as configured: many OPC UA servers ship, or are deployed, with Security Policy set to None, which gives full read and write access to the address space to anyone who can reach the port.
Can you identify an ICS device just from its open port?
No. A port narrows the field of candidate protocols, it does not confirm identity. TCP/102, for example, is shared by Siemens S7comm and IEC 61850 MMS, because both ride on ISO-TSAP over RFC 1006. Reliable identification comes from the protocol exchange itself, the structure of the first PDU returned after the connection handshake.
What OT ports should never be probed?
Three categories deserve a standing exception: safety I/O networks such as CIP Safety traffic on UDP 2222, redundancy and failover synchronisation links between primary and standby controllers, and engineering software licence servers using floating seats. None are helped by an active probe, and each can disrupt production or a safety function if traffic arrives unexpectedly.
- IANA Service Name and Transport Protocol Port Number Registry
- ODVA - CIP Safety over EtherNet/IP
- Wireshark Wiki - S7comm
- Wireshark Wiki - HART-IP
- Wireshark Wiki - OMRON-FINS
- HMS Networks - Which TCP/UDP ports are used by PROFINET
- Tridium - Demystifying Fox connections in Niagara (developer session, 2025)
- CISA ICS Advisory ICSA-13-011-01 - 3S CoDeSys
- Kaspersky ICS CERT KLCERT-18-035 - CODESYS Control V3 access control inactive by default
- DNP3 Secure Authentication v5, formal analysis (Cremers et al.)
- CyberScoop - FBI warns industry on the Fox protocol, port 1911
- Niagara AX Tridium Fox protocol remote information disclosure
- Wikipedia - Floating licensing
- ITI ICS-Security-Tools - protocol port reference (BACnet/IP)
- HackerNoon - Inside IEC 61850: MMS, GOOSE, Sampled Values and security
- CODESYS Group - Establish a Connection to an Instance (gateway default port 1217)
- IANA registration for port 4843 (opcua-tls, OPC UA over TLS/SSL)