hacktricks/network-services-pentesting/47808-udp-bacnet.md

5.3 KiB

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЬрд╛рдирдХрд╛рд░реА

BACnet рдПрдХ рд╕рдВрдЪрд╛рд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣реИ рдЬреЛ рднрд╡рди рд╕реНрд╡рдЪрд╛рд▓рди рдФрд░ рдирд┐рдпрдВрддреНрд░рдг (BAC) рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рд╣реИ, рдЬреЛ ASHRAE, ANSI, рдФрд░ ISO 16484-5 рдорд╛рдирдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рднрд╡рди рд╕реНрд╡рдЪрд╛рд▓рди рдФрд░ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░ рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ HVAC рдирд┐рдпрдВрддреНрд░рдг, рдкреНрд░рдХрд╛рд╢ рдирд┐рдпрдВрддреНрд░рдг, рдкрд╣реБрдВрдЪ рдирд┐рдпрдВрддреНрд░рдг, рдФрд░ рдЕрдЧреНрдирд┐ рдкрд╣рдЪрд╛рди рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдЬреИрд╕реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИред BACnet рдЗрдВрдЯрд░рдСрдкрд░реЗрдмрд┐рд▓рд┐рдЯреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХрдВрдкреНрдпреВрдЯрд░реАрдХреГрдд рднрд╡рди рд╕реНрд╡рдЪрд╛рд▓рди рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рд╕рдВрдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЪрд╛рд╣реЗ рд╡реЗ рд╡рд┐рд╢реЗрд╖ рд╕реЗрд╡рд╛рдПрдВ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ рдпрд╛ рдирд╣реАрдВред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреЛрд░реНрдЯ: 47808

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

Enumeration

Manual

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

рд╕реНрд╡рдЪрд╛рд▓рд┐рдд

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

рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рд╡рд┐рджреЗрд╢реА рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ BACnet рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рдпрд╣ рд╕реАрдзреЗ рдПрдХ IP рдкрддреЗ рд╡рд╛рд▓реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ BACnet рдЕрдиреБрд░реЛрдз рднреЗрдЬрддреА рд╣реИред

Shodan

  • port:47808 instance
  • "Instance ID" "Vendor Name"

{% hint style="success" %} AWS рд╣реИрдХрд┐рдВрдЧ рд╕реАрдЦреЗрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ:HackTricks Training AWS Red Team Expert (ARTE)
GCP рд╣реИрдХрд┐рдВрдЧ рд╕реАрдЦреЗрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ
{% endhint %}