1883 - Pentesting MQTT (Mosquitto)
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F600722126-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FJtticLwENZ4i7WwgHiQe%252Fuploads%252Fgit-blob-878e43bb9c156ea00e2843c8fc47e5e4ebfbc581%252Fimage%2520%281227%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=d6c0b06e&sv=1)
WhiteIntel to silnik wyszukiwania zasilany przez dark-web, który oferuje darmowe funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali skompromentowani przez złośliwe oprogramowanie kradnące dane.
Głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego dane.
Możesz sprawdzić ich stronę internetową i wypróbować ich silnik za darmo pod adresem:
Basic Information
MQ Telemetry Transport (MQTT) jest znany jako protokół komunikacji publish/subscribe, który wyróżnia się ekstremalną prostotą i lekkością. Protokół ten jest specjalnie dostosowany do środowisk, w których urządzenia mają ograniczone możliwości i działają w sieciach charakteryzujących się niską przepustowością, dużą latencją lub niestabilnymi połączeniami. Główne cele MQTT obejmują minimalizację wykorzystania przepustowości sieci oraz redukcję zapotrzebowania na zasoby urządzeń. Dodatkowo, dąży do utrzymania niezawodnej komunikacji i zapewnienia pewnego poziomu gwarancji dostarczenia. Cele te sprawiają, że MQTT jest wyjątkowo odpowiedni dla rozwijającej się dziedziny komunikacji maszyna-do-maszyny (M2M) oraz Internetu Rzeczy (IoT), gdzie kluczowe jest efektywne łączenie wielu urządzeń. Ponadto, MQTT jest bardzo korzystny dla aplikacji mobilnych, gdzie oszczędzanie przepustowości i energii baterii jest kluczowe.
Default port: 1883
Inspecting the traffic
Kiedy pakiet CONNECT jest odbierany przez brokerów MQTT, pakiet CONNACK jest wysyłany z powrotem. Pakiet ten zawiera kod zwrotny, który jest kluczowy dla zrozumienia statusu połączenia. Kod zwrotny 0x00 oznacza, że dane uwierzytelniające zostały zaakceptowane, co oznacza udane połączenie. Z drugiej strony, kod zwrotny 0x05 sygnalizuje, że dane uwierzytelniające są nieprawidłowe, co uniemożliwia połączenie.
Na przykład, jeśli broker odrzuca połączenie z powodu nieprawidłowych danych uwierzytelniających, scenariusz wyglądałby mniej więcej tak:
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F600722126-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FJtticLwENZ4i7WwgHiQe%252Fuploads%252Fgit-blob-4f2c9b7583562686a3dc4fc33b54f634b494d704%252Fimage%2520%28976%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=d160bc35&sv=1)
Pentesting MQTT
Uwierzytelnianie jest całkowicie opcjonalne i nawet jeśli uwierzytelnianie jest przeprowadzane, szyfrowanie nie jest domyślnie używane (dane uwierzytelniające są przesyłane w postaci niezaszyfrowanej). Ataki MITM mogą nadal być przeprowadzane w celu kradzieży haseł.
Aby połączyć się z usługą MQTT, możesz użyć: https://github.com/bapowell/python-mqtt-client-shell i subskrybować się do wszystkich tematów, wykonując:
Możesz również użyć https://github.com/akamai-threat-research/mqtt-pwn
Możesz także użyć:
Lub możesz uruchomić ten kod, aby spróbować połączyć się z usługą MQTT bez uwierzytelnienia, subskrybować każdy temat i ich słuchać:
Więcej informacji
stąd: https://morphuslabs.com/hacking-the-iot-with-mqtt-8edaf0d07b9b
Wzorzec Publikacji/Subskrypcji
Model publikacji/subskrypcji składa się z:
Publisher: publikuje wiadomość do jednego (lub wielu) tematów w brokerze.
Subscriber: subskrybuje jeden (lub wiele) tematów w brokerze i otrzymuje wszystkie wiadomości wysyłane przez publishera.
Broker: kieruje wszystkimi wiadomościami od publisherów do subskrybentów.
Topic: składa się z jednego lub więcej poziomów oddzielonych ukośnikiem (np. /smartshouse/livingroom/temperature).
Format Pakietu
Każdy pakiet MQTT zawiera stały nagłówek (Rysunek 02). Rysunek 02: Stały Nagłówek
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2Fmiro.medium.com%2Fmax%2F838%2F1*k6RkAHEk0576geQGUcKSTA.png&width=768&dpr=4&quality=100&sign=442a4199&sv=1)
Typy Pakietów
CONNECT (1): Inicjowany przez klienta w celu zażądania połączenia z serwerem.
CONNACK (2): Potwierdzenie serwera o udanym połączeniu.
PUBLISH (3): Używany do wysyłania wiadomości z klienta do serwera lub odwrotnie.
PUBACK (4): Potwierdzenie pakietu PUBLISH.
PUBREC (5): Część protokołu dostarczania wiadomości zapewniająca, że wiadomość została odebrana.
PUBREL (6): Dalsze zapewnienie w dostarczaniu wiadomości, wskazujące na zwolnienie wiadomości.
PUBCOMP (7): Ostatnia część protokołu dostarczania wiadomości, wskazująca na zakończenie.
SUBSCRIBE (8): Żądanie klienta do nasłuchiwania wiadomości z tematu.
SUBACK (9): Potwierdzenie serwera żądania SUBSCRIBE.
UNSUBSCRIBE (10): Żądanie klienta o zaprzestanie otrzymywania wiadomości z tematu.
UNSUBACK (11): Odpowiedź serwera na żądanie UNSUBSCRIBE.
PINGREQ (12): Wiadomość sygnalizacyjna wysyłana przez klienta.
PINGRESP (13): Odpowiedź serwera na wiadomość sygnalizacyjną.
DISCONNECT (14): Inicjowany przez klienta w celu zakończenia połączenia.
Dwie wartości, 0 i 15, są oznaczone jako zarezerwowane, a ich użycie jest zabronione.
Shodan
port:1883 MQTT
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2F600722126-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FJtticLwENZ4i7WwgHiQe%252Fuploads%252Fgit-blob-878e43bb9c156ea00e2843c8fc47e5e4ebfbc581%252Fimage%2520%281227%29.png%3Falt%3Dmedia&width=768&dpr=4&quality=100&sign=d6c0b06e&sv=1)
WhiteIntel to silnik wyszukiwania zasilany dark-webem, który oferuje darmowe funkcjonalności do sprawdzenia, czy firma lub jej klienci zostali skompromentowani przez złośliwe oprogramowanie kradnące.
Ich głównym celem WhiteIntel jest zwalczanie przejęć kont i ataków ransomware wynikających z złośliwego oprogramowania kradnącego informacje.
Możesz sprawdzić ich stronę i wypróbować ich silnik za darmo pod adresem:
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP:
HackTricks Training GCP Red Team Expert (GRTE)
Last updated