
Wer sich mit IT Security befasst, kommt an den OWASP Top 10 nicht vorbei. Die Non-Profit-Organisation Open Web Application Security
Die Organisation pro-russischer Hackergruppen wie Killnet in Telegram-Gruppen wirft die Frage auf, ob man über Telegram Nutzerdaten herausfinden kann. Wir stellen in diesem Artikel zwei Proof of Concepts vor, durch die Telegram Nutzer de-anonymisiert werden können.
Der Krieg in der Ukraine hat zu einer Zunahme von pro-russischen Hackerangriffen auf westliche Behörden und Unternehmen geführt. Um diesen Angriffen entgegenzuwirken, hat ProSec den Live Attack Parser entwickelt. Dieser Parser scannt die Telegram Gruppen der Angreifer und liefert so Informationen über geplante Angriffe. Dies bietet Unternehmen die Möglichkeit, sich besser gegen geplante Angriffe zu schützen.
Bei der Untersuchung der Telegram Gruppen stellte sich heraus, dass diese hauptsächlich über eine Reihe Untergruppierungen von Killnet organisiert werden, meist geleitet von Gruppenleitern. Daraus ergab sich für uns folgende Frage: Kann man über Telegram Nutzerdaten herausfinden, um so die für Cyberattacken verantwortlichen Nutzer zu deanonymisieren?
Alle vorgestellten Proof of Concepts wurden im August 2022 entwickelt. Zum aktuellen Zeitpunkt (Januar 2023) sind alle PoC’s weiterhin funktionstüchtig.
Grundsätzlich nutzen die Proof of Concepts das Problem aus, dass Telegram keine Kontaktanfragen-Funktion hat und es somit ermöglicht, über einige Wege anhand der Handynummer an Daten wie den Usernamen zu kommen. Hierzu werden das schlecht implementierte Handling von URIs und die personalisierten t.me Links verwendet. Diese erlauben es, andere Nutzer über den Username oder die Telefonnummer zu kontaktieren.
Voraussetzung hierfür ist, dass die Zielperson/ der Nutzer die Einstellung „Wer mich unter meiner Nummer finden kann“ auf „Jeder“ gestellt hat.
Die Einstellung „Wer darf meine Nummer sehen“ ist hierbei irrelevant, da die Nummer über die URI/API aufgelöst wird. Es ist somit egal, ob sie in der App angezeigt werden darf, da man die Anfrage zur Antwort korrelieren kann. Beim Enumerieren der Telegram-Anwendungen ist jedoch zu beachten, dass diese teils sehr instabil sind und daher oftmals unzuverlässige Ergebnisse liefern. Daher sollten die Scan-Ergebnisse mehrmals validiert werden, um eine genaue Aussage treffen zu können.
Zusätzlich ist es möglich, über gemeinsame Gruppen oder den hinzugefügten Kontakt der Zielperson die gefunden Nummer zu validieren.
Die Vorgehensweisen der User Deanonymization über die Web und Desktop Applikation sind sich sehr ähnlich, da sie beide die URI zur Auflösung der angeforderten Nummer verwenden.
Der Hauptunterschied liegt darin, dass die Web App die URI als URL encodierte Query entgegennimmt und die Desktop App direkt über die tg:// URI aufgerufen wird.
Sobald man die Anfrage über einen Browser sendet, wird man jeweils auf die Web oder Desktop Applikation weitergeleitet. Falls die angeforderte Nummer existiert, wird der Chat geöffnet. Andernfalls erscheint der Hinweis „<number> Not Found“.
Da Telegram den Zugriff auf besagte URI’s über Desktop Web Apps aktuell nicht limitiert, kann man beliebig viele Anfragen senden. So kann man Nummern bruteforcen und diese anschließend beispielsweise anhand von gemeinsamen Gruppen oder (falls vorhanden) dem Benutzernamen korrelieren.
Im Falle der Enumeration über die Web Applikation ist die Anzahl der gesendeten Anfragen allerdings recht hoch und somit relativ auffällig. Anfragen könnten hierbei leicht von einer Web Application Firewall (WAF) erkannt und blockiert werden.
Bei der Enumeration über die Desktop Applikation hat man besagtes Problem nicht, da man nur indirekt Anfragen an die Web Infrastruktur von Telegram sendet. Allerdings gestaltet sich hier das Response Handling deutlich umständlicher, da man nicht mit HTTP Responses arbeiten kann. Das schränkt auch die Geschwindigkeit deutlich ein.
Telethon ist eine Python-Bibliothek, die es ermöglicht, indirekt mit der API von Telegram zu interagieren. Sie stellt eine Reihe von Funktionen bereit, um Nutzer-Informationen abzufragen.
Dazu zählt die „ImportContactsRequest“, welche es erlaubt, Nutzer über eine Telefonnummer zu den eigenen Telegram Kontakten hinzuzufügen. Anschließend ist es möglich, über die get_entity Funktion eine Reihe von Nutzerdaten anzufragen – beispielsweise Username und Profilbild.
Die Telethon API bietet zwei Vorteile. Zum einen ist es deutlich einfacher, die entstehenden Datensätze weiter zu verarbeiten. Zum anderen erhält man eine Reihe weiterer nützlichen Informationen wie beispielsweise den Language Code des angeforderten Nutzers, falls dieser gesetzt ist.
Allerdings ist diese API Schnittstelle stark eingeschränkt: Nach einer bestimmten Anzahl von Anfragen an die API wird man vorübergehend geblockt. Das macht das effektive Enumerieren von Nummern aktuell fast unmöglich.
Alle vorgestellten Proof of Concepts sind dazu geeignet, Telegram Nutzerdaten herauszufinden. Bei der Entscheidung für eines der PoC ist relevant, wie viele Ressourcen zur Verfügung stehen, um so viele Nummern wie möglich aufzulösen. Es spielt auch eine Rolle, wie die Nummern generiert werden. Beispielsweise wäre es möglich, mit speziellen Präfixen effektiver zu bruteforcen, wenn es Informationen darüber gäbe, wo sich das Ziel möglicherweise befindet.
Es bleibt die Frage, wie Telegram in Zukunft mit solchen Funktionen umgehen wird, um möglichen Angriffen auf die Privatsphäre seiner Nutzer entgegenzuwirken. Dies würde sich natürlich auf die Funktionalität der vorgestellten Proof Of Concepts auswirken.
Wer sich mit IT Security befasst, kommt an den OWASP Top 10 nicht vorbei. Die Non-Profit-Organisation Open Web Application Security
Burp Suite von Portswigger und OWASP ZAP sind beides Programme mit einem Proxy-Server, welche auf deinem lokalen Gerät laufen. Mit
Unser Mitgründer Immanuel war zu Gast bei Radio Bonn/ Rhein-Sieg und hat dem Moderatoren-Team Nico Jansen und Jasmin Lenz und