8.5 KiB
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLAN SUBSKRYPCJI!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud github repos.
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:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź SUBSCRIPTION PLANS!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud na GitHubie.