Buscando dispositivos con MQTT para obtener información de ellos - BoomerNiX

viernes, 30 de agosto de 2019

Buscando dispositivos con MQTT para obtener información de ellos

MQTT (MQ Telemetry Transport) es de suma importancia si hablamos de IoT. Se trata de un protocolo de comunicación para intercambio de mensajes usando el patrón "publicador/suscriptor", puedes ver más información sobre este patrón en esta página de Microsoft. Y puedes ampliar conocimiento sobre el funcionamiento de MQTT en este post de Luis Llamas, aquí vamos a ir directos a la búsqueda de dispositivos que hacen uso de este protocolo por Internet y a extraer información del protocolo.

Obteniendo direcciones IP que tienen activo el protocolo MQTT

Para llevar a cabo esta labor, se puede hacer uso de servicios como Shodan o ZoomEye, aquí se deja un ejemplo de búsqueda en Shodan, con la palabra clave: MQTT Code: 0.
Figura 1: búsqueda MQTT en Shodan
Más de 47000 resultados, no está nada mal, ahora ya podemos 'suscribirnos' a ellos y recolectar información, en este post se hace uso de uno propio sin necesidad de salir fuera.

Recolectando información con Python

Lo primero, instalar la librería que necesitamos para trabajar con MQTT, tiramos de pip: pip install paho-mqtt. Y creamos un script para que dada una dirección IP y el nombre de un fichero, se subscriba al objetivo y guarde la información en el fichero, para poder consultarlo con tranquilidad. El código se deja a continuación:
Figura 2: script para la PoC
Nada complicado, tenemos 2 funciones importantes para eventos (__on_connect, __on_mesagge) y la función para comenzar a trabajar start. Ya solo queda probarlo, el resultado se puede ver a continuación:
Figura 3: ejecución del script
Como la búsqueda y recolección ha sido 'controlada' no hay información que pueda llamar la atención, pero se puede conseguir datos de dispositivos de sensores de movimiento, medidores de niveles de oxigeno y CO2 o ver la temperatura de un aparato, entre otras muchas cosas... Lo peor del caso, es que a partir de aquí se puede trabajar para manipular esos datos, ¡lo que puede causar 'alertas' en industrias o casas! Vamos a proteger nuestros dispositivos para evitar un fácil acceso de posibles cibercriminales.

No hay comentarios:

Publicar un comentario