# 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="", 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 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}}