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

74 lines
6.7 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}}
## Basic Information
From [cloudamqp](https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html):
> **RabbitMQ** είναι ένα **λογισμικό διαχείρισης μηνυμάτων** που είναι επίσης γνωστό ως _μεσίτης μηνυμάτων_ ή _διαχειριστής ουρών._ Απλά, είναι λογισμικό όπου ορίζονται οι ουρές, στις οποίες συνδέονται οι εφαρμογές για να μεταφέρουν ένα μήνυμα ή μηνύματα.\
> Ένα **μήνυμα μπορεί να περιλαμβάνει οποιοδήποτε είδος πληροφορίας**. Μπορεί, για παράδειγμα, να έχει πληροφορίες σχετικά με μια διαδικασία ή εργασία που θα πρέπει να ξεκινήσει σε μια άλλη εφαρμογή (η οποία μπορεί να είναι ακόμη και σε άλλο διακομιστή), ή μπορεί να είναι απλώς ένα απλό κείμενο. Το λογισμικό διαχείρισης ουρών αποθηκεύει τα μηνύματα μέχρι να συνδεθεί μια εφαρμογή παραλήπτης και να πάρει ένα μήνυμα από την ουρά. Η εφαρμογή παραλήπτης επεξεργάζεται στη συνέχεια το μήνυμα.\
> Ορισμός από .
**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-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 clients](http://mqtt.org) χωρίς και με TLS, αν το [MQTT plugin](https://www.rabbitmq.com/mqtt.html) είναι ενεργοποιημένο. [**Μάθετε περισσότερα για το πώς να κάνετε pentest στο MQTT εδώ**](1883-pentesting-mqtt-mosquitto.md).
- **4369: epmd**, μια υπηρεσία ανακάλυψης peer που χρησιμοποιείται από τους κόμβους RabbitMQ και τα εργαλεία CLI. [**Μάθετε περισσότερα για το πώς να κάνετε pentest σε αυτή την υπηρεσία εδώ**](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) πελάτες, [διαχείριση UI](https://www.rabbitmq.com/management.html) και [rabbitmqadmin](https://www.rabbitmq.com/management-cli.html) (μόνο αν το [management plugin](https://www.rabbitmq.com/management.html) είναι ενεργοποιημένο). [**Μάθετε περισσότερα για το πώς να κάνετε pentest σε αυτή την υπηρεσία εδώ**](15672-pentesting-rabbitmq-management.md).
- 15674: STOMP-over-WebSockets πελάτες (μόνο αν το [Web STOMP plugin](https://www.rabbitmq.com/web-stomp.html) είναι ενεργοποιημένο)
- 15675: MQTT-over-WebSockets πελάτες (μόνο αν το [Web MQTT plugin](https://www.rabbitmq.com/web-mqtt.html) είναι ενεργοποιημένο)
- 15692: Μετρήσεις Prometheus (μόνο αν το [Prometheus plugin](https://www.rabbitmq.com/prometheus.html) είναι ενεργοποιημένο)
- 25672: χρησιμοποιείται για επικοινωνία μεταξύ κόμβων και εργαλείων CLI (θύρα διανομής Erlang) και κατανέμεται από μια δυναμική περιοχή (περιορισμένη σε μία μόνο θύρα από προεπιλογή, υπολογισμένη ως θύρα AMQP + 20000). Εκτός αν οι εξωτερικές συνδέσεις σε αυτές τις θύρες είναι πραγματικά απαραίτητες (π.χ. ο συμπλέκτης χρησιμοποιεί [federation](https://www.rabbitmq.com/federation.html) ή τα εργαλεία CLI χρησιμοποιούνται σε μηχανές εκτός του υποδικτύου), αυτές οι θύρες δεν θα πρέπει να είναι δημόσια εκτεθειμένες. Δείτε τον [οδηγό δικτύωσης](https://www.rabbitmq.com/networking.html) για λεπτομέρειες. **Μόνο 9 από αυτές τις θύρες είναι ανοιχτές στο διαδίκτυο**.
- 35672-35682: χρησιμοποιούνται από εργαλεία CLI (θύρες πελάτη διανομής Erlang) για επικοινωνία με κόμβους και κατανέμονται από μια δυναμική περιοχή (υπολογισμένη ως θύρα διανομής server + 10000 έως θύρα διανομής server + 10010). Δείτε τον [οδηγό δικτύωσης](https://www.rabbitmq.com/networking.html) για λεπτομέρειες.
- 61613, 61614: [STOMP clients](https://stomp.github.io/stomp-specification-1.2.html) χωρίς και με TLS (μόνο αν το [STOMP plugin](https://www.rabbitmq.com/stomp.html) είναι ενεργοποιημένο). Λιγότερες από 10 συσκευές με αυτή τη θύρα ανοιχτή και κυρίως UDP για κόμβους DHT.
## Shodan
- `AMQP`
{{#include ../banners/hacktricks-training.md}}