mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
48 lines
2.0 KiB
Markdown
48 lines
2.0 KiB
Markdown
{{#include ../banners/hacktricks-training.md}}
|
|
|
|
# Informations sur le protocole
|
|
|
|
**BACnet** est un **protocole de communication** pour les réseaux d'automatisation et de contrôle des bâtiments (BAC) qui s'appuie sur le **protocole standard ASHRAE**, **ANSI** et **ISO 16484-5**. Il facilite la communication entre les systèmes d'automatisation et de contrôle des bâtiments, permettant à des applications telles que le contrôle HVAC, le contrôle de l'éclairage, le contrôle d'accès et les systèmes de détection d'incendie d'échanger des informations. BACnet garantit l'interopérabilité et permet aux dispositifs d'automatisation des bâtiments informatisés de communiquer, quel que soit les services spécifiques qu'ils fournissent.
|
|
|
|
**Port par défaut :** 47808
|
|
```text
|
|
PORT STATE SERVICE
|
|
47808/udp open BACNet -- Building Automation and Control NetworksEnumerate
|
|
```
|
|
# Énumération
|
|
|
|
## Manuel
|
|
```bash
|
|
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
|
|
```
|
|
## Automatique
|
|
```bash
|
|
nmap --script bacnet-info --script-args full=yes -sU -n -sV -p 47808 <IP>
|
|
```
|
|
Ce script n'essaie pas de rejoindre un réseau BACnet en tant qu'appareil étranger, il envoie simplement des requêtes BACnet directement à un appareil accessible par IP.
|
|
|
|
## Shodan
|
|
|
|
- `port:47808 instance`
|
|
- `"Instance ID" "Vendor Name"`
|
|
|
|
{{#include ../banners/hacktricks-training.md}}
|