> **RabbitMQ**는 _메시지 브로커_ 또는 _큐 매니저_로 알려진 **메시지 큐 소프트웨어**입니다. 간단히 말해서, 응용 프로그램이 메시지를 전송하기 위해 연결하는 대기열이 정의된 소프트웨어입니다.\
> **메시지에는 어떤 종류의 정보든 포함될 수 있습니다**. 예를 들어, 다른 응용 프로그램(또는 다른 서버에 있는 응용 프로그램)에서 시작해야 하는 프로세스나 작업에 대한 정보일 수도 있고, 단순한 텍스트 메시지일 수도 있습니다. 대기열 관리자 소프트웨어는 메시지를 대기열에 저장하고, 수신 응용 프로그램이 연결되어 대기열에서 메시지를 가져갈 때까지 메시지를 보관합니다. 그런 다음 수신 응용 프로그램은 메시지를 처리합니다.\
AMQP (Advanced Message Queuing Protocol)은 메시지 지향 미들웨어 통신을 위한 프로토콜입니다. AMQP는 메시지 브로커와 클라이언트 간의 효율적인 통신을 가능하게 합니다. AMQP는 다양한 기능을 제공하며, 메시지 전송, 큐 관리, 라우팅 등을 지원합니다.
AMQP를 펜테스팅하기 위해 다음과 같은 자동화 도구를 사용할 수 있습니다.
#### 1. RabbitMQ-CLI
RabbitMQ-CLI는 RabbitMQ 서버와 상호 작용하기 위한 명령줄 인터페이스입니다. 이 도구를 사용하면 RabbitMQ 서버에 연결하고, 큐를 생성하고, 메시지를 전송하고, 큐를 삭제하는 등의 작업을 자동화할 수 있습니다.
* **1883, 8883**: ([MQTT clients](http://mqtt.org) (MQTT 플러그인이 활성화되어 있을 경우 TLS 없이 및 TLS와 함께 사용됨). [**MQTT를 pentest하는 방법에 대해 자세히 알아보세요**](1883-pentesting-mqtt-mosquitto.md).
* **4369: epmd**, RabbitMQ 노드 및 CLI 도구에서 사용되는 피어 검색 서비스. [**이 서비스를 pentest하는 방법에 대해 자세히 알아보세요**](4369-pentesting-erlang-port-mapper-daemon-epmd.md).
* **5672, 5671**: AMQP 0-9-1 및 1.0 클라이언트에서 사용되는 포트 (TLS 없이 및 TLS와 함께 사용됨)
* **15672**: [HTTP API](https://www.rabbitmq.com/management.html) 클라이언트, [management UI](https://www.rabbitmq.com/management.html) 및 [rabbitmqadmin](https://www.rabbitmq.com/management-cli.html) (management 플러그인이 활성화되어 있는 경우에만). [**이 서비스를 pentest하는 방법에 대해 자세히 알아보세요**](15672-pentesting-rabbitmq-management.md).
* 15674: STOMP-over-WebSockets 클라이언트 (Web STOMP 플러그인이 활성화되어 있는 경우에만)
* 15675: MQTT-over-WebSockets 클라이언트 (Web MQTT 플러그인이 활성화되어 있는 경우에만)
* 15692: Prometheus 메트릭 (Prometheus 플러그인이 활성화되어 있는 경우에만)
* 25672: 노드 간 및 CLI 도구 통신에 사용되는 포트 (Erlang 분산 서버 포트)로 동적 범위에서 할당됨 (기본적으로 AMQP 포트 + 20000으로 제한됨). 이 포트의 외부 연결이 실제로 필요하지 않은 경우 (예: 클러스터가 [federation](https://www.rabbitmq.com/federation.html)을 사용하거나 서브넷 외부의 기계에서 CLI 도구를 사용하는 경우) 이 포트는 공개적으로 노출되지 않아야 합니다. 자세한 내용은 [네트워킹 가이드](https://www.rabbitmq.com/networking.html)를 참조하세요. **인터넷에서 열린 이 포트는 9개뿐입니다**.
* 35672-35682: CLI 도구에 사용되는 포트 (Erlang 분산 클라이언트 포트)로 동적 범위에서 할당됨 (서버 분산 포트 + 10000부터 서버 분산 포트 + 10010까지). 자세한 내용은 [네트워킹 가이드](https://www.rabbitmq.com/networking.html)를 참조하세요.
* 61613, 61614: TLS 없이 및 TLS와 함께 사용되는 STOMP 클라이언트 (STOMP 플러그인이 활성화되어 있는 경우에만). 이 포트가 열린 장치는 10개 미만이며 대부분 DHT 노드에 대한 UDP입니다.