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

105 lines
8.5 KiB
Markdown

# 5671,5672 - Pentesting AMQP
<details>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Altri modi per supportare HackTricks:
* Se vuoi vedere la tua **azienda pubblicizzata in HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
## Informazioni di base
Da [cloudamqp](https://www.cloudamqp.com/blog/2015-05-18-part1-rabbitmq-for-beginners-what-is-rabbitmq.html):
> **RabbitMQ** è un **software di messaggistica** noto anche come _message broker_ o _queue manager_. In poche parole, è un software in cui vengono definite code, a cui le applicazioni si connettono per trasferire un messaggio o messaggi.\
> Un **messaggio può includere qualsiasi tipo di informazione**. Potrebbe, ad esempio, contenere informazioni su un processo o un compito che dovrebbe avviarsi su un'altra applicazione (che potrebbe anche essere su un altro server), oppure potrebbe essere solo un semplice messaggio di testo. Il software del gestore di code memorizza i messaggi fino a quando un'applicazione ricevente si connette e preleva un messaggio dalla coda. L'applicazione ricevente elabora quindi il messaggio.\
Definizione da .
**Porta predefinita**: 5672,5671
```
PORT STATE SERVICE VERSION
5672/tcp open amqp RabbitMQ 3.1.5 (0-9)
```
## Enumerazione
### Manuale
```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)
```
### Automatico
L'attacco automatico è un metodo di attacco che coinvolge l'uso di strumenti e script automatizzati per eseguire una serie di azioni senza l'intervento diretto dell'attaccante. Questo tipo di attacco è ampiamente utilizzato nel pentesting per testare la sicurezza di un sistema o di una rete.
L'attacco automatico può essere utilizzato per eseguire una varietà di azioni, come la scansione di porte, la ricerca di vulnerabilità, l'esecuzione di exploit e l'ottenimento di accesso non autorizzato a un sistema o a una rete. Gli strumenti di attacco automatico sono progettati per automatizzare queste azioni, consentendo all'attaccante di eseguire rapidamente e in modo efficiente una serie di attacchi.
L'attacco automatico può essere eseguito sia in modo passivo che in modo attivo. Nel caso di un attacco passivo, l'attaccante monitora e raccoglie informazioni sul sistema o sulla rete senza interagire direttamente con essi. Nel caso di un attacco attivo, l'attaccante interagisce direttamente con il sistema o la rete per eseguire azioni dannose.
L'attacco automatico può essere molto efficace per identificare e sfruttare vulnerabilità in un sistema o in una rete. Tuttavia, è importante notare che l'uso di strumenti di attacco automatico può essere illegale senza il consenso del proprietario del sistema o della rete. Pertanto, è fondamentale ottenere l'autorizzazione appropriata prima di eseguire un attacco automatico.
```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 del Protocollo AMQP**](../generic-methodologies-and-resources/brute-force.md#amqp-activemq-rabbitmq-qpid-joram-and-solace)
* [**Brute-Force del Protocollo STOMP**](../generic-methodologies-and-resources/brute-force.md#stomp-activemq-rabbitmq-hornetq-and-openmq)
## Altre porte di RabbitMQ
In [https://www.rabbitmq.com/networking.html](https://www.rabbitmq.com/networking.html) puoi trovare che **RabbitMQ utilizza diverse porte**:
* **1883, 8883**: ([client MQTT](http://mqtt.org) senza e con TLS, se il [plugin MQTT](https://www.rabbitmq.com/mqtt.html) è abilitato. [**Scopri di più su come fare pentesting MQTT qui**](1883-pentesting-mqtt-mosquitto.md).
* **4369: epmd**, un servizio di scoperta peer utilizzato da nodi RabbitMQ e strumenti CLI. [**Scopri di più su come fare pentesting di questo servizio qui**](4369-pentesting-erlang-port-mapper-daemon-epmd.md).
* **5672, 5671**: utilizzate da client AMQP 0-9-1 e 1.0 senza e con TLS
* **15672**: client [API HTTP](https://www.rabbitmq.com/management.html), [interfaccia di gestione](https://www.rabbitmq.com/management.html) e [rabbitmqadmin](https://www.rabbitmq.com/management-cli.html) (solo se il [plugin di gestione](https://www.rabbitmq.com/management.html) è abilitato). [**Scopri di più su come fare pentesting di questo servizio qui**](15672-pentesting-rabbitmq-management.md).
* 15674: client STOMP-over-WebSockets (solo se il [plugin Web STOMP](https://www.rabbitmq.com/web-stomp.html) è abilitato)
* 15675: client MQTT-over-WebSockets (solo se il [plugin Web MQTT](https://www.rabbitmq.com/web-mqtt.html) è abilitato)
* 15692: metriche Prometheus (solo se il [plugin Prometheus](https://www.rabbitmq.com/prometheus.html) è abilitato)
* 25672: utilizzata per la comunicazione tra nodi e strumenti CLI (porta del server di distribuzione Erlang) e viene allocata da un intervallo dinamico (limitato a una singola porta per impostazione predefinita, calcolata come porta AMQP + 20000). A meno che le connessioni esterne su queste porte non siano realmente necessarie (ad esempio, il cluster utilizza [federazione](https://www.rabbitmq.com/federation.html) o gli strumenti CLI vengono utilizzati su macchine al di fuori del subnet), queste porte non dovrebbero essere esposte pubblicamente. Consulta la [guida alla rete](https://www.rabbitmq.com/networking.html) per ulteriori dettagli. **Solo 9 di queste porte aperte su Internet**.
* 35672-35682: utilizzate dagli strumenti CLI (porte client di distribuzione Erlang) per la comunicazione con i nodi e vengono allocate da un intervallo dinamico (calcolato come porta di distribuzione del server + 10000 attraverso la porta di distribuzione del server + 10010). Consulta la [guida alla rete](https://www.rabbitmq.com/networking.html) per ulteriori dettagli.
* 61613, 61614: [client STOMP](https://stomp.github.io/stomp-specification-1.2.html) senza e con TLS (solo se il [plugin STOMP](https://www.rabbitmq.com/stomp.html) è abilitato). Meno di 10 dispositivi con questa porta aperta e principalmente UDP per i nodi DHT.
## Shodan
* `AMQP`
<details>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Altri modi per supportare HackTricks:
* Se vuoi vedere la tua **azienda pubblicizzata in HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>