hacktricks/network-services-pentesting/47808-udp-bacnet.md
2024-02-11 01:46:25 +00:00

8.5 KiB

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Informacje o protokole

BACnet to protokół komunikacyjny dla sieci Automatyki i Kontroli Budynków (BAC), który wykorzystuje standardowy protokół ASHRAE, ANSI i ISO 16484-5. Umożliwia komunikację między systemami automatyzacji i kontroli budynków, umożliwiając wymianę informacji między systemami kontroli HVAC, oświetlenia, kontroli dostępu i systemami wykrywania pożaru. BACnet zapewnia interoperacyjność i umożliwia komunikację zautomatyzowanych urządzeń do automatyzacji budynków, niezależnie od świadczonych przez nie usług.

Domyślny port: 47808

PORT      STATE SERVICE
47808/udp open  BACNet -- Building Automation and Control NetworksEnumerate

Wyliczanie

Ręczne wyliczanie

Ręczne wyliczanie to proces identyfikowania i zbierania informacji o usługach UDP BACnet. Poniżej przedstawiono kilka metod, które można zastosować podczas ręcznego wyliczania.

Skanowanie portów

Skanowanie portów pozwala na identyfikację otwartych portów UDP BACnet na docelowym systemie. Można to zrobić za pomocą narzędzi takich jak Nmap, które wysyłają zapytania do różnych portów i analizują odpowiedzi.

nmap -sU -p 47808 <adres_IP_docelowego_systemu>

Analiza ruchu sieciowego

Analiza ruchu sieciowego pozwala na identyfikację komunikacji UDP BACnet w sieci. Można to zrobić za pomocą narzędzi takich jak Wireshark, które przechwytują i analizują pakiety sieciowe.

Zapytania BACnet

Wysyłanie zapytań BACnet pozwala na identyfikację urządzeń i usług BACnet w sieci. Można to zrobić za pomocą narzędzi takich jak BACnet Explorer, które pozwalają na wysyłanie zapytań i analizowanie odpowiedzi.

Automatyczne wyliczanie

Automatyczne wyliczanie to proces wykorzystywania narzędzi i skryptów do identyfikacji i zbierania informacji o usługach UDP BACnet. Poniżej przedstawiono kilka narzędzi, które można użyć do automatycznego wyliczania.

BACnet Scanner

BACnet Scanner to narzędzie do skanowania i identyfikacji usług BACnet w sieci. Pozwala na wykrywanie urządzeń BACnet, zbieranie informacji o usługach i analizowanie komunikacji.

bacnetscan <adres_IP_docelowego_systemu>

BACnet Enumeration Tool

BACnet Enumeration Tool to narzędzie do automatycznego wyliczania usług BACnet. Pozwala na identyfikację urządzeń BACnet, zbieranie informacji o usługach i analizowanie komunikacji.

bacenum <adres_IP_docelowego_systemu>

BACnet Discovery Tool

BACnet Discovery Tool to narzędzie do odkrywania usług BACnet w sieci. Pozwala na identyfikację urządzeń BACnet, zbieranie informacji o usługach i analizowanie komunikacji.

bacdiscover <adres_IP_docelowego_systemu>

Automatyzacja wyliczania

Automatyzacja wyliczania to proces wykorzystywania skryptów i narzędzi do automatycznego identyfikowania i zbierania informacji o usługach UDP BACnet. Poniżej przedstawiono kilka skryptów, które można użyć do automatyzacji wyliczania.

BACnet-enum

BACnet-enum to skrypt Pythona do automatycznego wyliczania usług BACnet. Pozwala na identyfikację urządzeń BACnet, zbieranie informacji o usługach i analizowanie komunikacji.

python3 bacnet-enum.py <adres_IP_docelowego_systemu>

BACnet-Scanner

BACnet-Scanner to skrypt Pythona do skanowania i identyfikacji usług BACnet w sieci. Pozwala na wykrywanie urządzeń BACnet, zbieranie informacji o usługach i analizowanie komunikacji.

python3 bacnet-scanner.py <adres_IP_docelowego_systemu>

BACnet-Discovery

BACnet-Discovery to skrypt Pythona do odkrywania usług BACnet w sieci. Pozwala na identyfikację urządzeń BACnet, zbieranie informacji o usługach i analizowanie komunikacji.

python3 bacnet-discovery.py <adres_IP_docelowego_systemu>
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

Automatyczne

Introduction

Wprowadzenie

Automatic enumeration of BACnet devices can be done using the bacnet_enum script from the bacnet-tools package. This script sends a Who-Is request to the broadcast address and listens for responses from BACnet devices on the network.

Automatyczne wyliczanie urządzeń BACnet można wykonać za pomocą skryptu bacnet_enum z pakietu bacnet-tools. Skrypt ten wysyła żądanie Who-Is na adres rozgłoszeniowy i nasłuchuje odpowiedzi od urządzeń BACnet w sieci.

Usage

Użycie

To use the bacnet_enum script, you need to provide the IP address of the target network interface. You can also specify the timeout value for waiting for responses.

Aby użyć skryptu bacnet_enum, musisz podać adres IP interfejsu sieciowego docelowego. Możesz również określić wartość czasu oczekiwania na odpowiedzi.

$ bacnet_enum -i <interface_ip> [-t <timeout>]

Example

Przykład

$ bacnet_enum -i 192.168.1.10 -t 5

This command will send a Who-Is request to the BACnet devices on the network interface with the IP address 192.168.1.10 and wait for responses for a maximum of 5 seconds.

To polecenie wysyła żądanie Who-Is do urządzeń BACnet na interfejsie sieciowym o adresie IP 192.168.1.10 i oczekuje na odpowiedzi przez maksymalnie 5 sekund.

Conclusion

Podsumowanie

Automatically enumerating BACnet devices using the bacnet_enum script can help in identifying and discovering devices on a network. This can be useful for network administrators and security professionals during network assessments and penetration testing.

Automatyczne wyliczanie urządzeń BACnet za pomocą skryptu bacnet_enum może pomóc w identyfikacji i odkrywaniu urządzeń w sieci. Może to być przydatne dla administratorów sieci i specjalistów ds. bezpieczeństwa podczas oceny sieci i testów penetracyjnych.

nmap --script bacnet-info --script-args full=yes -sU -n -sV -p 47808 <IP>

Ten skrypt nie próbuje dołączyć do sieci BACnet jako urządzenie obce, po prostu wysyła bezpośrednio żądania BACnet do urządzenia o adresie IP.

Shodan

  • port:47808 instance
  • "Instance ID" "Vendor Name"
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks: