1883 - Pentesting MQTT (Mosquitto)
WhiteIntel é um mecanismo de busca alimentado pela dark web que oferece funcionalidades gratuitas para verificar se uma empresa ou seus clientes foram comprometidos por malwares de roubo.
O principal objetivo do WhiteIntel é combater tomadas de conta e ataques de ransomware resultantes de malwares de roubo de informações.
Você pode verificar o site deles e experimentar o mecanismo deles gratuitamente em:
Informações Básicas
MQ Telemetry Transport (MQTT) é conhecido como um protocolo de mensagens de publicação/assinatura que se destaca por sua extrema simplicidade e leveza. Este protocolo é especificamente projetado para ambientes onde os dispositivos têm capacidades limitadas e operam em redes caracterizadas por largura de banda baixa, alta latência ou conexões não confiáveis. Os objetivos principais do MQTT incluem minimizar o uso da largura de banda da rede e reduzir a demanda nos recursos do dispositivo. Além disso, ele visa manter uma comunicação confiável e fornecer um certo nível de garantia de entrega. Esses objetivos tornam o MQTT excepcionalmente adequado para o campo em crescimento da comunicação máquina a máquina (M2M) e a Internet das Coisas (IoT), onde é essencial conectar uma infinidade de dispositivos de forma eficiente. Além disso, o MQTT é altamente benéfico para aplicações móveis, onde a conservação de largura de banda e vida útil da bateria são cruciais.
Porta padrão: 1883
Inspeção do tráfego
Quando um pacote CONNECT é recebido pelos corretores MQTT, um pacote CONNACK é enviado de volta. Este pacote contém um código de retorno que é crucial para entender o status da conexão. Um código de retorno de 0x00 significa que as credenciais foram aceitas, indicando uma conexão bem-sucedida. Por outro lado, um código de retorno de 0x05 sinaliza que as credenciais são inválidas, impedindo assim a conexão.
Por exemplo, se o corretor rejeitar a conexão devido a credenciais inválidas, o cenário seria algo assim:
Pentesting MQTT
A autenticação é totalmente opcional e mesmo que a autenticação seja realizada, a criptografia não é usada por padrão (as credenciais são enviadas em texto claro). Ainda é possível executar ataques MITM para roubar senhas.
Para se conectar a um serviço MQTT, você pode usar: https://github.com/bapowell/python-mqtt-client-shell e se inscrever em todos os tópicos fazendo:
Você também pode usar https://github.com/akamai-threat-research/mqtt-pwn
Ou você poderia executar este código para tentar se conectar a um serviço MQTT sem autenticação, se inscrever em todos os tópicos e ouvi-los:
Mais informações
aqui: https://morphuslabs.com/hacking-the-iot-with-mqtt-8edaf0d07b9b
O Padrão Publicar/Assinar
O modelo de publicar/assinar é composto por:
Editor: publica uma mensagem em um (ou vários) tópico(s) no broker.
Assinante: se inscreve em um (ou vários) tópico(s) no broker e recebe todas as mensagens enviadas pelo editor.
Broker: roteia todas as mensagens dos editores para os assinantes.
Tópico: consiste em um ou mais níveis separados por uma barra inclinada (por exemplo, /casainteligente/sala/temperatura).
Formato do Pacote
Cada pacote MQTT contém um cabeçalho fixo (Figura 02).Figura 02: Cabeçalho Fixo
Tipos de Pacotes
CONNECT (1): Iniciado pelo cliente para solicitar uma conexão com o servidor.
CONNACK (2): Confirmação do servidor de uma conexão bem-sucedida.
PUBLISH (3): Usado para enviar uma mensagem do cliente para o servidor ou vice-versa.
PUBACK (4): Confirmação de um pacote PUBLISH.
PUBREC (5): Parte de um protocolo de entrega de mensagem que garante que a mensagem seja recebida.
PUBREL (6): Garantia adicional na entrega da mensagem, indicando uma liberação de mensagem.
PUBCOMP (7): Parte final do protocolo de entrega de mensagem, indicando conclusão.
SUBSCRIBE (8): Solicitação de um cliente para ouvir mensagens de um tópico.
SUBACK (9): Confirmação do servidor de uma solicitação de SUBSCRIBE.
UNSUBSCRIBE (10): Solicitação de um cliente para parar de receber mensagens de um tópico.
UNSUBACK (11): Resposta do servidor a uma solicitação de UNSUBSCRIBE.
PINGREQ (12): Uma mensagem de batimento cardíaco enviada pelo cliente.
PINGRESP (13): Resposta do servidor à mensagem de batimento cardíaco.
DISCONNECT (14): Iniciado pelo cliente para encerrar a conexão.
Dois valores, 0 e 15, são marcados como reservados e seu uso é proibido.
Shodan
port:1883 MQTT
WhiteIntel é um mecanismo de busca alimentado pela dark web que oferece funcionalidades gratuitas para verificar se uma empresa ou seus clientes foram comprometidos por malwares ladrões.
O objetivo principal do WhiteIntel é combater a apropriação de contas e ataques de ransomware resultantes de malwares que roubam informações.
Você pode verificar o site deles e experimentar o mecanismo de busca deles gratuitamente em:
Last updated