htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!
HackTricks를 지원하는 다른 방법:
* **회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드**하려면 [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)를 확인하세요!
* [**공식 PEASS & HackTricks 스웨그**](https://peass.creator-spring.com)를 얻으세요.
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요. 독점적인 [**NFTs**](https://opensea.io/collection/the-peass-family) 컬렉션입니다.
* 💬 [**Discord 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 **참여**하거나 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)를 **팔로우**하세요.
* **Hacking 트릭을 공유하려면** [**HackTricks**](https://github.com/carlospolop/hacktricks) 및 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 저장소에 PR을 제출하세요.
# 기본 정보
1979년에 **Modbus 프로토콜**은 Modicon에 의해 개발되었으며 메시징 구조로 사용됩니다. 주요 용도는 마스터-슬레이브/클라이언트-서버 모델에서 작동하는 지능형 장치 간 통신을 용이하게 하는 것입니다. 이 프로토콜은 장치 간 데이터 교환을 효율적으로 가능하게 하는 데 중요한 역할을 합니다.
**기본 포트:** 502
```
PORT STATE SERVICE
502/tcp open modbus
```
# 열거
## Modbus Protocol
Modbus는 산업 자동화 시스템에서 사용되는 통신 프로토콜입니다. Modbus는 클라이언트-서버 아키텍처를 기반으로 하며, 주로 제어 장치와 센서 간의 통신에 사용됩니다. Modbus는 주로 TCP/IP 또는 시리얼 통신을 통해 작동하며, 주로 포트 502를 사용합니다.
## Modbus Unit Identifier (UID)
Modbus 통신에서 각 장치는 고유한 Unit Identifier (UID)를 가지고 있습니다. UID는 1에서 247 사이의 값을 가질 수 있으며, 각 장치는 고유한 식별자를 가지고 있어야 합니다.
## Modbus Function Codes
Modbus 프로토콜은 다양한 기능 코드를 제공합니다. 일반적으로 사용되는 기능 코드에는 다음과 같은 것들이 있습니다:
- Read Coils (0x01): 디지털 출력 상태를 읽습니다.
- Read Discrete Inputs (0x02): 디지털 입력 상태를 읽습니다.
- Read Holding Registers (0x03): 레지스터 값을 읽습니다.
- Read Input Registers (0x04): 입력 레지스터 값을 읽습니다.
- Write Single Coil (0x05): 단일 디지털 출력 상태를 설정합니다.
- Write Single Register (0x06): 단일 레지스터 값을 설정합니다.
- Write Multiple Coils (0x0F): 여러 디지털 출력 상태를 설정합니다.
- Write Multiple Registers (0x10): 여러 레지스터 값을 설정합니다.
## Modbus TCP/IP
Modbus TCP/IP는 Modbus 프로토콜을 TCP/IP 네트워크 상에서 사용하는 방식입니다. Modbus TCP/IP는 주로 이더넷 또는 Wi-Fi를 통해 통신하며, 포트 502를 사용합니다.
## Modbus RTU
Modbus RTU는 Modbus 프로토콜을 시리얼 통신 상에서 사용하는 방식입니다. Modbus RTU는 RS-232 또는 RS-485와 같은 시리얼 통신을 통해 작동하며, 데이터를 이진 형식으로 전송합니다.
## Modbus ASCII
Modbus ASCII는 Modbus 프로토콜을 시리얼 통신 상에서 ASCII 문자로 전송하는 방식입니다. Modbus ASCII는 RS-232와 같은 시리얼 통신을 통해 작동하며, 데이터를 ASCII 형식으로 전송합니다.
```bash
nmap --script modbus-discover -p 502
msf> use auxiliary/scanner/scada/modbusdetect
msf> use auxiliary/scanner/scada/modbus_findunitid
```
htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!
HackTricks를 지원하는 다른 방법:
* **회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드**하려면 [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)를 확인하세요!
* [**공식 PEASS & HackTricks 스웨그**](https://peass.creator-spring.com)를 얻으세요.
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요. 독점적인 [**NFTs**](https://opensea.io/collection/the-peass-family) 컬렉션입니다.
* 💬 [**Discord 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 **참여**하거나 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)를 **팔로우**하세요.
* **Hacking 트릭을 공유하려면** [**HackTricks**](https://github.com/carlospolop/hacktricks) 및 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 저장소에 PR을 제출하세요.