hacktricks/network-services-pentesting/47808-udp-bacnet.md
2024-02-10 13:11:20 +00:00

121 lines
7.5 KiB
Markdown

<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details>
# Informacije o protokolu
**BACnet** je **komunikacioni protokol** za mreže za automatizaciju i kontrolu zgrada (BAC) koji koristi **ASHRAE**, **ANSI** i **ISO 16484-5 standardni** protokol. Omogućava komunikaciju između sistema za automatizaciju i kontrolu zgrada, omogućavajući aplikacijama kao što su kontrola HVAC sistema, kontrola osvetljenja, kontrola pristupa i sistemi za detekciju požara da razmenjuju informacije. BACnet obezbeđuje interoperabilnost i omogućava komunikaciju računarskih uređaja za automatizaciju zgrada, bez obzira na specifične usluge koje pružaju.
**Podrazumevani port:** 47808
```text
PORT STATE SERVICE
47808/udp open BACNet -- Building Automation and Control NetworksEnumerate
```
# Enumeracija
## Ručna
```bash
pip3 install BAC0
import BAC0
bbmdIP = '<IP>:47808'
bbmdTTL = 900
bacnet = BAC0.connect(bbmdAddress=bbmdIP, bbmdTTL=bbmdTTL) #Connect
bacnet.vendorName.strValue
#I couldn't find how to obtain the same data as nmap with this library or any other
#talk me if you know how please
```
## Automatsko
---
### Introduction
### Uvod
BACnet is a communication protocol widely used in building automation and control systems (BACS). It allows devices such as HVAC systems, lighting controls, and access control systems to communicate with each other over a network. BACnet uses the User Datagram Protocol (UDP) as its transport protocol.
BACnet je komunikacioni protokol široko korišćen u sistemima automatizacije i kontrole zgrada (BACS). Omogućava uređajima kao što su HVAC sistemi, kontrola osvetljenja i sistemi kontrole pristupa da komuniciraju međusobno preko mreže. BACnet koristi User Datagram Protocol (UDP) kao svoj transportni protokol.
### UDP BACnet Discovery
### Otkrivanje UDP BACnet-a
To discover BACnet devices on a network, you can use the `bacnet-discover` tool from the `bacnet-utils` package. This tool sends a BACnet Who-Is request to the broadcast address of the network and listens for responses from BACnet devices.
Da biste otkrili BACnet uređaje na mreži, možete koristiti alat `bacnet-discover` iz paketa `bacnet-utils`. Ovaj alat šalje BACnet Who-Is zahtev na broadcast adresu mreže i osluškuje odgovore od BACnet uređaja.
To use `bacnet-discover`, you need to specify the network interface to use with the `-i` option. For example, to discover BACnet devices on the `eth0` interface, you can run the following command:
Da biste koristili `bacnet-discover`, morate navesti mrežni interfejs koji želite koristiti sa opcijom `-i`. Na primer, da biste otkrili BACnet uređaje na interfejsu `eth0`, možete pokrenuti sledeću komandu:
```plaintext
bacnet-discover -i eth0
```
This will send a BACnet Who-Is request to the broadcast address of the `eth0` interface and display the responses from BACnet devices.
Ovo će poslati BACnet Who-Is zahtev na broadcast adresu interfejsa `eth0` i prikazati odgovore od BACnet uređaja.
### UDP BACnet Enumeration
### Enumeracija UDP BACnet-a
Once you have discovered BACnet devices on a network, you can use the `bacnet-enumerate` tool from the `bacnet-utils` package to enumerate the objects and properties supported by each device. This tool sends BACnet ReadProperty requests to the discovered devices and displays the responses.
Kada otkrijete BACnet uređaje na mreži, možete koristiti alat `bacnet-enumerate` iz paketa `bacnet-utils` da biste nabrojali objekte i svojstva podržana od strane svakog uređaja. Ovaj alat šalje BACnet ReadProperty zahteve otkrivenim uređajima i prikazuje odgovore.
To use `bacnet-enumerate`, you need to specify the network interface to use with the `-i` option, and the device address to enumerate with the `-d` option. For example, to enumerate the objects and properties of a BACnet device with the address `192.168.1.100`, you can run the following command:
Da biste koristili `bacnet-enumerate`, morate navesti mrežni interfejs koji želite koristiti sa opcijom `-i`, i adresu uređaja koju želite nabrojati sa opcijom `-d`. Na primer, da biste nabrojali objekte i svojstva BACnet uređaja sa adresom `192.168.1.100`, možete pokrenuti sledeću komandu:
```plaintext
bacnet-enumerate -i eth0 -d 192.168.1.100
```
This will send BACnet ReadProperty requests to the device at `192.168.1.100` and display the responses.
Ovo će poslati BACnet ReadProperty zahteve uređaju na adresi `192.168.1.100` i prikazati odgovore.
### Conclusion
### Zaključak
UDP BACnet discovery and enumeration can be useful for identifying and understanding BACnet devices on a network. By using the `bacnet-discover` and `bacnet-enumerate` tools, you can gather information about the devices and their supported objects and properties.
Otkrivanje i nabrojavanje UDP BACnet-a može biti korisno za identifikaciju i razumevanje BACnet uređaja na mreži. Koristeći alate `bacnet-discover` i `bacnet-enumerate`, možete prikupiti informacije o uređajima i njihovim podržanim objektima i svojstvima.
```bash
nmap --script bacnet-info --script-args full=yes -sU -n -sV -p 47808 <IP>
```
Ovaj skript ne pokušava da se pridruži BACnet mreži kao strano uređaj, već jednostavno šalje BACnet zahteve direktno na uređaj sa IP adresom.
## Shodan
* `port:47808 instance`
* `"Instance ID" "Vendor Name"`
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju oglašenu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details>