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

74 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 5671,5672 - Pentesting AMQP
{{#include ../banners/hacktricks-training.md}}
## Temel Bilgiler
From [cloudamqp](https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html):
> **RabbitMQ**, _mesaj aracısı_ veya _kuyruk yöneticisi_ olarak da bilinen bir **mesaj kuyruklama yazılımıdır.** Kısaca; mesajların iletilmesi için uygulamaların bağlandığı, kuyrukların tanımlandığı bir yazılımdır.\
> Bir **mesaj her türlü bilgiyi içerebilir.** Örneğin, başka bir uygulamada (hatta başka bir sunucuda) başlaması gereken bir işlem veya görev hakkında bilgi içerebilir veya sadece basit bir metin mesajı olabilir. Kuyruk yöneticisi yazılımı, bir alıcı uygulama bağlanıp bir mesajı kuyruktan alana kadar mesajları depolar. Alıcı uygulama daha sonra mesajı işler.\
> Definition from .
**Varsayılan port**: 5672,5671
```
PORT STATE SERVICE VERSION
5672/tcp open amqp RabbitMQ 3.1.5 (0-9)
```
## Sayım
### Manuel
```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)
```
### Otomatik
```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 Protokolü Brute-Force**](../generic-hacking/brute-force.md#amqp-activemq-rabbitmq-qpid-joram-and-solace)
- [**STOMP Protokolü Brute-Force**](../generic-hacking/brute-force.md#stomp-activemq-rabbitmq-hornetq-and-openmq)
## Diğer RabbitMQ portları
[https://www.rabbitmq.com/networking.html](https://www.rabbitmq.com/networking.html) adresinde **rabbitmq'nun birkaç port kullandığını** bulabilirsiniz:
- **1883, 8883**: ([MQTT istemcileri](http://mqtt.org) TLS olmadan ve TLS ile, eğer [MQTT eklentisi](https://www.rabbitmq.com/mqtt.html) etkinse. [**MQTT'yi nasıl pentest edeceğinizi burada öğrenin**](1883-pentesting-mqtt-mosquitto.md).
- **4369: epmd**, RabbitMQ düğümleri ve CLI araçları tarafından kullanılan bir eş keşif hizmeti. [**Bu hizmeti nasıl pentest edeceğinizi burada öğrenin**](4369-pentesting-erlang-port-mapper-daemon-epmd.md).
- **5672, 5671**: TLS olmadan ve TLS ile AMQP 0-9-1 ve 1.0 istemcileri tarafından kullanılır.
- **15672**: [HTTP API](https://www.rabbitmq.com/management.html) istemcileri, [yönetim UI](https://www.rabbitmq.com/management.html) ve [rabbitmqadmin](https://www.rabbitmq.com/management-cli.html) (yalnızca [yönetim eklentisi](https://www.rabbitmq.com/management.html) etkinse). [**Bu hizmeti nasıl pentest edeceğinizi burada öğrenin**](15672-pentesting-rabbitmq-management.md).
- 15674: STOMP-over-WebSockets istemcileri (yalnızca [Web STOMP eklentisi](https://www.rabbitmq.com/web-stomp.html) etkinse).
- 15675: MQTT-over-WebSockets istemcileri (yalnızca [Web MQTT eklentisi](https://www.rabbitmq.com/web-mqtt.html) etkinse).
- 15692: Prometheus metrikleri (yalnızca [Prometheus eklentisi](https://www.rabbitmq.com/prometheus.html) etkinse).
- 25672: düğümler arası ve CLI araçları iletişimi için kullanılır (Erlang dağıtım sunucusu portu) ve dinamik bir aralıktan tahsis edilir (varsayılan olarak tek bir port ile sınırlıdır, AMQP portu + 20000 olarak hesaplanır). Bu portlarda dış bağlantılar gerçekten gerekli değilse (örneğin, küme [federasyon](https://www.rabbitmq.com/federation.html) kullanıyorsa veya CLI araçları alt ağın dışındaki makinelerde kullanılıyorsa), bu portlar kamuya açık olarak açılmamalıdır. Ayrıntılar için [ağ kılavuzuna](https://www.rabbitmq.com/networking.html) bakın. **Bu portlardan yalnızca 9'u internette açıktır**.
- 35672-35682: düğümlerle iletişim için CLI araçları (Erlang dağıtım istemci portları) tarafından kullanılır ve dinamik bir aralıktan tahsis edilir (sunucu dağıtım portu + 10000 ile sunucu dağıtım portu + 10010 arasında hesaplanır). Ayrıntılar için [ağ kılavuzuna](https://www.rabbitmq.com/networking.html) bakın.
- 61613, 61614: [STOMP istemcileri](https://stomp.github.io/stomp-specification-1.2.html) TLS olmadan ve TLS ile (yalnızca [STOMP eklentisi](https://www.rabbitmq.com/stomp.html) etkinse). Bu port açık olan 10'dan az cihaz ve çoğunlukla DHT düğümleri için UDP.
## Shodan
- `AMQP`
{{#include ../banners/hacktricks-training.md}}