Service bank
SERVICE 47808/udp

BACnet (Building Automation)

aka bms, ics

Building-automation protocol on 47808/udp — HVAC, lighting, access control. Unauthenticated by design; enumerate devices and their objects, read live values, and (with care) write setpoints that affect physical systems.

Ports

PortProtoNotes
47808udpBACnet/IP

Fingerprint

  • nmap bacnet-info returns device ID, vendor, model, firmware
  • Who-Is broadcast elicits I-Am responses

Exploitation primitives

  • Enumerate devices + object lists (bacnet-info / BACnet-discover-enumerate)
  • Read present-value of sensors/setpoints (temperatures, door states)
  • Write properties to change building behaviour — DANGEROUS, physical impact

Overview

BACnet on 47808/udp runs building systems (HVAC, lighting, access). It has no authentication, so reachable controllers are fully enumerable — and writable.

Enumeration

Device info:

nmap -sU -p47808 --script bacnet-info <TARGET>

Discover + enumerate objects:

python3 BACnet-discover-enumerate.py --target <TARGET>

Read / write (writes only with OT authorisation)

Writing setpoints actuates real building equipment — only in a lab or with explicit OT sign-off.

Hardening

Segment the BMS network, put BACnet behind a firewall/secure gateway, and disable internet exposure.

References