Protocols

What ports do industrial control protocols use?

The ports guide's CODESYS, SLMP and OPC UA-secure entries are corrected against verified sources: CODESYS defaults to port 1217 (2455 could not be confirmed as a CODESYS default and was dropped), SLMP has no protocol-mandated default port and now says so instead of citing an unconfirmed 5007, and OPC UA's secure port 4843 is now cited to its actual IANA registration rather than an unrelated PubSub spec section.

Verified · 9 min read

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.

ProtocolTransportPort(s)What it is forAuthenticates by defaultSafety note
Modbus TCPTCP502Master/slave polling of coils, registers and discrete I/O against PLCs, RTUs and drivesNo, the protocol has no authentication field at allWrite function codes (5, 6, 15, 16) can move an actuator on the next scan cycle
DNP3TCP and UDP20000Utility SCADA polling and unsolicited event reporting between a master station and RTUs or IEDsNo by default. Secure Authentication v5/v6 (IEC 62351-5) exists and is rarely turned onUnsolicited response and direct-operate function codes can issue a control command without a prior poll
EtherNet/IP (CIP)TCP + UDP44818 (explicit) / 2222 (implicit)Configuration and one-off reads over 44818, cyclic I/O and CIP Safety traffic over 2222No by default, CIP's optional security extensions are rarely enabled on the plant floor2222 can carry CIP Safety I/O for GuardLogix-class controllers, not just ordinary data
S7commTCP102Siemens S7-300/400/1200/1500 programming, diagnostics and read/write accessS7-300/400 none, S7-1200/1500 optional password-based access levelsShares port 102 with IEC 61850 MMS, confirm by the PDU, never by the port
OPC UATCP4840 / 4843 (secure)Vendor-neutral read, write and subscribe access to a server's information modelCapable of certificate-based mutual authentication, but Security Policy None ships and stays on in the fieldA None-security endpoint gives full browse and write access to anyone who can reach the port
BACnet/IPUDP47808Building automation and access control discovery and read/write, via Who-Is/I-Am broadcastsNo, 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-104TCP2404Control-centre to substation telecontrol, the IEC equivalent of DNP3No at the application layer, IEC 62351-3 TLS is a bolt-on with inconsistent vendor supportCarries single/double command APDUs that can operate a breaker directly
IEC 61850 MMSTCP102Client/server reads, reports and control against protection relays and bay controllersAn optional MMS association password exists, most IEDs answer without itShares port 102 with S7comm, same port, different tenant
IEC 61850 GOOSEEthernet L2 multicastnone, Ethertype 0x88B8Sub-millisecond trip and status events between protection relays, bypasses IP entirelyNone, there is no session to authenticateA spoofed or replayed frame is not a data problem, a relay can read it as a genuine trip command
PROFINETUDP + raw Ethernet34962-34964Device discovery (DCP) and real-time context management for drives and distributed I/ONo, DCP answers any station that asks on the segmentThe cyclic real-time payload itself rides Ethertype 0x8892, a port scan alone will miss it entirely
FINS (Omron)UDP and TCP9600Omron PLC read/write, node addressing and remote programming over EthernetNoMemory-area write and program-mode change commands need no credential
SLMP (Mitsubishi)TCP and UDPSet per module in the Ethernet configuration, no protocol-mandated defaultMitsubishi's open MC protocol successor, read/write and remote control on Q/L/iQ-R PLCsNoVendor 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-IPUDP (session), then a server-assigned port5094Carries classic HART commands to smart transmitters and positioners over EthernetNo mandatory authentication in the base sessionWrite commands can shift a transmitter's calibrated range, this is a process-affecting channel
KNXnet/IPUDP3671Tunnelling and routing for KNX building automation, lighting, HVAC and access controlNo on classic KNXnet/IP, KNX Data Secure and IP Secure are opt-in extensionsUnauthenticated group writes can operate physical actuators, including door strikes
MQTTTCP1883 / 8883 (TLS)Publish/subscribe telemetry, increasingly used to bridge OT sensor data toward historians and cloudCapable of username/password and client certificates, anonymous CONNECT is commonly left open on 1883An open broker lets anyone subscribe to every topic and publish to any topic a subscriber trusts
CODESYSTCP1217IEC 61131-3 runtime and Edge Gateway, licensed into dozens of PLC brandsNo by default before V3.5.14 (KLCERT-18-035), an option after, off unless the integrator enables itAn unauthenticated session can stop the controller, pull the application, or download a new one
Niagara FoxTCP1911 (fox) / 4911 (foxs, TLS)Tridium's native protocol between Niagara stations, JACE controllers, Workbench and SupervisorStation login is required for control, version and identity banners have historically been readable pre-authInternet-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.

