* क्या आप किसी **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS की नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करने की आवश्यकता है? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) की खोज करें, हमारा एकल [**NFT**](https://opensea.io/collection/the-peass-family) संग्रह।
* [**आधिकारिक PEASS और HackTricks swag**](https://peass.creator-spring.com) प्राप्त करें
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में **शामिल हों** या मुझे **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)** का पालन करें**.
* **अपने हैकिंग ट्रिक्स को [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में पीआर जमा करके अपना योगदान दें**.
IBM MQ एक IBM प्रौद्योगिकी है जो संदेश कतारों का प्रबंधन करने के लिए है। अन्य **संदेश ब्रोकर** प्रौद्योगिकियों की तरह, यह उत्पादकों और उपभोक्ताओं के बीच सूचना प्राप्त, संग्रहीत, प्रसंस्कृत और वर्गीकरण करने के लिए समर्पित है।
IBM MQ TCP पोर्ट 1414 का उपयोग संदेश, कतार, चैनल, ... को नियंत्रित करने के लिए ही नहीं किया जा सकता है, बल्कि **इंस्टेंस को नियंत्रित करने के लिए भी** किया जा सकता है।
सुझाए गए उपकरण के लिए आसान शोध के लिए **[punch-q](https://github.com/sensepost/punch-q)** का उपयोग करें, डॉकर का उपयोग करें। यह उपकरण सक्रिय रूप से Python पुस्तकालय `pymqi` का उपयोग करता है।
एक अधिक मैन्युअल दृष्टिकोण के लिए, Python पुस्तकालय **[pymqi](https://github.com/dsuch/pymqi)** का उपयोग करें। [IBM MQ आवश्यकताएं](https://www.ibm.com/support/fixcentral/swg/selectFixes?parent=ibm%7EWebSphere&product=ibm/WebSphere/WebSphere+MQ&release=9.0.0.4&platform=All&function=fixId&fixids=9.0.0.4-IBM-MQC-*,9.0.0.4-IBM-MQ-Install-Java-All,9.0.0.4-IBM-MQ-Java-InstallRA&useReleaseAsTarget=true&includeSupersedes=0&source=fc) की आवश्यकता होती है।
1. [https://login.ibm.com/](https://login.ibm.com/) पर एक खाता (IBMid) बनाएं।
2. [https://www.ibm.com/support/fixcentral/swg/selectFixes?parent=ibm%7EWebSphere&product=ibm/WebSphere/WebSphere+MQ&release=9.0.0.4&platform=All&function=fixId&fixids=9.0.0.4-IBM-MQC-*,9.0.0.4-IBM-MQ-Install-Java-All,9.0.0.4-IBM-MQ-Java-InstallRA&useReleaseAsTarget=true&includeSupersedes=0&source=fc](https://www.ibm.com/support/fixcentral/swg/selectFixes?parent=ibm%7EWebSphere&product=ibm/WebSphere/WebSphere+MQ&release=9.0.0.4&platform=All&function=fixId&fixids=9.0.0.4-IBM-MQC-*,9.0.0.4-IBM-MQ-Install-Java-All,9.0.0.4-IBM-MQ-Java-InstallRA&useReleaseAsTarget=true&includeSupersedes=0&source=fc) से IBM MQ पुस्तकालय डाउनलोड करें। लिनक्स x86_64 के लिए यह **9.0.0.4-IBM-MQC-LinuxX64.tar.gz** है।
6. फिर, LD में `.so` फ़ाइलों को अस्थायी रूप से जोड़ें: `export LD_LIBRARY_PATH=/opt/mqm/lib64`, **पहले** इन आवश्यकताओं का उपयोग करने वाले अन्य उपकरणों को चलाने से पहले।
फिर, आप प्रोजेक्ट [**pymqi**](https://github.com/dsuch/pymqi) क्लोन कर सकते हैं: इसमें दिलचस्प कोड स्निपेट, स्थिरांक, ... होते हैं। या आप सीधे पुस्तकालय को इंस्टॉल कर सकते हैं: `pip install pymqi`.
प्रोजेक्ट [**punch-q**](https://github.com/sensepost/punch-q) क्लोन करें और इंस्टॉलेशन के लिए readme का पालन करें (`pip install -r requirements.txt && python3 setup.py install`).
ऐसा होता है कि कुछ IBM MQ इंस्टेंस अनुपयोगी MQ अनुरोधों को स्वीकार करते हैं, इसलिए `--username / --password` की आवश्यकता नहीं होती है। बेशक, पहुंच अधिकार भी भिन्न हो सकते हैं।
> जारी रखने से पहले कुछ विवरण: IBM MQ को कई तरीकों से नियंत्रित किया जा सकता है: MQSC, PCF, नियंत्रण कमांड। कुछ सामान्य सूचियाँ [IBM MQ दस्तावेज़ीकरण](https://www.ibm.com/docs/en/ibm-mq/9.2?topic=reference-command-sets-comparison) में मिल सकती हैं।
> [**PCF**](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=commands-introduction-mq-programmable-command-formats) (***प्रोग्रामयोग्य कमांड प्रारूप***) उस पर ध्यान केंद्रित है जिसके माध्यम से हम इंस्टेंस के साथ दूरस्थता से इंटरैक्ट करते हैं। **punch-q** और इसके अतिरिक्त **pymqi** PCF इंटरैक्शन पर आधारित हैं।
> एक दिलचस्प कमांड `MQCMD_CREATE_SERVICE` है और इसकी दस्तावेज़ीकरण [यहां](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=formats-change-copy-create-service-multiplatforms) उपलब्ध है। इसे एक `StartCommand` के रूप में एर्ग्यूमेंट लेता है जो इंस्टेंस पर स्थानीय कार्यक्रम की ओर पहुंच करता है (उदाहरण: `/bin/sh`)।
>
> दस्तावेज़ों में इस कमांड की एक चेतावनी भी है: *"ध्यान दें: यह कमांड एक उपयोगकर्ता को mqm अधिकार के साथ एक अनियमित कमांड चलाने की अनुमति देता है। इस कमांड का उपयोग करने के लिए अधिकार प्रदान किए जाने पर, एक दुष्ट या लापरवाह उपयोगकर्ता आपके सिस्टम या डेटा को क्षति पहुंचा सकता है, उदाहरण के लिए, महत्वपूर्ण फ़ाइलें हटा कर।"*
>
> *नोट: हमेशा IBM MQ दस्तावेज़ीकरण (प्रशासन संदर्भ) के अनुसार, सेवा निर्माण (`DEFINE SERVICE`) के लिए समकक्ष MQSC कमांड चलाने के लिए `/admin/action/qmgr/{qmgrName}/mqsc` पर एक HTTP एंडपॉइंट भी है। यह पहले यहां शामिल नहीं है।*
**ध्यान दें कि कार्यक्रम लॉन्च असिंक्रोन होता है। इसलिए आपको एक दूसरे आइटम की आवश्यकता होती है ताकि आप एक्सप्लॉइट का लाभ उठा सकें** ***(रिवर्स शेल के लिए सुनने वाला, विभिन्न सेवा पर फ़ाइल निर्माण, नेटवर्क के माध्यम से डेटा निकालना...)***
आप IBM MQ दस्तावेज़ीकरण में खोज कर सीधे **pymqi** पायथन पुस्तकालय का उपयोग कर सकते हैं विशेष PCF कमांड का परीक्षण करने के लिए जो **punch-q** में अमल में नहीं आया है।
यदि आप स्थिर नामों को नहीं ढूंढ पा रहे हैं, तो आप [IBM MQ दस्तावेज़ीकरण](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=constants-mqca-character-attribute-selectors) का संदर्भ ले सकते हैं।
> *उदाहरण के लिए [`MQCMD_REFRESH_CLUSTER`](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=formats-mqcmd-refresh-cluster-refresh-cluster) (दशमलव = 73)। इसे `MQCA_CLUSTER_NAME` (दशमलव = 2029) पैरामीटर की आवश्यकता होती है जो `*` हो सकता है (दस्तावेज़ीकरण: ):*