mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
74 lines
5.1 KiB
Markdown
74 lines
5.1 KiB
Markdown
# 5671,5672 - Pentesting AMQP
|
|
|
|
{{#include ../banners/hacktricks-training.md}}
|
|
|
|
## 기본 정보
|
|
|
|
From [cloudamqp](https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html):
|
|
|
|
> **RabbitMQ**는 _메시지 브로커_ 또는 _큐 관리자_로도 알려진 **메시지 큐 소프트웨어**입니다. 간단히 말하면, 메시지를 전송하기 위해 애플리케이션이 연결되는 큐가 정의된 소프트웨어입니다.\
|
|
> **메시지는 어떤 종류의 정보도 포함할 수 있습니다**. 예를 들어, 다른 애플리케이션(다른 서버에 있을 수도 있음)에서 시작해야 하는 프로세스나 작업에 대한 정보가 포함될 수 있으며, 단순한 텍스트 메시지일 수도 있습니다. 큐 관리자 소프트웨어는 수신 애플리케이션이 연결되어 큐에서 메시지를 가져갈 때까지 메시지를 저장합니다. 수신 애플리케이션은 그 후 메시지를 처리합니다.\
|
|
> Definition from .
|
|
|
|
**기본 포트**: 5672,5671
|
|
```
|
|
PORT STATE SERVICE VERSION
|
|
5672/tcp open amqp RabbitMQ 3.1.5 (0-9)
|
|
```
|
|
## 열거
|
|
|
|
### 수동
|
|
```python
|
|
import amqp
|
|
#By default it uses default credentials "guest":"guest"
|
|
conn = amqp.connection.Connection(host="<IP>", port=5672, virtual_host="/")
|
|
conn.connect()
|
|
for k, v in conn.server_properties.items():
|
|
print(k, v)
|
|
```
|
|
### 자동화
|
|
```bash
|
|
nmap -sV -Pn -n -T4 -p 5672 --script amqp-info <IP>
|
|
|
|
PORT STATE SERVICE VERSION
|
|
5672/tcp open amqp RabbitMQ 3.1.5 (0-9)
|
|
| amqp-info:
|
|
| capabilities:
|
|
| publisher_confirms: YES
|
|
| exchange_exchange_bindings: YES
|
|
| basic.nack: YES
|
|
| consumer_cancel_notify: YES
|
|
| copyright: Copyright (C) 2007-2013 GoPivotal, Inc.
|
|
| information: Licensed under the MPL. See http://www.rabbitmq.com/
|
|
| platform: Erlang/OTP
|
|
| product: RabbitMQ
|
|
| version: 3.1.5
|
|
| mechanisms: PLAIN AMQPLAIN
|
|
|_ locales: en_US
|
|
```
|
|
### Brute Force
|
|
|
|
- [**AMQP Protocol Brute-Force**](../generic-hacking/brute-force.md#amqp-activemq-rabbitmq-qpid-joram-and-solace)
|
|
- [**STOMP Protocol Brute-Force**](../generic-hacking/brute-force.md#stomp-activemq-rabbitmq-hornetq-and-openmq)
|
|
|
|
## Other RabbitMQ ports
|
|
|
|
In [https://www.rabbitmq.com/networking.html](https://www.rabbitmq.com/networking.html) you can find that **rabbitmq는 여러 포트를 사용합니다**:
|
|
|
|
- **1883, 8883**: ([MQTT 클라이언트](http://mqtt.org) TLS 없이 및 TLS와 함께, [**MQTT 플러그인**](https://www.rabbitmq.com/mqtt.html)이 활성화된 경우. [**여기에서 MQTT를 펜테스트하는 방법에 대해 더 알아보세요**](1883-pentesting-mqtt-mosquitto.md).
|
|
- **4369: epmd**, RabbitMQ 노드 및 CLI 도구에서 사용하는 피어 발견 서비스. [**이 서비스를 펜테스트하는 방법에 대해 더 알아보세요**](4369-pentesting-erlang-port-mapper-daemon-epmd.md).
|
|
- **5672, 5671**: TLS 없이 및 TLS와 함께 AMQP 0-9-1 및 1.0 클라이언트에서 사용
|
|
- **15672**: [HTTP API](https://www.rabbitmq.com/management.html) 클라이언트, [관리 UI](https://www.rabbitmq.com/management.html) 및 [rabbitmqadmin](https://www.rabbitmq.com/management-cli.html) (단, [관리 플러그인](https://www.rabbitmq.com/management.html)이 활성화된 경우). [**이 서비스를 펜테스트하는 방법에 대해 더 알아보세요**](15672-pentesting-rabbitmq-management.md).
|
|
- 15674: STOMP-over-WebSockets 클라이언트 (단, [Web STOMP 플러그인](https://www.rabbitmq.com/web-stomp.html)이 활성화된 경우)
|
|
- 15675: MQTT-over-WebSockets 클라이언트 (단, [Web MQTT 플러그인](https://www.rabbitmq.com/web-mqtt.html)이 활성화된 경우)
|
|
- 15692: Prometheus 메트릭 (단, [Prometheus 플러그인](https://www.rabbitmq.com/prometheus.html)이 활성화된 경우)
|
|
- 25672: 노드 간 및 CLI 도구 통신에 사용 (Erlang 배포 서버 포트) 및 동적 범위에서 할당됨 (기본적으로 단일 포트로 제한되며, AMQP 포트 + 20000으로 계산됨). 이러한 포트에서 외부 연결이 정말로 필요하지 않는 한 (예: 클러스터가 [연합](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: [STOMP 클라이언트](https://stomp.github.io/stomp-specification-1.2.html) TLS 없이 및 TLS와 함께 (단, [STOMP 플러그인](https://www.rabbitmq.com/stomp.html)이 활성화된 경우). 이 포트가 열려 있는 장치는 10대 미만이며 대부분 DHT 노드를 위한 UDP입니다.
|
|
|
|
## Shodan
|
|
|
|
- `AMQP`
|
|
|
|
{{#include ../banners/hacktricks-training.md}}
|