47808/udp - Pentesting BACNet

Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'ı desteklemenin diğer yolları:

  • Şirketinizi HackTricks'te reklamını görmek istiyorsanız veya HackTricks'i PDF olarak indirmek istiyorsanız [ABONELİK PLANLARI]'na (https://github.com/sponsors/carlospolop) göz atın!

  • [The PEASS Family]'yi (https://opensea.io/collection/the-peass-family) keşfedin, özel [NFT'lerimiz]'i (https://opensea.io/collection/the-peass-family) içeren koleksiyonumuzu

  • 💬 Discord grubuna veya telegram grubuna katılın veya bizi Twitter 🐦 @carlospolopm'da takip edin.

  • Hacking püf noktalarınızı paylaşarak PR'lar göndererek HackTricks ve HackTricks Cloud github depolarına katkıda bulunun.

Protokol Bilgisi

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

Varsayılan port: 47808

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

Sıralama

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 betik, yalnızca bir IP adreslenebilir cihaza doğrudan BACnet istekleri gönderir, BACnet ağına yabancı bir cihaz olarak katılmaya çalışmaz.

Shodan

  • port:47808 instance

  • "Instance ID" "Vendor Name"

Last updated