47808/udp - Pentesting BACNet

Support HackTricks

Protokol Bilgisi

BACnet, ASHRAE, ANSI ve ISO 16484-5 standardı protokolünü kullanan bir iletişim protokolü olup, Bina Otomasyonu ve Kontrol (BAC) ağları için tasarlanmıştır. Bina otomasyonu ve kontrol sistemleri arasında iletişimi kolaylaştırarak, HVAC kontrolü, aydınlatma kontrolü, erişim kontrolü ve yangın algılama sistemleri gibi uygulamaların bilgi alışverişi yapmasına olanak tanır. BACnet, birlikte çalışabilirliği sağlar ve bilgisayarlaştırılmış bina otomasyon cihazlarının, sağladıkları belirli hizmetlerden bağımsız olarak iletişim kurmasına olanak tanır.

Varsayılan port: 47808

PORT      STATE SERVICE
47808/udp open  BACNet -- Building Automation and Control NetworksEnumerate

Enumeration

Manuel

pip3 install BAC0
pip3 install netifaces

import BAC0
import time

myIP = '<Your IP>/<MASK>' #You need to be on the same subnet as the bacnet device. Example: '192.168.1.4/24'
bacnet = BAC0.connect(ip=myIP)
bacnet.whois() #Broadcast request of bacnet devices
time.sleep(5)  #Wait for devices to respond
for i, (deviceId, companyId, devIp, numDeviceId) in enumerate(bacnet.devices):
print(f"-------- Device #{numDeviceId} --------")
print(f"Device:     {deviceId}")
print(f"IP:         {devIp}")
print(f"Company:    {companyId}")
readDevice = bacnet.readMultiple(f"{devIp} device {numDeviceId} all")
print(f"Model Name: {readDevice[11]}")
print(f"Version:    {readDevice[2]}")
# print(readDevice) #List all available info about the device

Otomatik

nmap --script bacnet-info --script-args full=yes -sU -n -sV -p 47808 <IP>

Bu script, bir BACnet ağına yabancı bir cihaz olarak katılmayı denemez, sadece BACnet isteklerini doğrudan IP adresi olan bir cihaza gönderir.

Shodan

  • port:47808 instance

  • "Instance ID" "Vendor Name"

HackTricks'i Destekleyin

Last updated