René
Moderator
- Berichten
- 9.922
- Internet
- Netrebel
12.5.8007.S15.Ziggo en kort daarna 12.5.8008.S15.ZIGGO
Ziggo deelt meestal geen release notes, dus valt er ook weinig te melden.
In dit geval kan ik echter wel iets interessants melden. Deze update verhelpt namelijk een zeer slordig beveiligingslek welke in versie 12.5.3208 zit.
Dit lek kwam ik bij toeval tegen en heb ik gemeld bij de security afdeling van Ziggo.
Er is adequaat gehandeld maar het heeft wel lang geduurd (melding was november 2020). Het lek is verholpen in deze nieuwe release, welke ik ook heb mogen testen.
Over het beveiligingslek
Dit modem beschikt over een interne API welke aangeroepen wordt middels deze URL:
http://192.168.100.1/htdocs/ubee_php_lib/ubee_php_post.php
Met deze API kun je alle management taken op het modem uitvoeren. Dit wordt in de GUI gebruikt om via javascript diverse taken uit te voeren.
Het probleem was dat deze API direct aangeroepen kon worden zonder enige vorm van authenticatie.
Dit was echter niet direct zichtbaar omdat er wel authenticatie plaats vond op de GUI zelf.
Door een beetje de broncode van de verschillende pagina's te bekijken kun je al vrij snel iets simpels uitvoeren, bijvoorbeeld een functie zoals deze:
Code:
<script type='text/javascript' src="js/ubee_apis.js"></script>
jfunction ubee_js_mgt_default_page_submit() {
var jsonObj = new Object();
jsonObj.mgt_default_reset = 0x01;
ubee_jscript_submit_via_post(jsonObj);
}
Dit is een voorbeeldje waarmee je het modem reset. Niets schokkends, maar dit kan dus zonder enige vorm van authenticatie.
Bekijk je het bestand http://192.168.100.1/htdocs/js/ubee_apis.js goed, dan weet je alle commando's en kun je alle management taken uitvoeren zonder het wachtwoord van het modem te weten.
Ernst van deze kwetsbaarheid
Het risico valt op zich mee, omdat je niet zomaar remote bij elke Ubee kunt komen.
Wel is het mogelijk om een gerichte aanval op iemand te doen, waarbij je het slachtoffer naar een geprepareerde website lokt.
Zodra het slachtoffer op de geprepareerde website beland, wordt de code uitgevoerd. Er is dus verder geen interactie nodig. Dit heb ik ook aangetoond in een PoC.
Hiermee kun je bijvoorbeeld op afstand een portforward instellen naar 192.168.100.1:80. Als dat eenmaal gelukt is, kun je wel op afstand bij het modem komen en kun je zonder wachtwoord de API aanspreken en uitvoeren wat je maar wilt.
Verder wordt dit type modem veel zakelijk gebruikt. Dit zou betekenen dat de medewerkers op het interne netwerk vrij eenvoudig de volledige controle over modem kunnen krijgen.
Het is vooral een slordige fout. Dit is geen geavanceerde hack, het is gewoon de deur wagenwijd open laten staan. Zeer slecht getest als je het mij vraagt.
Laatst bewerkt: