{{#include ../banners/hacktricks-training.md}} # प्रोटोकॉल जानकारी **BACnet** एक **संचार प्रोटोकॉल** है जो भवन स्वचालन और नियंत्रण (BAC) नेटवर्क के लिए **ASHRAE**, **ANSI**, और **ISO 16484-5 मानक** प्रोटोकॉल का उपयोग करता है। यह भवन स्वचालन और नियंत्रण प्रणालियों के बीच संचार को सुविधाजनक बनाता है, जिससे HVAC नियंत्रण, प्रकाश नियंत्रण, पहुंच नियंत्रण, और अग्नि पहचान प्रणालियों जैसी अनुप्रयोगों को जानकारी का आदान-प्रदान करने की अनुमति मिलती है। BACnet इंटरऑपरेबिलिटी सुनिश्चित करता है और कंप्यूटरीकृत भवन स्वचालन उपकरणों को संचार करने की अनुमति देता है, चाहे वे विशेष सेवाएँ प्रदान करें या नहीं। **डिफ़ॉल्ट पोर्ट:** 47808 ```text PORT STATE SERVICE 47808/udp open BACNet -- Building Automation and Control NetworksEnumerate ``` # गणना ## मैनुअल ```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 ``` ## स्वचालित ```bash nmap --script bacnet-info --script-args full=yes -sU -n -sV -p 47808 ``` यह स्क्रिप्ट एक विदेशी डिवाइस के रूप में BACnet नेटवर्क से जुड़ने का प्रयास नहीं करती, यह सीधे एक IP पते वाले डिवाइस को BACnet अनुरोध भेजती है। ## Shodan - `port:47808 instance` - `"Instance ID" "Vendor Name"` {{#include ../banners/hacktricks-training.md}}