Certificate Transparency als Quelle für Subdomains

Wir waren dieses Jahr viel beschäftigt, aber dennoch möchten wir ein kleines Projekt vorstellen, dessen Ideen Sebastian im Urlaub kam: Das Erstellen einer Subdomain-Liste anhand der Certificate Transparency Logs. Die gesammelten Daten teilen wir natürlich mit der Community und bereiten sie automatisch stündlich neu auf.

Certificate Transparency ist ein Projekt von Google, dass die Überwachung von ausgestellten SSL/TLS-Zertifikaten übernimmt, um beispielsweise falsch ausgestellte Zertifikate erkennen und widerrufen zu können. Certificate Authorities sind angehalten ihre ausgestellten Zertifikate in den öffentlich zugänglichen Logs zu protokollieren. So findet man zum Beispiel alle Zertifikate der Internetwache.org.

In diesen Logs befinden sich die Informationen zum gesamten Zertifikat, d.h. auch die Domain, für die es gilt. Seit dem Start von Let’s Encrypt können schnell, einfach und kostenlos Zertifikate generiert und eingebunden werden. Allerdings unterstützt Let’s Encrypt bisher noch keine Wildcards - diese kommen erst im Januar 2018 zum Einsatz. Noch muss bei Let’s Encrypt also jede Subdomain explizit im Zertifikat genannt sein. Dies wiederum bedeutet, dass Subdomains, dessen Existenz man bisher nicht vermuten konnte (z.B. xyz-asd.domain.tld), nun einfach zu entdecken sind.

Aus Sicht eines Hackers kann das durchaus von Interesse sein. Sebastians Idee bestand darin, mit dem Python-Modul certstream auf Log-Updates der Certificate Transparency zu horchen, aus den geparsten Zertifikaten die Subdomains zu extrahieren und in eine Datenbank einzupflegen. Um diese Subdomains der Häufigkeit nach zu sortieren, wird außerdem ein Zähler mit gespeichert. Ganz automatisiert werden die Top 100/1000/10,000/100,000 Domains stündlich ins GitHub Repository “CT_Subdomains” exportiert.

Die Einträge sehen folgendermaßen aus:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Generated 2017-12-11 11:00:01.087903
count,subdomain
8529329,*
3573653,www
779370,mail
507273,webdisk
497893,webmail
480967,cpanel
178293,autodiscover
21955,dev
19415,blog
18989,m
18518,test
16513,shop
15859,whm
10483,api
10236,admin
9341,com
7521,mdp
7484,staging
7370,cloud
7173,demo
6667,app
6275,tls
6070,eu
5882,mbox12
5223,store

Link zum GitHub Repository “CT_subdomains”

Diese Liste könnte zum Beispiel als Eingabe für DNS-Reconnaissance Tools, wie gobuster usw. nützlich sein.

Es gab bereits einige Beiträge darüber wie Certificate Transparency Websicherheit gefährden kann, beispielsweise von Hanno Boeck auf der DEF CON 25

Das Team der Internetwache.org