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

99 lines
6.9 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
{% 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 %}
## 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 kuyruğu 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 kuyruktan bir mesaj aldığında kadar mesajları saklar. Alıcı uygulama daha sonra mesajı işler.\
Tanım .
**Varsayılan port**: 5672,5671
```
PORT STATE SERVICE VERSION
5672/tcp open amqp RabbitMQ 3.1.5 (0-9)
```
## Enumeration
### Manual
```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-methodologies-and-resources/brute-force.md#amqp-activemq-rabbitmq-qpid-joram-and-solace)
* [**STOMP Protokolü Brute-Force**](../generic-methodologies-and-resources/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`
{% 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 %}