1883 - Pentesting MQTT (Mosquitto)
WhiteIntel to wyszukiwarka zasilana przez dark web, która oferuje darmowe funkcje do sprawdzania, czy firma lub jej klienci zostali skompromitowani 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 informacje.
Możesz odwiedzić ich stronę internetową i wypróbować ich silnik za darmo pod adresem:
Podstawowe informacje
MQ Telemetry Transport (MQTT) jest znany jako protokół komunikacyjny typu publish/subscribe, który wyróżnia się swoją skrajną prostotą i lekkością. Ten protokół jest specjalnie dostosowany do środowisk, w których urządzenia mają ograniczone możliwości i działają w sieciach charakteryzujących się niskim pasmem, wysokim opóźnieniem lub niestabilnymi połączeniami. Główne cele MQTT obejmują minimalizowanie użycia pasma sieciowego i redukcję zapotrzebowania na zasoby urządzenia. Ponadto, dąży do utrzymania niezawodnej komunikacji i zapewnienia pewnego poziomu zapewnienia dostawy. Te cele sprawiają, że MQTT jest wyjątkowo odpowiedni dla rozwijającej się dziedziny komunikacji maszynowej do maszyn (M2M) i Internetu Rzeczy (IoT), gdzie istotne jest efektywne połączenie wielu urządzeń. Ponadto, MQTT jest bardzo korzystny dla aplikacji mobilnych, gdzie oszczędzanie pasma i życia baterii jest kluczowe.
Domyślny port: 1883
Inspekcja ruchu
Kiedy broker MQTT odbierze pakiet CONNECT, wysyłany jest pakiet CONNACK. Ten pakiet zawiera kod zwrotny, który jest kluczowy dla zrozumienia statusu połączenia. Kod zwrotny 0x00 oznacza, że poświadczenia zostały zaakceptowane, sygnalizując udane połączenie. Z kolei kod zwrotny 0x05 oznacza, że poświadczenia są nieprawidłowe, uniemożliwiając połączenie.
Na przykład, jeśli broker odrzuci połączenie z powodu nieprawidłowych poświadczeń, scenariusz będzie wyglądał mniej więcej tak:
Testowanie penetracyjne MQTT
Uwierzytelnianie jest całkowicie opcjonalne i nawet jeśli jest wykonywane, szyfrowanie nie jest domyślnie używane (dane uwierzytelniające są przesyłane w postaci zwykłego tekstu). Ataki typu MITM mogą nadal być przeprowadzane w celu kradzieży haseł.
Aby połączyć się z usługą MQTT, można użyć: https://github.com/bapowell/python-mqtt-client-shell i zasubskrybować się do wszystkich tematów wykonując:
Możesz również użyć https://github.com/akamai-threat-research/mqtt-pwn
Możesz uruchomić ten kod, aby spróbować połączyć się z usługą MQTT bez uwierzytelnienia, subskrybować każdy temat i nasłuchiwać ich:
Więcej informacji
zobacz tutaj: https://morphuslabs.com/hacking-the-iot-with-mqtt-8edaf0d07b9b
Wzorzec Publikuj/Subskrybuj
Model publikuj/subskrybuj składa się z:
Wydawca: publikuje wiadomość do jednego (lub wielu) tematu(ów) w brokerze.
Subskrybent: subskrybuje jeden (lub wiele) temat(ów) w brokerze i otrzymuje wszystkie wiadomości wysłane przez wydawcę.
Broker: przekierowuje wszystkie wiadomości od wydawców do subskrybentów.
Temat: 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
Typy Pakietów
CONNECT (1): Inicjowany przez klienta w celu nawiązania połączenia z serwerem.
CONNACK (2): Potwierdzenie serwera udanego połączenia.
PUBLISH (3): Używane do wysłania wiadomości od 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): Dodatkowe zapewnienie w dostarczaniu wiadomości, wskazujące na wydanie wiadomości.
PUBCOMP (7): Ostateczna część protokołu dostarczania wiadomości, wskazująca na zakończenie.
SUBSCRIBE (8): Żądanie klienta o nasłuchiwanie wiadomości z tematu.
SUBACK (9): Potwierdzenie serwera żądania SUBSCRIBE.
UNSUBSCRIBE (10): Żądanie klienta zaprzestania odbierania wiadomości z tematu.
UNSUBACK (11): Odpowiedź serwera na żądanie UNSUBSCRIBE.
PINGREQ (12): Wiadomość ping wysłana przez klienta.
PINGRESP (13): Odpowiedź serwera na wiadomość ping.
DISCONNECT (14): Inicjowane przez klienta w celu zakończenia połączenia.
Dwa wartości, 0 i 15, są oznaczone jako zarezerwowane i ich użycie jest zabronione.
Shodan
port:1883 MQTT
WhiteIntel to wyszukiwarka zasilana przez dark web, która oferuje darmowe funkcje do sprawdzenia, czy firma lub jej klienci zostali skompromitowani przez złośliwe oprogramowanie kradnące informacje.
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ę internetową i wypróbować ich silnik za darmo pod adresem:
Last updated