{% hint style="success" %}
Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
# 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
```text
PORT STATE SERVICE
47808/udp open BACNet -- Building Automation and Control NetworksEnumerate
```
# Enumeration
## 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 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"`
{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
HackTricks'i Destekleyin
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** bizi **takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
{% endhint %}