Um die Bevölkerung zu motivieren, sich auch während des Lockdowns sportlich zu betätigen, wurden mehrere Projekte ins Leben gerufen. Eines davon, der “OneMillionRun”, fand am letzten Maiwochenende statt, mit folgendem Ziel: Gemeinsam 1'000'000 Kilometer zu Fuss zurücklegen. Die geleisteten Kilometer mussten natürlich online auf www.onemillionrun.ch im persönlichen Konto eingetragen werden.
Bruteforcing bei Swisscoms Internet-Box 2 – Swisscom Scripts Teil 1
Mit über 2 Millionen Internetanschlüssen gehört Swisscom zu den grössten ISP’s der Schweiz. Da ich mehr über Swisscom’s Geräte herausfinden wollte und weil die Swisscom ein Bug-Bounty-Programm anbietet, habe ich mir die Internet-Box 2 genauer angesehen.
Bei den Tests, die ich durchgeführt habe, habe ich zwar keine akuten Sicherheitslücken gefunden, jedoch ein paar interessante Methoden, um Informationen auszulesen. Aus zweien (bzw. drei) dieser Methoden habe ich zwei Python-Skrypte geschrieben. Jedoch werde ich in naher Zukunft noch weitere (kompliziertere) Skripte schreiben. Alle diese Skripte liegen in dem Github-Repository und stehen frei zur Verfügung.
Kleiner Zwischenteil: Die Skripte sind zwar keine richtigen Exploits, da keine richtige Sicherheitslücke zugrunde liegt, jedoch muss trotzdem gesagt werden, dass die Benutzung auf EIGENE GEFAHR erfolgt. Bruteforcing in fremden Netzwerken ist illegal.
Ich werde pro Skript einen Artikel schreiben. Dieser hier ist der erste und handelt über das Bruteforcing-Script.
Das Bruteforcing-Skript
Ich empfinde Bruteforceangriffe zwar als ziemlich primitiv, jedoch geht es hier streng genommen nicht um Bruteforcing, sondern um die Umgehung der Anmeldesperre bei zu vielen Fehlversuchen.
Die Internet-Box kommuniziert hauptsächlich durch XML und JSON mit der Weboberfläche. Die Verschiedenen Daten werden über HTTP angefragt. Einige der Funktionen benötigen eine Authentifizierung.
Ich weiss jedoch nicht, nach welchen Kriterien die Funktionen eingeordnet sind. Zum Beispiel benötigt die Abfrage der aktuellen Zeit eine Authentifizierung, während die Funktion zum Anzeigen aller verbundenen Geräte keine Authentifizierung benötigt….
Als ich die Weboberfläche untersucht habe, stach mir die Passwort zurücksetzen Funktion ins Auge. Diese Fragt nach dem aktuellen Passwort und nach jedem Tastenanschlag wird angezeigt, ob das Passwort richtig ist.
Die Untersuchung des Traffics zeigt an, dass die dazu benutze Funktion eine Andere ist als die beim Login. Zudem benötigt diese Funktion keine Authentifizierung.
Der Request
Der abgefangene Request sieht wie folgt aus:
POST /sysbus/UserManagement:authenticate HTTP/1.1
Host: 192.168.1.1
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://192.168.1.1/
Content-Type: application/x-sah-ws-1-call+json
X-Requested-With: XMLHttpRequest
Content-Length: 81
Connection: close
{"parameters":{"name":"admin","password":"strenggeheimesdochtrotzdemschlechtespasswort","groups":["http","admin"]}}
Die Anfrage mit HTTP POST an den UserManagement-Teil des Sysbus, der eben solche Sachen verwaltet. Im Body befindet sich der Benutzername, das Passwort und die Benutzergruppe im Json Format.
Wenn das korrekte Passwort in diesem Request gesendet wird, sendet die Internet-Box eine Antwort mit dem Status True zurück. Wenn dies über das Webinterface geschieht, wird das mit einem Häkchen angezeigt.
Da jedoch bei jedem Tastenanschlag ein solcher Request gesendet wird, habe ich vermutet, dass keine Beschränkung eingebaut sein kann und habe das ausprobiert.
Nach Überprüfung habe ich ein Python-Skript geschrieben, das auf Github frei zur Verfügung steht.
Fazit
Ich denke, diese “Lücke” zeigt gut, dass alle Zugänge zu einer bestimmten Funktion zwingend gleich gut gesichert sein sollten. Hier sollte man zum Beispiel eine Authentifizierung erzwingen, da diese Funktion ja ohnehin nur über die Passwort zurücksetzen Funktion gebraucht wird. Die Welt verändern wird es nicht….
- Rubrik:
- Swisscom scripts
News und andere interessante Sachen.
Blog.
Auf unserem Blog finden Sie interessante Artikel über von uns gefundene Sicherheitslücken, aktuelle Themen, Neuigkeiten und weiteres
Auf den Onlineshops der Digitec Galaxus AG befand sich eine Schwachstelle, die es ermöglichte, den vollen Namen eines beliebigen Kunden abzufragen. Benötigt wurde dazu nur die User-ID, die im Link zum jeweiligen Benutzerprofil zu finden ist. In diesem Beitrag schildere ich die Details zu dieser Lücke.