hacktricks/network-services-pentesting/pentesting-modbus.md
2023-08-03 19:12:22 +00:00

7.5 KiB
Raw Blame History

☁️ HackTricks云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

基本信息

Modbus协议是由Modicon于1979年开发的一种消息结构。它用于在智能设备之间建立主从/客户端-服务器通信。

**默认端口:**502

PORT    STATE SERVICE
502/tcp open  modbus

枚举

Modbus Enumeration

Modbus 枚举

Modbus is a widely used protocol in industrial control systems (ICS) and is often used to communicate with programmable logic controllers (PLCs). In order to effectively pentest a Modbus network, it is important to first enumerate the devices and services running on the network.

Modbus 是工业控制系统 (ICS) 中广泛使用的协议,通常用于与可编程逻辑控制器 (PLC) 进行通信。为了有效地对 Modbus 网络进行渗透测试,首先需要枚举网络上运行的设备和服务。

Modbus TCP Enumeration

Modbus TCP 枚举

To enumerate Modbus devices over TCP, you can use tools like nmap or modscan. These tools can help you identify the IP addresses and open ports of Modbus devices on the network.

要通过 TCP 枚举 Modbus 设备,可以使用 nmapmodscan 等工具。这些工具可以帮助您识别网络上 Modbus 设备的 IP 地址和开放端口。

Here is an example command to enumerate Modbus devices using nmap:

以下是使用 nmap 枚举 Modbus 设备的示例命令:

nmap -p 502 --script modbus-discover <target>

Replace <target> with the IP address or range of IP addresses you want to scan.

<target> 替换为您要扫描的 IP 地址或 IP 地址范围。

Modbus RTU Enumeration

Modbus RTU 枚举

To enumerate Modbus devices over serial communication (RS-232 or RS-485), you can use tools like modscan or qModMaster. These tools allow you to scan for Modbus devices connected to the serial ports of your machine.

要通过串行通信 (RS-232 或 RS-485) 枚举 Modbus 设备,可以使用 modscanqModMaster 等工具。这些工具允许您扫描连接到计算机串行端口的 Modbus 设备。

Modbus Enumeration Techniques

Modbus 枚举技术

In addition to using specialized tools, there are other techniques you can use to enumerate Modbus devices:

除了使用专门的工具外,还有其他技术可以用来枚举 Modbus 设备:

  • Banner Grabbing: Modbus devices often have specific banners or responses that can be used to identify them. You can use tools like telnet or nc to connect to the Modbus device and capture its banner.

  • 横幅抓取Modbus 设备通常具有特定的横幅或响应,可以用于识别它们。您可以使用 telnetnc 等工具连接到 Modbus 设备并捕获其横幅。

  • Network Scanning: You can use network scanning tools like nmap to scan for Modbus devices on the network. By scanning for open Modbus ports (e.g., port 502 for Modbus TCP), you can identify potential Modbus devices.

  • 网络扫描:您可以使用 nmap 等网络扫描工具来扫描网络上的 Modbus 设备。通过扫描开放的 Modbus 端口 (例如Modbus TCP 的端口 502),可以识别潜在的 Modbus 设备。

  • Protocol Fuzzing: Fuzzing is a technique used to send malformed or unexpected data to a target system in order to trigger unexpected behavior. By fuzzing the Modbus protocol, you may discover vulnerabilities or misconfigurations in Modbus devices.

  • 协议模糊测试:模糊测试是一种技术,用于向目标系统发送格式错误或意外数据,以触发意外行为。通过对 Modbus 协议进行模糊测试,您可能会发现 Modbus 设备中的漏洞或配置错误。

  • Default Credentials: Some Modbus devices may have default credentials that can be used to gain unauthorized access. You can search for default credentials for specific Modbus devices online or use tools like hydra to perform brute-force attacks.

  • 默认凭据:某些 Modbus 设备可能具有默认凭据,可用于获取未经授权的访问权限。您可以在线搜索特定 Modbus 设备的默认凭据,或使用 hydra 等工具进行暴力破解攻击。

By using a combination of these techniques, you can effectively enumerate Modbus devices and services on a network, which is crucial for a successful Modbus pentest.

通过结合使用这些技术,您可以有效地枚举网络上的 Modbus 设备和服务,这对于成功的 Modbus 渗透测试至关重要。

nmap --script modbus-discover -p 502 <IP>
msf> use auxiliary/scanner/scada/modbusdetect
msf> use auxiliary/scanner/scada/modbus_findunitid
☁️ HackTricks 云 ☁️ -🐦 推特 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