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

8.5 KiB

5671,5672 - Pentesting AMQP

Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Informazioni di base

Da cloudamqp:

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

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.

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

Altre porte di RabbitMQ

In https://www.rabbitmq.com/networking.html puoi trovare che RabbitMQ utilizza diverse porte:

  • 1883, 8883: (client MQTT senza e con TLS, se il plugin MQTT è abilitato. Scopri di più su come fare pentesting MQTT qui.
  • 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.
  • 5672, 5671: utilizzate da client AMQP 0-9-1 e 1.0 senza e con TLS
  • 15672: client API HTTP, interfaccia di gestione e rabbitmqadmin (solo se il plugin di gestione è abilitato). Scopri di più su come fare pentesting di questo servizio qui.
  • 15674: client STOMP-over-WebSockets (solo se il plugin Web STOMP è abilitato)
  • 15675: client MQTT-over-WebSockets (solo se il plugin Web MQTT è abilitato)
  • 15692: metriche Prometheus (solo se il plugin Prometheus è 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 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 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 per ulteriori dettagli.
  • 61613, 61614: client STOMP senza e con TLS (solo se il plugin STOMP è abilitato). Meno di 10 dispositivi con questa porta aperta e principalmente UDP per i nodi DHT.

Shodan

  • AMQP
Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks: