hacktricks/network-services-pentesting/5671-5672-pentesting-amqp.md
Translator workflow 75e8745ba3 Translated to Hindi
2023-11-06 08:38:02 +00:00

17 KiB

☁️ HackTricks क्लाउड ☁️ -🐦 ट्विटर 🐦 - 🎙️ ट्विच 🎙️ - 🎥 यूट्यूब 🎥

मूलभूत जानकारी

RabbitMQ एक मैसेज-कतार सॉफ़्टवेयर है जिसे मैसेज ब्रोकर या कतार प्रबंधक के रूप में भी जाना जाता है। सीधे तरीके से कहें तो यह सॉफ़्टवेयर है जहां कतारें परिभाषित की जाती हैं, जिनमें अनुप्रयोग संपर्क करते हैं ताकि संदेश या संदेशों को स्थानांतरित करने के लिए।
संदेश में किसी भी प्रकार की जानकारी शामिल हो सकती है। यह, उदाहरण के लिए, एक प्रक्रिया या कार्य के बारे में जानकारी हो सकती है जो दूसरे अनुप्रयोग पर शुरू होनी चाहिए (जो कि दूसरे सर्वर पर भी हो सकता है), या यह एक साधारण सा पाठ संदेश हो सकता है। कतार प्रबंधक सॉफ़्टवेयर संदेशों को संदेश कतार से उठाने तक संदेश संग्रहीत करता है। संग्रहीत संदेश को एक प्राप्ति अनुप्रयोग संपर्क करता है और संदेश को कतार से हटा लेता है। फिर प्राप्ति अनुप्रयोग संदेश को प्रसंस्करण करता है।
यहां से परिभाषा।

डिफ़ॉल्ट पोर्ट: 5672,5671

PORT     STATE SERVICE VERSION
5672/tcp open  amqp    RabbitMQ 3.1.5 (0-9)

जांच

मैन्युअल

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)

स्वचालित

AMQP (Advanced Message Queuing Protocol) का उपयोग डेटा को अनुरोधकर्ताओं और सेवा प्रदाताओं के बीच संदेशों को भेजने और प्राप्त करने के लिए किया जाता है। AMQP का उपयोग करके, उपयोगकर्ता डेटा को एक सेवा प्रदाता के पास भेज सकते हैं और सेवा प्रदाता उसे प्राप्त कर सकता है और उसे प्रोसेस कर सकता है।

AMQP का उपयोग करने के लिए, उपयोगकर्ता को एक AMQP क्लाइंट का उपयोग करके संदेश भेजने और प्राप्त करने की अनुमति होती है। AMQP क्लाइंट उपयोगकर्ता को AMQP सर्वर के साथ संदेशों को भेजने और प्राप्त करने के लिए संचार स्थापित करने में मदद करता है।

AMQP का उपयोग करके संदेशों को सुरक्षित रूप से भेजने और प्राप्त करने के लिए, उपयोगकर्ता को AMQP सर्वर के साथ सुरक्षा उपयोगकर्ता नाम और पासवर्ड का उपयोग करके प्रमाणीकरण करना चाहिए। इसके अलावा, AMQP सर्वर को सुरक्षा के लिए अन्य उपाय भी अपनाए जा सकते हैं, जैसे कि SSL/TLS का उपयोग करना।

AMQP का उपयोग करके, उपयोगकर्ता संदेशों को विभिन्न तरीकों से भेज सकते हैं, जैसे कि प्रकाशन/ग्राहक मॉडल और निर्देशिका मॉडल। प्रकाशन/ग्राहक मॉडल में, उपयोगकर्ता एक संदेश को एक या एक से अधिक सदस्यों को भेज सकता है, जबकि निर्देशिका मॉडल में, संदेश एक निर्देशिका में प्रकाशित होता है और सभी सदस्य उसे प्राप्त करते हैं।

AMQP का उपयोग करके, उपयोगकर्ता संदेशों को विभिन्न तरीकों से प्राप्त कर सकते हैं, जैसे कि सदस्यता, अनुदेश, और अनुरोध। सदस्यता में, उपयोगकर्ता एक निर्देशिका के सदस्य बन सकता है और संदेशों को प्राप्त कर सकता है जब वे प्रकाशित होते हैं। अनुदेश में, उपयोगकर्ता एक निर्देशिका के एक सदस्य को निर्देशित कर सकता है और संदेशों को प्राप्त कर सकता है जब वे प्रकाशित होते हैं। अनुरोध में, उपयोगकर्ता एक निर्देशिका के एक सदस्य को एक निर्देशित संदेश के लिए अनुरोध कर सकता है।

AMQP का उपयोग करके, उपयोगकर्ता संदेशों को विभिन्न तरीकों से प्रोसेस कर सकते हैं, जैसे कि संदेशों को रखें, उन्हें विश्लेषण करें, और उन्हें उपयोगकर्ता को भेजें। संदेशों को रखने के लिए, उपयोगकर्ता एक डेटाबेस या एक अन्य संग्रहण स्थान का उपयोग कर सकता है। संदेशों को विश्लेषण करने के लिए, उपयोगकर्ता विभिन्न विश्लेषण उपकरणों का उपयोग कर सकता है। संदेशों को उपयोगकर्ता को भेजने के लिए, उपयोगकर्ता एक अन्य सेवा प्रदाता का उपयोग कर सकता है जो संदेशों को प्राप्त करता है और उन्हें प्रोसेस करता है।

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

अन्य RabbitMQ पोर्ट

https://www.rabbitmq.com/networking.html से आप यह जान सकते हैं कि rabbitmq कई पोर्ट का उपयोग करता है:

  • 1883, 8883: (MQTT clients बिना और TLS के साथ, यदि MQTT plugin सक्षम है। MQTT को कैसे pentest करें इसके बारे में और अधिक जानें.
  • 4369: epmd, RabbitMQ नोड और CLI उपकरणों द्वारा उपयोग की जाने वाली पीयर खोज सेवा। इस सेवा को कैसे pentest करें इसके बारे में और अधिक जानें.
  • 5672, 5671: AMQP 0-9-1 और 1.0 clients द्वारा बिना और TLS के साथ उपयोग किया जाता है
  • 15672: HTTP API clients, management UI और rabbitmqadmin (केवल यदि management plugin सक्षम है)। इस सेवा को कैसे pentest करें इसके बारे में और अधिक जानें.
  • 15674: STOMP-over-WebSockets clients (केवल यदि Web STOMP plugin सक्षम है)
  • 15675: MQTT-over-WebSockets clients (केवल यदि Web MQTT plugin सक्षम है)
  • 15692: Prometheus metrics (केवल यदि Prometheus plugin सक्षम है)
  • 25672: इंटर-नोड और CLI उपकरणों के संचार के लिए उपयोग होता है (Erlang distribution server port) और एक डायनामिक रेंज से आवंटित होता है (डिफ़ॉल्ट में एकल पोर्ट तक सीमित, AMQP पोर्ट + 20000 के रूप में गणना की जाती है)। इन पोर्ट पर बाहरी कनेक्शन वास्तव में आवश्यक नहीं होती हैं (उदाहरण के लिए, क्लस्टर में federation का उपयोग होता है या CLI उपकरण सबनेट के बाहर के मशीनों पर उपयोग होते हैं), इन पोर्ट्स को सार्वजनिक रूप से उजागर नहीं किया जाना चाहिए। विवरण के लिए नेटवर्किंग गाइड देखें। इंटरनेट पर केवल 9 इन पोर्ट्स को खोला गया है
  • 35672-35682: CLI उपकरणों द्वारा उपयोग होता है (Erlang distribution client ports) नोडों के संचार के लिए और एक डायनामिक रेंज से आवंटित होता है (सर्वर वितरण पोर्ट + 10000 से सर्वर वितरण पोर्ट + 10010 के माध्यम से)। विवरण के लिए नेटवर्किंग गाइड देखें।
  • 61613, 61614: STOMP clients बिना और TLS के (केवल यदि STOMP plugin सक्षम है)। इस पोर्ट को खोले गए कम से कम 10 उपकरण हैं और अधिकांश DHT नोडों के लिए UDP है।

Shodan

  • AMQP
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