applied security research
Wesley Neelen - 24 sep 2020

Risk of exposed home automation services

At home, I am automating many things for fun. Currently I am using Home Assistant, an incredibly powerful piece of software for automating your home. Regularly I am combining the home automation experiences with security. Home automation is often related to physical things such as changing lights, moving curtains, opening door locks or turning the car heating on. So if you find security issues in home automation stuff, it often directly has its effects on something in the physical world. Which is interesting, isn’t it? 😀

MQTT

In my home I am using a MQTT service. MQTT (Message Queuing Telemetry Transport) is a protocol which is widely used in the Internet-of-Things. In a nutshell: it is a lightweight protocol that consists of channels. The MQTT clients can subscribe and/or publish to these channels, to read or share messages. So one client would send a message to the channel, while another client waits for such a message to perform whatever behavior.

In my home MQTT is used for the Zigbee2mqtt application. Zigbee2mqtt sends all Zigbee communication onto the MQTT service. Home Assistant is reading and writing on the MQTT service. This allows me to control all the Zigbee devices through Home Assistant, such as my lights (bye bye Philips Hue, Ikea and other proprietary Zigbee hubs❤️).

Risks

Like mentioned, MQTT is definitely useful in home automation setups. And therefor it is often used for a variety of use cases. However, it also introduces new risks. Especially when someone is exposing their MQTT services to the internet without knowing it.

In this blog I want to mention a couple of real-life scenario’s that I was able to identify, by just searching for MQTT services that are currently being exposed to the internet, probably without the users even knowing it…

For an attacker it is easy to find MQTT services that are exposed to the internet: the website shodan.io scans the internet for services, such as MQTT, and makes it very easy to search through them.

Scenario #1: someone is watching you…

MQTT is often used to distribute location information, such as GPS coordinates. Imagine the following setup: a phone sends its location information to an MQTT service. Home automation software, such as Home Assistant, reads all the information from the channel. This allows the home automation service to know where devices (and their owners) are. This is great for presence detection, actually a very important component when doing home automation (e.g. turn the alarm on when somebody leaves home).

A popular application to do so is Owntracks. By doing some simple searches I was able to identify almost 400 MQTT services that have something to do with Owntracks…

So lets take one MQTT service as an example. Its fairly easy to make a connection. A simple Python script allows you to connect to an MQTT service without credentials. After connecting to this specific service, I was a little bit surprised how quickly I could track someone down. After connecting to the server, I was able to determine the following:

  • Full names of 3 individuals
  • The real-time location of those persons
  • Whether the persons were in the ‘Home’ zone
  • Profile pictures of the users
  • Two car brands, that were also connected through MQTT
  • Vacuum cleaner status
  • And some other weird stuff 🙂

Here is an example of an actual message, containing location information of an individual:

By simply Googling the names and comparing the profile pictures found in the MQTT server and on social media, it was possible to find the correct people. I contacted them to let them know their MQTT server was wide open…

Scenario #2: pwning a computer through MQTT

One of the recent Home Assistant updates mentioned an interesting internet-of-things application called iotlink. This tool allows a home automation user to connect its computer to Home Assistant. And guess what: through MQTT, the application allows someone to control its computer using Home Assistant. For example, rebooting the system, obtaining a screenshot, etc.

In other words: the connected computer is listening to the MQTT channel waiting for commands. The question is: does the tool also allow us to perform command execution? By looking into the documentation, I found out that this is actually a feature. Any application can be run using iotlink, even in a hidden mode (== hidden backdoors 😍).

In have setup a test environment with an MQTT service, Home Assistant and a host connected through iotlink. By publishing a specific payload onto the correct MQTT channel, it is possible to turn the MQTT access into code execution on the connected host:

Topic

iotlink/workgroup/<computername>/commands/run

 

Payload

{ “command”: “calc.exe”, “args”: “”, “path”: “”, “user”: “”, “visible”: true, “fallback”: true }

 

The result:

So, when having access to an MQTT service that is being used for iotlink, it could even lead to someone compromising your computer. By doing some simple searches, I found (luckily) just 13 MQTT services that have iotlink devices connected.

Scenario #3: pwning your camera’s

During my searches I found a couple of Home Assistant related MQTT services that had some other interesting behavior. The MQTT channels were displaying camera information. More specifically, they were displaying all the attribute information of a Home Assistant camera component. The problem: the attribute also contains an ‘access_token’. This access_token can be used against the Home Assistant web interface to view the camera.

Example data

hass/out b'{“event_type”: “state_changed”, “event_data”: {“entity_id”: “camera.reolink_e1_pro_profile000_mainstream”, “old_state”: {“entity_id”: “camera.reolink_e1_pro_profile000_mainstream”, “state”: “idle”, “attributes”: {“access_token”: “777777777777777777777777777777777777777777777777777“, “friendly_name”: “Reolink_E1_Pro – Profile000_MainStream”, “entity_picture”: “/api/camera_proxy/camera.reolink_e1_pro_profile000_mainstream?token=777777777777777777777777777777777777777777777777777“, “supported_features”: 2}

 

