Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
mqattack — MQTT पेनिट्रेशन परीक्षण के लिए Rust CLI: subscribe/publish, broker fingerprinting, ACL probing, topic enumeration, credential brute-force, और TLS/mTLS पर Last Will injection। | Kitploit
उपकरण/GitHubGitHub/affolter-engineering/mqattack
टोहीIoT सुरक्षापासवर्ड हमलेभेद्यता विश्लेषणजानकारी एकत्र करनानेटवर्क सुरक्षापेनिट्रेशन टेस्टिंगउपयोगिताएँ और फ्रेमवर्कहार्डवेयर और IoT सुरक्षाप्रमाणीकरण
GitHub
1154 दिन पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
affolter-engineering/mqattack

mqattack

MQTT पेनिट्रेशन परीक्षण के लिए Rust CLI: subscribe/publish, broker fingerprinting, ACL probing, topic enumeration, credential brute-force, और TLS/mTLS पर Last Will injection।

रिपॉजिटरी देखें

mqattack

कमांड लाइन के लिए एक Rust-आधारित MQTT पेनेट्रेशन टेस्टिंग टूल।

विशेषताएँ

  • Subscribe - एक या अधिक टॉपिक फ़िल्टर सुनें
  • Publish - किसी टॉपिक पर पेलोड भेजें
  • Fingerprinting - MQTT ब्रोकर की पहचान करने की अनुमति देता है
  • Check ACL - एक टॉपिक या वर्डलिस्ट के लिए subscribe/publish अनुमतियों की जाँच करें
  • TLS - सिस्टम या कस्टम CA के साथ ब्रोकर सत्यापन
  • mTLS - क्लाइंट सर्टिफिकेट और प्राइवेट की के साथ म्यूचुअल TLS
  • JWT authentication - MQTT पासवर्ड के रूप में JWT टोकन भेजें
  • Insecure mode - त्वरित परीक्षण के लिए सर्टिफिकेट सत्यापन छोड़ें

इंस्टॉलेशन

सोर्स से (Nix के साथ)

$ nix-shell
$ cargo build --release

बाइनरी target/release/mqattack पर रखी जाती है।

सोर्स से (Nix के बिना)

Rust 1.80+, एक C कंपाइलर और OpenSSL डेवलपमेंट हेडर की आवश्यकता है।

$ cargo build --release

Nixpkgs

Nix या NixOS उपयोगकर्ताओं के लिए एक पैकेज उपलब्ध है। ध्यान रखें कि नवीनतम रिलीज़ केवल unstable चैनल में मौजूद हो सकती हैं।

 $ nix-env -iA nixos.mqattack

उपयोग

सभी कमांड कनेक्शन और प्रमाणीकरण विकल्पों का एक सामान्य सेट साझा करते हैं:

Connection options:
  -H, --host <HOST>        Broker hostname or IP        [default: localhost]
  -p, --port <PORT>        Broker port                  [default: 1883]
  -u, --username <USER>    Username
  -P, --password <PASS>    Password (mutually exclusive with --jwt)
      --jwt <TOKEN>        JWT token sent as MQTT password
      --client-id <ID>     MQTT client identifier       [default: mqattack]
      --keepalive <SECS>   Keep-alive interval          [default: 60]

TLS options:
      --tls                Enable TLS with system root CAs
      --cafile <PATH>      Custom CA certificate in PEM format (implies --tls)
      --cert <PATH>        Client certificate for mTLS in PEM format (requires --key)
      --key <PATH>         Client private key for mTLS in PEM format (requires --cert)
      --insecure           Disable certificate verification — for testing only

Subscribe

$ mqattack subscribe [OPTIONS] -t <TOPIC>...

  -t, --topic <TOPIC>    Topic filter, repeatable
  -q, --qos <QOS>        QoS level 0/1/2         [default: 0]
  -C, --count <N>        Exit after N messages
      --hex              Print payload as hexadecimal
# Subscribe to all topics
$ mqattack subscribe -t '#'

# Subscribe to multiple filters, exit after 5 messages
$ mqattack subscribe -t 'home/#' -t 'sensors/#' -C 5

# Plaintext with credentials
$ mqattack subscribe -H 192.168.1.10 -u admin -P secret -t '#'

# TLS using system root CAs (default port 8883)
$ mqattack subscribe --tls -H broker.example.com -p 8883 -t '#'

# TLS with a custom CA
$ mqattack subscribe --cafile ca.crt -H broker.example.com -p 8883 -t '#'

# mTLS with client certificate
$ mqattack subscribe --cert client.crt --key client.key --cafile ca.crt \
  -H broker.example.com -p 8883 -t '#'

# JWT authentication over TLS
$ mqattack subscribe --tls --jwt 'eyJhbGci...' -H broker.example.com -p 8883 -t '#'

# Self-signed cert — skip verification
$ mqattack subscribe --insecure -H 192.168.1.10 -p 8883 -t '#'

# Collect for 5 seconds, print a grouped summary
$ mqattack sys-info -H 192.168.1.10

# Longer collection window
$ mqattack sys-info -H broker.example.com --tls -p 8883 -w 15

# Stream values live
$ mqattack sys-info -H 192.168.1.10 --live

Publish

