1883 - Pentesting MQTT (Mosquitto)
WhiteIntel, bir şirketin veya müşterilerinin hırsız kötü amaçlı yazılımlar tarafından kompromize edilip edilmediğini kontrol etmek için ücretsiz işlevler sunan dark-web destekli bir arama motorudur.
WhiteIntel'in başlıca amacı, bilgi çalan kötü amaçlı yazılımlardan kaynaklanan hesap ele geçirmeleri ve fidye saldırılarıyla mücadele etmektir.
Websitesini ziyaret edebilir ve motorlarını ücretsiz deneyebilirsiniz:
Temel Bilgiler
MQ Telemetri Taşıma Protokolü (MQTT), aşırı basitliği ve hafifliği ile öne çıkan bir yayın/abone mesajlaşma protokolü olarak bilinir. Bu protokol özellikle, cihazların sınırlı yeteneklere sahip olduğu ve düşük bant genişliği, yüksek gecikme veya güvenilir olmayan bağlantılarla karakterize edilen ağlar üzerinde çalıştığı ortamlar için özel olarak tasarlanmıştır. MQTT'nin temel amaçları arasında ağ bant genişliğinin kullanımını en aza indirgeme ve cihaz kaynaklarına olan talebi azaltma bulunmaktadır. Ayrıca, güvenilir iletişimi sürdürmeyi ve belirli bir teslimat güvencesi düzeyi sağlamayı amaçlar. Bu hedefler, MQTT'yi makine-makine (M2M) iletişimi ve Nesnelerin İnterneti (IoT) alanı için son derece uygun hale getirir, burada birçok cihazın verimli bir şekilde bağlanması esastır. Ayrıca, MQTT, bant genişliğini ve pil ömrünü korumanın önemli olduğu mobil uygulamalar için son derece faydalıdır.
Varsayılan port: 1883
Trafik incelemesi
MQTT brokerlarına bir CONNECT paketi geldiğinde, bir CONNACK paketi geri gönderilir. Bu paket, bağlantı durumunu anlamak için hayati öneme sahip olan bir dönüş kodunu içerir. 0x00 dönüş kodu, kimlik bilgilerinin kabul edildiğini ve başarılı bir bağlantıyı gösterir. Öte yandan, 0x05 dönüş kodu, kimlik bilgilerinin geçersiz olduğunu belirterek bağlantıyı engeller.
Örneğin, broker kimlik bilgilerinin geçersiz olması nedeniyle bağlantıyı reddederse, senaryo şöyle görünecektir:
MQTT Pentesting
Kimlik doğrulama tamamen isteğe bağlıdır ve hatta kimlik doğrulaması yapılıyorsa bile, şifreleme varsayılan olarak kullanılmaz (kimlik bilgileri düz metin olarak gönderilir). MITM saldırıları hala gerçekleştirilerek şifreler çalınabilir.
MQTT hizmetine bağlanmak için şunu kullanabilirsiniz: https://github.com/bapowell/python-mqtt-client-shell ve kendinizi tüm konulara abone yapabilirsiniz:
Ayrıca https://github.com/akamai-threat-research/mqtt-pwn adresini kullanabilirsiniz.
Ya da bu kodu çalıştırarak kimlik doğrulaması olmadan bir MQTT servisine bağlanmayı deneyebilir, her konuya abone olabilir ve onları dinleyebilirsiniz:
Daha fazla bilgi
buradan: https://morphuslabs.com/hacking-the-iot-with-mqtt-8edaf0d07b9b
Yayın/Abone Olma Modeli
Yayın/abone olma modeli şunlardan oluşur:
Yayıncı: mesajı broker'daki bir (veya birçok) konuya yayınlar.
Abone: broker'daki bir (veya birçok) konuya abone olur ve yayıncıdan gönderilen tüm mesajları alır.
Broker: yayıncılardan gelen tüm mesajları abonelere yönlendirir.
Konu: bir veya daha fazla seviyeden oluşur ve bir ileri eğik çizgi ile ayrılır (örneğin, /smartshouse/livingroom/temperature).
Paket Formatı
Her MQTT paketi sabit bir başlık içerir (Şekil 02). Şekil 02: Sabit Başlık
Paket Türleri
CONNECT (1): Sunucuya bağlantı istemek için istemci tarafından başlatılır.
CONNACK (2): Başarılı bir bağlantının sunucu tarafından onaylanması.
PUBLISH (3): İstemciden sunucuya veya tersine bir mesaj göndermek için kullanılır.
PUBACK (4): Bir PUBLISH paketinin onaylanması.
PUBREC (5): Mesajın alındığından emin olmak için bir iletişim teslimat protokolünün bir parçası.
PUBREL (6): Mesaj teslimatında daha fazla güvence sağlayarak bir mesajın serbest bırakılmasını gösterir.
PUBCOMP (7): Tamamlanmayı gösteren mesaj teslimat protokolünün final kısmı.
SUBSCRIBE (8): Bir istemcinin bir konudan gelen mesajları dinlemek için isteği.
SUBACK (9): SUBSCRIBE isteğinin sunucu tarafından onaylanması.
UNSUBSCRIBE (10): Bir istemcinin bir konudan gelen mesajları almaya son vermek için isteği.
UNSUBACK (11): UNSUBSCRIBE isteğine sunucunun yanıtı.
PINGREQ (12): İstemci tarafından gönderilen bir kalp atışı mesajı.
PINGRESP (13): Sunucunun kalp atışı mesajına yanıtı.
DISCONNECT (14): Bağlantıyı sonlandırmak için istemci tarafından başlatılır.
0 ve 15 olarak işaretlenen iki değer yasaklanmıştır ve kullanılmamalıdır.
Shodan
port:1883 MQTT
WhiteIntel, şirketin veya müşterilerinin hırsız kötü amaçlı yazılımlar tarafından kompromize edilip edilmediğini kontrol etmek için ücretsiz işlevsellikler sunan dark-web destekli bir arama motorudur.
WhiteIntel'in başlıca amacı, bilgi çalan kötü amaçlı yazılımlardan kaynaklanan hesap ele geçirmeleri ve fidye saldırılarıyla mücadele etmektir.
Websitesini ziyaret edebilir ve ücretsiz olarak motorlarını deneyebilirsiniz:
Last updated