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!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**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**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da **takip edin**.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/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
```text
PORT STATE SERVICE
47808/udp open BACNet -- Building Automation and Control NetworksEnumerate
```
# Sıralama
## Manuel
```bash
pip3 install BAC0
pip3 install netifaces
import BAC0
import time
myIP = '/' #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
```bash
nmap --script bacnet-info --script-args full=yes -sU -n -sV -p 47808
```
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"`