Where common ICS and OT protocols typically sit on the Purdue model, from field-level HART-IP up to a site MQTT broker 3.5 DMZ No ICS protocol crosses here directly: historian replica, patch relay, jump host Level 3 Operations MQTT 1883 (TCP) / 8883 (TLS): telemetry bridged toward historians and cloud Level 2 Supervisory OPC UA 4840/4843 · IEC 61850 MMS 102 · BACnet/IP 47808 Niagara Fox 1911/4911 · KNXnet/IP 3671 Level 1 Control PLC / RTU / IED Modbus TCP 502 · DNP3 20000 · EtherNet/IP 44818 / 2222 S7comm 102 · IEC 60870-5-104 2404 · PROFINET 34962-34964 FINS 9600 · SLMP (module-set) · CODESYS 1217 IEC 61850 GOOSE: Ethernet Layer 2 multicast, Ethertype 0x88B8, no port at all Same level, different vendors, none of them speak to each other unassisted Level 0 Process HART-IP 5094: one of the few field-level protocols that carries an IP address at all Typical vendor placement. A specific integration can and does move a protocol up or down a level.
Typical placement of the protocols in this guide on the Purdue model. Vendors and integrators move things, this is the default, not a guarantee.

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.

Deciding what is actually listening on a shared port: S7comm and IEC 61850 MMS both answer on TCP 102 TCP/102 answers a connection Port 102 is shared. Candidates: S7comm (Siemens) or IEC 61850 MMS (substation IED) Read the first PDU after the COTP handshake S7 header: job request or ack-data function codes Confirmed: S7comm Siemens S7 PLC family ISO 9506 Initiate-RequestPDU the MMS opening handshake Confirmed: IEC 61850 MMS Substation IED A port list says where to knock. The PDU inside says who answered.
Same port, two different tenants. Only the protocol data unit after the handshake tells you which one you reached.

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.

ChannelWhy it is off-limitsWhat 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 3Malformed 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 nodeThese links are vendor-specific, usually undocumented outside the integrator's own manual, and rarely encrypted or rate-limitedUnexpected 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 connectionsTools such as PLC programming suites and SCADA configuration clients commonly use floating (concurrent) licensing, a fixed pool of seats shared across the siteA 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.

Sources
  1. IANA Service Name and Transport Protocol Port Number Registry
  2. ODVA - CIP Safety over EtherNet/IP
  3. Wireshark Wiki - S7comm
  4. Wireshark Wiki - HART-IP
  5. Wireshark Wiki - OMRON-FINS
  6. HMS Networks - Which TCP/UDP ports are used by PROFINET
  7. Tridium - Demystifying Fox connections in Niagara (developer session, 2025)
  8. CISA ICS Advisory ICSA-13-011-01 - 3S CoDeSys
  9. Kaspersky ICS CERT KLCERT-18-035 - CODESYS Control V3 access control inactive by default
  10. DNP3 Secure Authentication v5, formal analysis (Cremers et al.)
  11. CyberScoop - FBI warns industry on the Fox protocol, port 1911
  12. Niagara AX Tridium Fox protocol remote information disclosure
  13. Wikipedia - Floating licensing
  14. ITI ICS-Security-Tools - protocol port reference (BACnet/IP)
  15. HackerNoon - Inside IEC 61850: MMS, GOOSE, Sampled Values and security
  16. CODESYS Group - Establish a Connection to an Instance (gateway default port 1217)
  17. IANA registration for port 4843 (opcua-tls, OPC UA over TLS/SSL)
Keep reading

All posts →

Access

Bring the red team onto the plant floor.

Self-hosted · On-prem · Air-gapped · Read-only on the plant floor