mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 22:52:06 +00:00
139 lines
9.1 KiB
Markdown
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>
|