47808/udp - Pentesting BACNet

Support HackTricks

Πληροφορίες Πρωτοκόλλου

BACnet είναι ένα πρωτόκολλο επικοινωνίας για δίκτυα Αυτοματοποίησης και Ελέγχου Κτιρίων (BAC) που αξιοποιεί το ASHRAE, ANSI και το ISO 16484-5 standard πρωτόκολλο. Διευκολύνει την επικοινωνία μεταξύ συστημάτων αυτοματοποίησης και ελέγχου κτιρίων, επιτρέποντας εφαρμογές όπως ο έλεγχος HVAC, ο έλεγχος φωτισμού, ο έλεγχος πρόσβασης και τα συστήματα ανίχνευσης πυρκαγιάς να ανταλλάσσουν πληροφορίες. Το BACnet εξασφαλίζει τη διαλειτουργικότητα και επιτρέπει στις υπολογιστικές συσκευές αυτοματοποίησης κτιρίων να επικοινωνούν, ανεξαρτήτως των συγκεκριμένων υπηρεσιών που παρέχουν.

Προεπιλεγμένη θύρα: 47808

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

Enumeration

Χειροκίνητα

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

Αυτόματη

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

Αυτό το σενάριο δεν προσπαθεί να συνδεθεί σε ένα δίκτυο BACnet ως ξένη συσκευή, απλά στέλνει αιτήματα BACnet απευθείας σε μια συσκευή με διεύθυνση IP.

Shodan

  • port:47808 instance

  • "Instance ID" "Vendor Name"

Υποστήριξη HackTricks

Last updated