tom@home.htb:~$

Blog o HTB

29 December 2020

mosquitto_sub

Úvod a kontext

mosquitto_sub je jednoduchý MQTT subscriber. To samo o sobě zní jako velmi úzký nástroj, ale v praxi má velkou hodnotu na hostech, kde po footholdu narazíte na lokální broker a potřebujete rychle zjistit, co po něm skutečně teče. Není to skener a neřeší exploit. Je to čtečka provozního kanálu, který bývá v interních aplikacích často podceňovaný.

Na PlayerTwo právě přes mosquitto_sub vyplaval signing key z interního topicu, a tím i cesta k SSH účtu observer. To je velmi dobrý příklad toho, proč má tenhle nástroj smysl: broker bývá považovaný za interní plumbing, ale po footholdu se z něj může stát přímý zdroj tajemství.

Co tenhle nástroj v praxi řeší

mosquitto_sub pomáhá hlavně tehdy, když potřebujete:

To je důležité, protože message broker není jen další otevřený port. Často sedí mezi webem, workerem, podpisovou logikou, firmware pipeline nebo jinou citlivou částí systému.

Nejčastější scénáře využití v tomto projektu

Sledování interních topiců po footholdu

Na PlayerTwo byl broker dostupný jen lokálně, takže se stal zajímavým až po prvním footholdu jako www-data. V tu chvíli stačilo připojit subscriber:

mosquitto_sub -h localhost -t '$SYS/#'

Na tématu $SYS/internal/firmware/signing se periodicky objevoval privátní klíč. Praktický dopad nebyl “vidím hezký event”. Dopad byl plnohodnotný SSH přístup.

Rychlé ověření, zda broker nese data nebo řídicí instrukce

U message brokeru je důležité neptat se jen “běží tam MQTT?”. Důležitější je ptát se:

Právě mosquitto_sub je na takové první ověření ideální, protože je lehký a dává okamžitou zpětnou vazbu.

Kdy je mosquitto_sub nejlepší volba

mosquitto_sub dává největší smysl tehdy, když:

Naopak sám o sobě neřeší publikování, exploit ani širší mapování celé message architektury. Je to rychlý čtecí nástroj, ne kompletní MQTT framework.

Nejčastější chyby v praxi

Představa, že interní broker je jen diagnostika

PlayerTwo ukazuje pravý opak. Broker nesl signing key, tedy provozní tajemství s přímým bezpečnostním dopadem.

Ignorování localhost boundary po footholdu

To, že broker běží jen na 127.0.0.1, neznamená nízký dopad. Znamená to jen to, že se stává zajímavým až po prvním přístupu. Právě tenhle pattern rozebírám i v článku Lokálně dostupné služby po footholdu: localhost není boundary.

Sledování příliš úzkého topicu od začátku

Když ještě nevíte, jak broker vypadá, dává často větší smysl začít široce a teprve pak zúžit na konkrétní větev nebo kanál.

Související články v projektu

Co si odnést do praxe

Další Související Články V Projektu

Techniky

Nástroje

tags: nastroje - mqtt - message-broker - localhost - topics