hacktricks/network-services-pentesting/5671-5672-pentesting-amqp.md
2024-02-10 13:11:20 +00:00

139 lines
9.1 KiB
Markdown

# 5671,5672 - Pentesting AMQP
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details>
## Osnovne informacije
Sa [cloudamqp](https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html):
> **RabbitMQ** je **softver za redove poruka** poznat i kao _message broker_ ili _queue manager_. Jednostavno rečeno, to je softver gde se definišu redovi, na koje se aplikacije povezuju kako bi prenele poruku ili poruke.\
> Poruka može sadržati bilo kakvu vrstu informacija. Na primer, može sadržati informacije o procesu ili zadatku koji treba da se pokrene na drugoj aplikaciji (koja može biti čak i na drugom serveru), ili može biti samo jednostavna tekstualna poruka. Softver za upravljanje redovima poruka čuva poruke dok se poveže aplikacija koja prima poruku i preuzme je sa reda. Zatim, aplikacija koja prima poruku obrađuje poruku.\
Definicija sa .
**Podrazumevani port**: 5672,5671
```
PORT STATE SERVICE VERSION
5672/tcp open amqp RabbitMQ 3.1.5 (0-9)
```
## Enumeracija
### Ručna
```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)
```
### Automatsko
Automatsko testiranje je proces u kojem se koriste alati i skripte za automatizaciju testiranja mrežnih servisa. Ovo omogućava brže i efikasnije testiranje, smanjujući potrebu za ručnim intervencijama. Automatsko testiranje može se koristiti za provjeru sigurnosti AMQP (Advanced Message Queuing Protocol) servisa na portovima 5671 i 5672.
#### Alati za automatsko testiranje AMQP servisa
Postoji nekoliko alata koji se mogu koristiti za automatsko testiranje AMQP servisa:
- **RabbitMQ Management Plugin**: Ovaj alat pruža web sučelje za upravljanje RabbitMQ serverom. Može se koristiti za provjeru statusa i konfiguracije AMQP servisa.
- **amqp-tools**: Ovaj alat pruža skup komandi za interakciju s AMQP servisima. Može se koristiti za slanje i primanje poruka, kao i za provjeru statusa i konfiguracije servisa.
- **nmap**: Ovaj alat se može koristiti za skeniranje otvorenih portova na ciljnom sustavu. Može se koristiti za otkrivanje AMQP servisa na portovima 5671 i 5672.
#### Automatsko testiranje AMQP servisa
Automatsko testiranje AMQP servisa može se provesti koristeći alate i skripte za slanje i primanje poruka, provjeru statusa i konfiguracije servisa, kao i za otkrivanje ranjivosti. Ovi alati omogućavaju brzo i efikasno testiranje sigurnosti AMQP servisa na portovima 5671 i 5672.
#### Primjer automatskog testiranja AMQP servisa
Evo primjera kako se može provesti automatsko testiranje AMQP servisa koristeći alat amqp-tools:
1. Instalirajte amqp-tools na svoj sustav.
2. Pokrenite naredbu `amqp-consume` kako biste primili poruke s AMQP servisa.
```
amqp-consume -u amqp://username:password@hostname:5672/queue_name
```
3. Pokrenite naredbu `amqp-publish` kako biste poslali poruku na AMQP servis.
```
amqp-publish -u amqp://username:password@hostname:5672/queue_name -b "Hello, World!"
```
4. Provjerite status i konfiguraciju AMQP servisa koristeći naredbu `amqp-info`.
```
amqp-info -u amqp://username:password@hostname:5672
```
Ovaj primjer pokazuje kako se može koristiti alat amqp-tools za automatizaciju testiranja AMQP servisa. Slično tome, možete koristiti i druge alate i skripte za automatizaciju testiranja AMQP servisa na portovima 5671 i 5672.
```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
* [**Brute-Force AMQP protokola**](../generic-methodologies-and-resources/brute-force.md#amqp-activemq-rabbitmq-qpid-joram-and-solace)
* [**Brute-Force STOMP protokola**](../generic-methodologies-and-resources/brute-force.md#stomp-activemq-rabbitmq-hornetq-and-openmq)
## Ostali RabbitMQ portovi
Na [https://www.rabbitmq.com/networking.html](https://www.rabbitmq.com/networking.html) možete pronaći da **rabbitmq koristi nekoliko portova**:
* **1883, 8883**: ([MQTT klijenti](http://mqtt.org) bez i sa TLS-om, ako je [MQTT plugin](https://www.rabbitmq.com/mqtt.html) omogućen. [**Saznajte više o pentestiranju MQTT-a ovde**](1883-pentesting-mqtt-mosquitto.md).
* **4369: epmd**, servis za otkrivanje čvorova koji se koristi od strane RabbitMQ čvorova i CLI alata. [**Saznajte više o pentestiranju ovog servisa ovde**](4369-pentesting-erlang-port-mapper-daemon-epmd.md).
* **5672, 5671**: koristi se od strane AMQP 0-9-1 i 1.0 klijenata bez i sa TLS-om
* **15672**: klijenti [HTTP API](https://www.rabbitmq.com/management.html), [management UI](https://www.rabbitmq.com/management.html) i [rabbitmqadmin](https://www.rabbitmq.com/management-cli.html) (samo ako je [management plugin](https://www.rabbitmq.com/management.html) omogućen). [**Saznajte više o pentestiranju ovog servisa ovde**](15672-pentesting-rabbitmq-management.md).
* 15674: klijenti STOMP preko WebSockets-a (samo ako je [Web STOMP plugin](https://www.rabbitmq.com/web-stomp.html) omogućen)
* 15675: klijenti MQTT preko WebSockets-a (samo ako je [Web MQTT plugin](https://www.rabbitmq.com/web-mqtt.html) omogućen)
* 15692: Prometheus metrike (samo ako je [Prometheus plugin](https://www.rabbitmq.com/prometheus.html) omogućen)
* 25672: koristi se za komunikaciju između čvorova i CLI alata (Erlang distribucijski server port) i dodeljuje se iz dinamičkog opsega (podrazumevano ograničeno na jedan port, izračunato kao AMQP port + 20000). Ovi portovi ne bi trebali biti javno izloženi osim ako eksterne veze na ovim portovima zaista nisu neophodne (na primer, klaster koristi [federaciju](https://www.rabbitmq.com/federation.html) ili se CLI alati koriste na mašinama van podmreže). Pogledajte [vodič o mrežnom povezivanju](https://www.rabbitmq.com/networking.html) za detalje. **Samo 9 od ovih portova je otvoreno na internetu**.
* 35672-35682: koristi se od strane CLI alata (Erlang distribucijski klijentski portovi) za komunikaciju sa čvorovima i dodeljuje se iz dinamičkog opsega (izračunato kao server distribucijski port + 10000 do server distribucijski port + 10010). Pogledajte [vodič o mrežnom povezivanju](https://www.rabbitmq.com/networking.html) za detalje.
* 61613, 61614: [STOMP klijenti](https://stomp.github.io/stomp-specification-1.2.html) bez i sa TLS-om (samo ako je [STOMP plugin](https://www.rabbitmq.com/stomp.html) omogućen). Manje od 10 uređaja sa ovim otvorenim portom i uglavnom UDP za DHT čvorove.
## Shodan
* `AMQP`
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details>