<summary><strong>Leer AWS-hacking van nul tot held met</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Werk jy in 'n **cybersecurity-maatskappy**? Wil jy jou **maatskappy adverteer in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of laai HackTricks in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die [hacktricks repo](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
IBM MQ is 'n IBM-tegnologie om boodskaprye te bestuur. Soos ander **boodskapmakelaar**-tegnologieë, is dit toegewy aan die ontvang, stoor, verwerk en klassifiseer van inligting tussen produsente en verbruikers.
'n Voorgestelde gereedskap vir maklike uitbuiting is **[punch-q](https://github.com/sensepost/punch-q)**, met Docker-gebruik. Die gereedskap maak aktief gebruik van die Python-biblioteek `pymqi`.
Vir 'n meer handmatige benadering, gebruik die Python-biblioteek **[pymqi](https://github.com/dsuch/pymqi)**. [IBM MQ-afhanklikhede](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) is nodig.
1. Skep 'n rekening (IBMid) op [https://login.ibm.com/](https://login.ibm.com/).
2. Laai IBM MQ-biblioteke af vanaf [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). Vir Linux x86_64 is dit **9.0.0.4-IBM-MQC-LinuxX64.tar.gz**.
6. Voeg dan tijdelik die `.so` lêers by LD: `export LD_LIBRARY_PATH=/opt/mqm/lib64`, **voordat** jy ander gereedskap gebruik wat van hierdie afhanklikhede gebruik maak.
Dan kan jy die projek [**pymqi**](https://github.com/dsuch/pymqi) kloon: dit bevat interessante kodefragmente, konstantes, ... Of jy kan die biblioteek direk installeer met: `pip install pymqi`.
Kloon die projek [**punch-q**](https://github.com/sensepost/punch-q) en volg dan die leesmy vir installasie (`pip install -r requirements.txt && python3 setup.py install`).
Dit gebeur dat sommige IBM MQ-instanties **ongeagte** MQ-versoeke aanvaar, so `--username / --password` is nie nodig nie. Natuurlik kan toegangsregte ook verskil.
> 'n Paar besonderhede voordat ons voortgaan: IBM MQ kan op verskeie maniere beheer word: MQSC, PCF, Beheeropdrag. 'n Paar algemene lysies kan gevind word in die [IBM MQ-dokumentasie](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) (***Programmable Command Formats***) is waarop ons fokus om op afstand met die instansie te kommunikeer. **punch-q** en verder **pymqi** is gebaseer op PCF-interaksies.
> Een interessante opdrag is `MQCMD_CREATE_SERVICE` en die dokumentasie is beskikbaar [hier](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=formats-change-copy-create-service-multiplatforms). Dit neem 'n `StartCommand` as argument wat verwys na 'n plaaslike program op die instansie (voorbeeld: `/bin/sh`).
>
> Daar is ook 'n waarskuwing oor die opdrag in die dokumentasie: *"Aandag: Hierdie opdrag stel 'n gebruiker in staat om 'n willekeurige opdrag met mqm-bevoegdheid uit te voer. As regte verleen word om hierdie opdrag te gebruik, kan 'n kwaadwillige of sorgelose gebruiker 'n diens definieer wat jou stelsels of data beskadig, byvoorbeeld deur noodsaaklike lêers te verwyder."*
>
> *Let wel: altyd volgens die IBM MQ-dokumentasie (Administrasie Verwysing), is daar ook 'n HTTP-eindpunt by `/admin/action/qmgr/{qmgrName}/mqsc` om die ekwivalente MQSC-opdrag vir diensskepping (`DEFINE SERVICE`) uit te voer. Hierdie aspek word nog nie hier gedek nie.*
**Wees bewus dat die program-lancering asinkronies is. Jy het dus 'n tweede item nodig om die uitbuiting te benut** ***(luisteraar vir omgekeerde dop, lêer-skepping op verskillende diens, data-eksfiltrering deur middel van netwerk ...)***
Jy kan in die IBM MQ-dokumentasie duik en direk die **pymqi** Python-biblioteek gebruik om 'n spesifieke PCF-opdrag te toets wat nie geïmplementeer is in **punch-q** nie.
As jy nie die konstante name kan vind nie, kan jy verwys na die [IBM MQ-dokumentasie](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=constants-mqca-character-attribute-selectors).
> *Voorbeeld vir [`MQCMD_REFRESH_CLUSTER`](https://www.ibm.com/docs/en/ibm-mq/9.3?topic=formats-mqcmd-refresh-cluster-refresh-cluster) (Desimaal = 73). Dit vereis die parameter `MQCA_CLUSTER_NAME` (Desimaal = 2029) wat `*` kan wees (Doc: ):*