mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
74 lines
6.5 KiB
Markdown
74 lines
6.5 KiB
Markdown
# 5671,5672 - Pentesting AMQP
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|
||
|
||
## Основна інформація
|
||
|
||
З [cloudamqp](https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html):
|
||
|
||
> **RabbitMQ** - це **програмне забезпечення для черг повідомлень**, також відоме як _посередник повідомлень_ або _менеджер черг._ Простими словами; це програмне забезпечення, в якому визначені черги, до яких підключаються програми для передачі повідомлення або повідомлень.\
|
||
> **Повідомлення може містити будь-яку інформацію**. Наприклад, воно може містити інформацію про процес або завдання, яке повинно початися в іншій програмі (яка може бути навіть на іншому сервері), або це може бути просто просте текстове повідомлення. Програмне забезпечення менеджера черг зберігає повідомлення, поки приймаюча програма не підключиться і не забере повідомлення з черги. Приймаюча програма потім обробляє повідомлення.\
|
||
> Визначення з .
|
||
|
||
**Порт за замовчуванням**: 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)
|
||
|
||
## Інші порти RabbitMQ
|
||
|
||
В [https://www.rabbitmq.com/networking.html](https://www.rabbitmq.com/networking.html) ви можете знайти, що **rabbitmq використовує кілька портів**:
|
||
|
||
- **1883, 8883**: ([MQTT клієнти](http://mqtt.org) без і з TLS, якщо увімкнено [MQTT плагін](https://www.rabbitmq.com/mqtt.html). [**Дізнайтеся більше про те, як провести pentesting MQTT тут**](1883-pentesting-mqtt-mosquitto.md).
|
||
- **4369: epmd**, служба виявлення пір, що використовується вузлами RabbitMQ та інструментами CLI. [**Дізнайтеся більше про те, як провести pentesting цієї служби тут**](4369-pentesting-erlang-port-mapper-daemon-epmd.md).
|
||
- **5672, 5671**: використовуються клієнтами AMQP 0-9-1 та 1.0 без і з TLS
|
||
- **15672**: [HTTP API](https://www.rabbitmq.com/management.html) клієнти, [інтерфейс управління](https://www.rabbitmq.com/management.html) та [rabbitmqadmin](https://www.rabbitmq.com/management-cli.html) (тільки якщо увімкнено [плагін управління](https://www.rabbitmq.com/management.html)). [**Дізнайтеся більше про те, як провести pentesting цієї служби тут**](15672-pentesting-rabbitmq-management.md).
|
||
- 15674: STOMP через WebSockets клієнти (тільки якщо увімкнено [Web STOMP плагін](https://www.rabbitmq.com/web-stomp.html))
|
||
- 15675: MQTT через 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 (тільки якщо увімкнено [STOMP плагін](https://www.rabbitmq.com/stomp.html)). Менше 10 пристроїв з цим портом відкритим і в основному UDP для DHT вузлів.
|
||
|
||
## Shodan
|
||
|
||
- `AMQP`
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|