Zum Hauptinhalt Zur Navigation

Subdomain Takeover: Verwaiste Domains einfach übernehmen

Subdomain Takeover wird in der IT-Security - und Hacker -Szene immer beliebter. Denn mit der einfachen Übernahme einer verwaisten Subdomain lassen sich schöne Angriffe durchführen oder Bug Bountys von Unternehmen einstreichen.
/ Moritz Tremmel
16 Kommentare News folgen (öffnet im neuen Fenster)
Subdomain Takeover bietet viele Angriffsmöglichkeiten. (Bild: Public Domain/Montage: Golem.de)
Subdomain Takeover bietet viele Angriffsmöglichkeiten. Bild: Public Domain/Montage: Golem.de

Verwaiste Subdomains und Domains findet man zu Tausenden im Netz. Sie zeigen auf nicht mehr aktive Dienste und geben bestenfalls eine Fehlermeldung aus. Nicht selten lassen sie sich mit ein paar Klicks und Tastaturanschlägen übernehmen. Betroffen sind immer wieder auch große Unternehmen und Konzerne wie Uber oder bekannte Persönlichkeiten wie der US-Präsident Donald Trump.

Wie funktioniert Subdomain Takeover?

Stellen wir uns den fiktiven Konzern E Corp vor. Dessen hiesiger Ableger möchte Ecoins, den Bitcoin-Konkurrenten des Konzerns, in einem Internetshop anbieten. E Corp entschließt sich, den Onlineshop nicht selbst zu betreiben, sondern greift hierzu auf die Dienste von Shopify zurück.

Damit der Shop auch unter der offiziellen Domain von E Corp erreichbar ist, erstellt die IT des Konzerns die Subdomain, die mittels eines CNAME-Eintrags im Domain Name System (DNS) auf die Shopify-Seite umleitet. E-Corp-Kunden, die shop.ecorp-germany.de aufrufen, werden so im Hintergrund unbemerkt auf den Shop bei Shopify geführt, der weiterhin wie eine "echte" E-Corp-Seite unter der offiziellen Domain im Browser angesurft wird.

Subdomain Takeover – Interview mit Moritz Tremmel
Subdomain Takeover – Interview mit Moritz Tremmel (08:08)

Zwei Jahre lang bietet E Corp seine Produkte über den Shop an. Der erhoffte Erfolg von Ecoin bleibt jedoch aus. Deshalb schließt E Corp den Shop, vergisst dabei aber, auch den CNAME-Eintrag im DNS zu löschen.

Kurze Zeit später finden Hacker die verwaiste Subdomain. Mit nur wenigen Klicks erstellen sie einen Shopify-Account und hinterlegen die Subdomain shop.ecorp-germany.de im Shopify-Backend. Da der CNAME-Eintrag immer noch auf Shopify verweist, können die Hacker ihre Shopify-Seite unter der offiziellen Subdomain von E Corp betreiben.

Im besten Fall für E Corp melden sich die Hacker und erheischen einen Bug Bounty als Belohnung für die gefundene Sicherheitslücke. Im schlechtesten Fall spielen sie unter der echten Subdomain Schadsoftware aus oder nutzen sie als Ausgangspunkt für weitere Attacken gegen E Corp.

Lukrativ für Bug-Bounty-Jäger

Es passiert recht häufig, dass Unternehmen Cloud-Dienste kündigen, aber das Löschen der dazugehörigen DNS-Einträge vergessen. Denn anders als für Cloud-Dienste gehen für einen DNS-Eintrag keine monatlichen Rechnungen ein. Das Unternehmen wird also nicht daran erinnert, dass da noch etwas ist, das man löschen sollte. Ein vergessener DNS-Eintrag kann richtig teuer werden. Nicht nur Black Hats, sondern auch Bug-Bounty-Jäger reiben sich die Hände.

Viele der namhaften Bug-Bounty-Plattformen listen Subdomain Takeover bereits explizit als Bounty-Kategorie auf. Auf Github findet man etliche Tools, die das Scannen nach verwaisten Subdomains automatisieren oder beim Erstellen von Proof of Concepts (PoC) helfen, die man anschließend beim Bug-Bounty-Programm seiner Wahl oder dem betroffenen Unternehmen einreichen kann. Das ist durchaus lukrativ: Die Bountys liegen oft im vierstelligen Bereich.

Die recht hohen Beträge scheinen gerechtfertigt, wenn man einen Blick auf die Gefahren wirft. Eine Phishing-Kampagne unter der echten Domain eines Unternehmens dürfte der Traum eines jeden Phishers sein. Die Nutzer können schlicht nicht unterscheiden, ob sie es mit dem echten, legitimen Service zu tun haben oder nicht. Der mögliche Schaden ist also nicht nur für die Nutzer groß, sondern auch für die Reputation des betroffenen Unternehmens. Ähnlich unangenehm dürfte der Verkauf von Produkten unter der echten Domain sein, wenn diese nie geliefert werden.

Viele Cloud-Dienste sind betroffen

Subdomain Takeover ist nicht nur bei verwaisten Onlineshops möglich, sondern auch bei einer ganzen Reihe von Cloud-Providern. Diese erlauben es häufig, ihre Dienste mittels CNAME-Eintrag unter der eigenen, externen Domain zu betreiben. Löscht man den jeweiligen Dienst des Cloud-Providers und vergisst, wie im obigen Shopify-Beispiel, den CNAME-Eintrag zu löschen, kann die verwaiste Subdomain nach dem gleichen Prinzip übernommen werden.

