hacktricks/network-services-pentesting/5671-5672-pentesting-amqp.md

99 lines
7.2 KiB
Markdown

# 5671,5672 - Pentesting AMQP
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
## Basic Information
From [cloudamqp](https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html):
> **RabbitMQ**는 _메시지 브로커_ 또는 _큐 관리자_로 알려진 **메시지 큐잉 소프트웨어**입니다. 간단히 말해, 메시지를 전송하기 위해 애플리케이션이 연결되는 큐가 정의된 소프트웨어입니다.\
> **메시지는 어떤 종류의 정보도 포함할 수 있습니다**. 예를 들어, 다른 애플리케이션(다른 서버에 있을 수도 있음)에서 시작해야 하는 프로세스나 작업에 대한 정보가 포함될 수 있으며, 단순한 텍스트 메시지일 수도 있습니다. 큐 관리자 소프트웨어는 수신 애플리케이션이 연결되어 큐에서 메시지를 가져갈 때까지 메시지를 저장합니다. 수신 애플리케이션은 그 후 메시지를 처리합니다.\
Definition from .
**Default port**: 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-methodologies-and-resources/brute-force.md#amqp-activemq-rabbitmq-qpid-joram-and-solace)
* [**STOMP Protocol Brute-Force**](../generic-methodologies-and-resources/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`
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}