A simple search shows that currently there are about 539 Home Assistant MQTT services online.

If someone is able to obtain the access token through MQTT, and the Home Assistant web interface is also available to the attacker, he is able to view the camera of the home. Especially if the camera is inside the home, this is probably something you want to prevent.

Conclusion

Home automation is fun! But please be careful exposing your services (directly) to the internet. In this blog I mentioned just a couple of examples for MQTT, but there are loads of services and other scenario’s that could result in similar issues.

Sometimes the ease of access can leak quite some personal information, or even lead to direct access to your workstation. Once you want to make things directly accessible via internet make sure it has authentication.

Blogs

Attic versie 2023.9.0 - Release Notes

- 21 sep 2023
Een nieuwe Attic #release bomvol nieuwe checks, geïnspireerd door de #CIS Benchmark voor #Microsoft365. Deze release zit vol met nieuwe Checks en Fixes. Want we zijn hard bezig om te zorgen dat Attic “CIS-certified” raakt als assessment tool voor Microsoft365 en hebben nu bijna alle checks gebouwd die daarvoor nog nodig waren. Daarnaast is er […] Lees verder

Microsoft Sentinel: Wapen tegen Cyberdreigingen

Erik Remmelzwaal - 19 sep 2023
In de wereld van cybersecurity sta je voor een belangrijke uitdaging: het beschermen van je organisatie tegen digitale bedreigingen. Gelukkig is er een krachtig hulpmiddel tot je beschikking: Microsoft Sentinel. Wij praten er veel over vanwege onze dienstverlening, maar wat is het nu eigenlijk? in dit blog deel ik graag mijn inzichten met jou, zodat je een solide basisbegrip krijgt van wat dit product is en hoe je het kunt inzetten. Lees verder

Door NIS2 moet je iets gaan doen wat je nu nog niet doet...

Erik Remmelzwaal - 03 aug 2023
Als je onder een steen hebt geleefd: NIS2 komt eraan. De 2e versie van de Network and Information Security richtlijn van de EU. Het duurt nog even voordat dit in Nederlandse wetgeving is omgezet en daarin kunnen nog belangrijke details gaan schuiven, maar in grote lijnen weten we wat er op ons af komt. Door […] Lees verder

5 tips voor MKB'ers om zichzelf weerbaar te  maken tegen misleiding via internet

- 21 jul 2023
In de digitale wereld worden MKB’ers steeds vaker geconfronteerd met de dreiging van social engineering. In deze blogpost delen we waardevolle inzichten over twee veelvoorkomende vormen van social engineering, phishing en CEO-fraude. We benadrukken echter de praktische tips die MKB’ers kunnen volgen om zichzelf effectief te beschermen tegen deze cyberdreigingen. Phishing en CEO-fraude Phishing omvat […] Lees verder

Using MiTMProxy as a scriptable pre-proxy for BurpSuite

Rik van Duijn - 11 jul 2023
TLDR: you can use mitmproxy to modify stuff before it sent to Burp Proxy. Instruction below. Recently we were asked to asses a oldschool Java client server application. After configuring BurpSuite as a proxy and trusting the CA cert, we noticed the client communication still gave an error. It turned out the client and server […] Lees verder

Wat leren we uit het NCTV Cybersecuritybeeld en Verizon DBIR 2023

Zolder B.V. - 04 jul 2023
De samengestelde conclusie die ik haal uit CSBN en DBIR is dat organisaties (nog steeds) vooral slachtoffer worden via gelekte inloggegevens en e-mail en dat ze datalekken bijna altijd kunnen voorkomen door het implementeren van basismaatregelen. En de basismaatregel die past bij gelekte inloggegevens is Multi-Factor Authentication (MFA). Lees verder

Weerbaar tegen CEO-Fraude met Logs in Microsoft365

Erik Remmelzwaal - 22 jun 2023
Veel organisaties kunnen maar 7 dagen terugkijken in hun Microsoft365 logboeken. Veel te weinig, om adequaat te reageren op incidenten zoals CEO-Fraude en Ransomware. Belangrijk dus om te begrijpen welke mogelijkheden er zijn om die termijn uit te breiden. Lees verder

Attic voor de zorg: De toekomst van beveiliging met partnerschap Z-CERT

- 06 jun 2023
Attic voor de zorg is momenteel in ontwikkeling. We richten ons vooral op de toekomstige beschikbaarheid van deze krachtige beveiligingsoplossing en we nodigen zorginstellingen uit om deel te nemen aan onze beta-testfase. Partnerschap met Z-CERT In samenwerking met Z-CERT, de toonaangevende leverancier van dreigingsinformatie in de Nederlandse zorgsector, biedt Attic voor de zorg een unieke […] Lees verder

Verbeteringen in API's en toekomstige wijzigingen bij Attic