Betroffen sind unter anderem der kommerzielle Ableger von Wordpress, wordpress.com(öffnet im neuen Fenster) , die Github-Projekt-Webseiten (Github Pages) unter github.io(öffnet im neuen Fenster) , die Kundensupport-Plattformen desk.com(öffnet im neuen Fenster) und zendesk.com(öffnet im neuen Fenster) , Microsoft-Azure-Webseiten und Cloud-Apps, Amazons Speicherdienst S3, die Content Delivery Networks fastly, Amazon Cloudfront und unzählige weitere. Die betroffenen Kunden folgen dem Trend, immer mehr Dienste zu externalisieren und dennoch unter der eigenen Subdomain zu betreiben.

DNS-Cloud-Services übernehmen

Eine Besonderheit im Cloud-Business sind DNS-Services, wie sie von Route 53 (Amazon), Rackspace oder Digital Ocean angeboten werden. Auch hier können verwaiste Domains übernommen werden, allerdings nicht nur ein CNAME-Eintrag einer Subdomain, sondern der komplette DNS.

Eine verwaiste Route-53-Domain findet man durch herkömmliche DNS-Abfragen. Diese müssen einen "SERVFAIL" ausgeben und die Nameserver von Route 53 verwenden. Will man die Domain übernehmen, legt man mittels eines AWS-Accounts (Amazon Web Services) DNS-Zonen mit den gleichen vier Nameservern an, die auch im DNS hinterlegt sind. Die vier Nameserver können dabei über verschiedene Zonen verteilt und mit falschen Nameservern kombiniert sein. Anschließend kann der DNS der Domain übernommen und es können beliebige DNS-Records angelegt werden.

Der Sicherheitsforscher und Bug-Bounty-Jäger Matthew Bryant konnte mit dieser Technik 120.000 gefährdete Domains bei Route 53, Google Cloud, Rackspace und Digital Ocean nachweisen.

Subdomain Takeover bietet viele Angriffsmöglichkeiten

Manchmal reicht den Hackern aber auch das einfache Trollen. So geschehen(öffnet im neuen Fenster) mit der übernommenen Subdomain secure2.donaldjtrump.com(öffnet im neuen Fenster) des US-Präsidenten, auf der ein irakischer Hacker einen "Gruß" hinterließ.

Möglich ist auch das Einbinden von Scareware, Mining- oder Schadsoftware. Sie kann sich auch auf andere Webseiten ausbreiten, wenn alte, verwaiste Einbindungen wiederbelebt werden. Wurde beispielsweise ein Skript von shop.ecorp-germany.de unter ecorp-germany.de eingebunden, die Einbindung aber nie aus der Webseite entfernt, kann sie vom neuen Subdomain-Betreiber wiederbelebt werden. Anstelle des ursprünglichen Skripts kann Schadsoftware platziert werden, die auf der Hauptdomain eingebunden und ausgeführt wird.

Die praktische Relevanz dieses Szenarios konnte der Sicherheitsforscher und Golem.de-Autor Hanno Böck im vergangenen Jahr zeigen . Er fand unter anderem verwaiste Yahoo-Analytics-Einbindungen auf Flickr. Yahoo Analytics war bereits 2012 eingestellt worden. Er konnte zudem eine Azure-Subdomain übernehmen, die in mehrere Webseiten eingebunden war. Auf diesen konnte er durch die reaktivierten Einbindungen Veränderungen vornehmen – unter anderem die Hintergrundfarbe der Webseite einer Lokalzeitung auf Pink setzen.

Noch drastischer ist die Möglichkeit, Cookies von der Hauptdomain oder anderen Subdomains abzugreifen. Die Cookies sind zwar zwischen unterschiedlichen Subdomains und Domains getrennt (same-origin policy5), allerdings teilen viele Domains Cookies mit ihren Subdomains. So werden beispielsweise Single-Sign-On-Dienste (SSO) über Subdomains realisiert. Sowohl beim Netzwerkausrüster Ubiquiti als auch bei Uber konnten mittels Subdomain Takeover Session-Cookies abgegriffen und damit Sessions übernommen werden.

Wie schütze ich mich gegen Subdomain Takeover?

Ein offensichtlicher Schutz gegen Subdomain Takeover ist das Löschen der DNS-Einträge, bevor die Seite bei einem Cloud-Provider offline genommen wird. Umgekehrt sollten DNS-Einträge erst erstellt werden, wenn man die entsprechenden Services beim Anbieter registriert hat. Dennoch sollten die DNS-Einträge regelmäßig gesichtet werden, um Gefährdungen möglichst schnell zu beseitigen. Noch sicherer ist es natürlich, keine externen Services einzubinden, was man sich im Selbsthosting allerdings mit weiterer zu pflegender Software erkauft.

Noch ist es bei vielen Cloud-Providern viel zu einfach, Subdomains zu übernehmen. Bei Shopify muss man sich nur registrieren und die verwaiste Domain beanspruchen. Bei AWS ist es etwas komplizierter, aber auch relativ problemlos möglich. Würden die Anbieter vor der Freischaltung von Subdomains prüfen, ob sie bereits im CNAME- oder Nameserver-Eintrag stehen und in diesem Fall den bereits hinterlegten Server nicht mehr akzeptieren, sondern eine Serveränderung verlangen, wäre das Übernehmen von Subdomains nicht mehr ohne weiteres möglich.

Alternativ kann die Domain verifiziert werden. Gitlab8 hat das beispielsweise über einen TXT-Eintrag im DNS realisiert. Manchmal kann Sicherheit so einfach sein.


Relevante Themen