$ mqattack publish [OPTIONS] -t <TOPIC> -m <MESSAGE>

  -t, --topic <TOPIC>    Target topic
  -m, --message <MSG>    Payload; use '-' to read from stdin
  -q, --qos <QOS>        QoS level 0/1/2         [default: 0]
  -r, --retain           Set the retain flag
# Publish a simple message
$ mqattack publish -t test/topic -m 'hello'

# Publish with QoS 1 and retain flag
$ mqattack publish -H 192.168.1.10 -t alerts/door -m 'open' -q 1 -r

# Pipe payload from stdin
$ echo '{"cmd":"reboot"}' | mqattack publish -t device/1/cmd -m -

# Publish over TLS with JWT
$ mqattack publish --tls --jwt 'eyJhbGci...' \
  -H broker.example.com -p 8883 -t device/1/cmd -m 'reboot'

# mTLS publish
$ mqattack publish --cert client.crt --key client.key --cafile ca.crt \
  -H broker.example.com -p 8883 -t test -m 'hello'

Fingerprint

$SYS/# की सदस्यता लेकर और एकत्र किए गए संदेशों का विश्लेषण करके ब्रोकर सॉफ़्टवेयर और संस्करण की पहचान करें। एक मानक SUBSCRIBE से अधिक कोई पैकेट नहीं भेजा जाता — ब्रोकर स्वयं को उसी के माध्यम से प्रकट करता है जो वह प्रकाशित करता है।

मान्यता प्राप्त ब्रोकर और उनके पहचान संकेत:

BrokerDetection signal
Mosquitto$SYS/broker/version value starts with mosquitto version
HiveMQ$SYS/broker/version value starts with HiveMQ
VerneMQ$SYS/broker/version value starts with VerneMQ
EMQXTopics under $SYS/brokers/ (plural); node name extracted from topic path
NanoMQTopics under $SYS/nanomq/ namespace
RabbitMQ$SYS/broker/version value contains rabbitmq

जब कोई ज्ञात हस्ताक्षर मेल खाता है तो विश्वास high के रूप में रिपोर्ट किया जाता है, जब $SYS/broker/version मौजूद है लेकिन अपरिचित है तो low, और जब $SYS सुलभ है लेकिन कोई पहचानकारी जानकारी नहीं देता तो unknown।

$ mqattack fingerprint [OPTIONS]

  -w, --wait <SECS>   Collection window in seconds   [default: 5]
      --verbose        Print all collected $SYS messages after the summary

उदाहरण

# Fingerprint a broker on the default port
$ mqattack fingerprint -H 192.168.1.10

# Longer collection window for slow brokers, then dump everything
$ mqattack fingerprint -H 192.168.1.10 -w 10 --verbose

# Fingerprint over TLS with credentials
$ mqattack fingerprint --cafile ca.crt -H broker.example.com -p 8883 \
  -u admin -P secret

उदाहरण आउटपुट (Mosquitto):

[+] Broker Fingerprint
    Software:              Mosquitto
    Version:               2.0.18
    Confidence:            high
    Build info:            With OpenSSL 3.0.2 15 Mar 2022

    Uptime:                12345 seconds
    Clients connected:     3
    Clients total:         47
    Messages received:     1082
    Messages sent:         2341

[*] 47 $SYS message(s) collected (use --verbose to see all)

Check ACL

एक टॉपिक या टॉपिक की सूची के लिए subscribe और/या publish अनुमतियों की जाँच करें। प्रत्येक परीक्षण ब्रोकर से नए सिरे से कनेक्ट होता है और लौटाए गए SubAck/PubAck का निरीक्षण करता है। परिणाम ALLOWED, DENIED, INCONCLUSIVE (कोई पावती प्राप्त नहीं), या SKIPPED के रूप में रिपोर्ट किए जाते हैं।

नोट: publish प्रोब को ब्रोकर पावती प्राप्त करने के लिए QoS 1 या 2 (-q 1 या -q 2) की आवश्यकता होती है। QoS 0 publish के लिए हमेशा INCONCLUSIVE देता है।

$ mqattack check-acl [OPTIONS] (-t <TOPIC> | -w <FILE>)

  -t, --topic <TOPIC>     Single topic to probe (mutually exclusive with --wordlist)
  -w, --wordlist <FILE>   File with one topic per line (mutually exclusive with --topic)
      --no-subscribe      Skip subscribe permission tests
      --no-publish        Skip publish permission tests
      --payload <TEXT>    Payload used for publish probes    [default: mqattack]
  -q, --qos <QOS>         QoS for publish probes (1 or 2)   [default: 1]
      --wait <SECS>       Seconds to wait for a broker response per test [default: 5]
# Test a single topic (both subscribe and publish)
$ mqattack check-acl -H 192.168.1.10 -u admin -P secret -t 'home/lights/1'

# Test all topics from a wordlist, subscribe only
$ mqattack check-acl -H 192.168.1.10 -w topics.txt --no-publish

# Test publish permissions only with QoS 2
$ mqattack check-acl -H 192.168.1.10 -t 'cmd/device/1' --no-subscribe -q 2

# Check ACL over TLS with a custom CA
$ mqattack check-acl --cafile ca.crt -H broker.example.com -p 8883 -w topics.txt

# Use a custom payload and a longer wait window
$ mqattack check-acl -H 192.168.1.10 -t 'sensor/temp' --payload 'test' --wait 10

Enumerate topics

टूल डाउनलोड करें