- 24 mei 2023
Microsoft heeft recentelijk enkele verbeteringen doorgevoerd in de API’s die toegang verlenen tot uw tenant. GDAP Op dit moment maakt Attic gebruik van DAP, oftewel Delegated Admin Privileges, om toegang te verkrijgen tot uw omgeving. Microsoft heeft onlangs een verbeterde versie van deze functionaliteit geïntroduceerd, genaamd GDAP, oftewel granular delegated admin privileges. Deze nieuwe versie […] Lees verder

Attic voegt website clone monitor toe

Wesley Neelen - 08 mei 2023
Attic is een krachtig platform wat heel veel mogelijkheden biedt. Attic is modulair opgebouwd zodat het platform aangevuld kan worden met extra diensten, ontwikkeld door Zolder, maar in de toekomst ook door externe leveranciers. Enkele maanden geleden heb ik een gratis applicatie gelanceerd genaamd didsomeoneclone.me. Deze service is gebaseerd op Microsoft Azure en volledig cloud […] Lees verder

Attic als SOC

Zolder B.V. - 11 apr 2023
Bijna is het zover: roadmap-technisch naderen we het punt dat we de koppeling van Attic met Microsoft Sentinel gaan afronden. En daarmee de gelegenheid om op grote schaal organisaties te voorzien van een betaalbare SOC dienst. Tijdens onze deelname aan de RSA conferentie zullen we bezoekers van onze stand en website aanbieden zich alvast te […] Lees verder

Internetoplichters richten pijlen op Hockeyvereniging

Erik Remmelzwaal - 10 mrt 2023
De penningmeester van Hockeyclub Zevenbergen ontving een poging tot oplichting. Gelukkig werd het herkend, maar zal dat overal gebeuren, nu internetoplichters hun pijlen blijkbaar op sportverenigingen hebben gericht? Lees verder

Microsoft Digital Defense Report

Erik Remmelzwaal - 14 nov 2022
Het Digital Defense Report 2022 van Microsoft is uitgekomen. Wat zijn de highlights en key takeaways? Lees verder

TBX2022 Throwback & Masterclass

Erik Remmelzwaal - 07 nov 2022
Op 2 en 3 november vond in de Jaarbeurs Utrecht de TBX2022 beurs plaats. Zolder was net als vorig jaar aanwezig als exposant, en was op beide dagen de host van een masterclass. Ons voornaamste doel was om ons nieuwe propositie van Attic for MSPs bekend te maken. Met deze nieuwe release, stellen we andere […] Lees verder

Hacking my Helium Crypto Miner

Wesley Neelen - 05 sep 2022
Recently I came across an interesting cryptocurrency project called Helium. Its a wireless network built by people all around the world. The people that help expanding the network by adding a hotspot receive the Helium cryptocurrency coin by providing the coverage. During my research I decided to order one of those Helium miners. I ordered […] Lees verder

PEN-300 / OSEP review

Wesley Neelen - 19 jul 2022
This year I decided to start a new study, the PEN-300 course of Offensive Security. In 2012 I did the OSCP course and in 2013 OSCE. In 2016 I took the OSEE class in Vegas, unfortunately never took the exam (one of my biggest mistakes ever🥴). I liked all the courses very much at that […] Lees verder

Deze 3 misverstanden blokkeren het ontwikkelen van cyberweerbaarheid

Zolder B.V. - 04 jul 2022
Het NCTV heeft weer het jaarlijkse Cybersecuritybeeld Nederland gepubliceerd. Het CSBN-2022. Mooie aanleiding om eens op te schrijven waar ik al langer mee in mijn hoofd zit. Drie hardnekkige en foute aannames die mensen hebben bij digitale dreigingen. Drie misverstanden dus, die in mijn ervaring de belangrijkste reden zijn dat we nauwelijks vooruit komen met […] Lees verder

Cyberweerbaarheid en Operational Technology

Erik Remmelzwaal - 02 jun 2022
Onlangs nam Erik Remmelzwaal, co-owner en Managing Director van Zolder BV, deel aan een tafelgesprek van Data Value Center – Smart Industry (DVC-SI). Het thema was Cyberweerbaarheid en Operational Technology, en het gesprek werd opgenomen in de campus van Breda Robotics, waar Zolder lid van is. De opname is inmiddels beschikbaar en terug te kijken […] Lees verder

Detecting MFASweep using Azure Sentinel

Zolder B.V. - 01 nov 2021
Many companies are using cloud services such as Microsoft 365 for email, file sharing and communicating. If an attacker gains access to valid credentials that allows them to authenticate to the account, all information within the account is usually instantly accessible. Therefor, implementing multi factor authentication is one of the most important steps while securing […] Lees verder

Public SharePoint sites - the new open shares

Wesley Neelen - 16 sep 2021
During one of our engagements we were investigating a Microsoft 365 environment. My colleague Rik discovered that many SharePoint sites were publicly available within the organization. We were surprised by the amount sites that were wide open this way. A lot of sensitive information was located on those sites, for example PII-information and passwords for […] Lees verder