Blog

So übernehmen Sie eine Subdomain in Google Cloud DNS

Mark van Holsteijn

Aktualisiert Oktober 16, 2025
5 Minuten

Ein Angreifer kann Ihre DNS-Subdomäne in Google Cloud DNS übernehmen, wenn Sie auf eine verwaltete Zone in Cloud DNS verweisen, die nicht mehr existiert. In diesem Blog werde ich Ihnen zeigen, wie dies geschieht und wie Sie eine mögliche Fehlkonfiguration erkennen können. Mit Google Cloud DNS können Sie eine verwaltete Zone für jeden DNS-Domainnamen erstellen, auch für Domains, die Sie nicht besitzen. Wenn Sie eine verwaltete DNS-Zone erstellen, wird Ihre Domain einem von sieben Shards von Cloud DNS-Nameservern zugewiesen. Um einem Angreifer die Übernahme Ihrer Subdomain zu ermöglichen, gehen Sie wie folgt vor:

  • die dns-verwaltete Zone erstellen
  • den NS-Eintrag zur übergeordneten Domäne hinzufügen
  • die DNS-verwaltete Zone löschen
  • warten Sie auf den Angriff...
  • Angreifer erstellt dns-verwaltete Zone

Erstellen Sie die DNS-verwaltete Zone

Beginnen wir also mit der Erstellung der verwalteten Zone für die Subdomäne shop.binx.io.

gcloud dns managed-zones create shop-binx-io 
  --dns-name shop.binx.io 
  --format 'value(nameServers)'

ns-cloud-b1.googledomains.com.;ns-cloud-b2.googledomains.com.;ns-cloud-b3.googledomains.com.;ns-cloud-b4.googledomains.com.

Diese verwaltete Zone wird nun von Shard b der Google Cloud DNS-Nameserver bedient.

Zum Zeitpunkt der Erstellung dieses Artikels gibt es sechs Shards: ns-cloud-a bis ns-cloud-f.

den NS-Eintrag zur übergeordneten Domäne hinzufügen

Um diese verwaltete Zone zu aktivieren, fügen Sie die Nameserver zur verwalteten Zone von binx.io hinzu:

gcloud dns record-sets create shop.binx.io. 
  --type NS 
  --zone binx-io 
  --ttl 300 
  --rrdatas ns-cloud-b1.googledomains.com.,ns-cloud-b2.googledomains.com.;ns-cloud-b3.googledomains.com.;ns-cloud-b4.googledomains.com.

Jetzt löst Cloud DNS die Domain shop.binx.io mit unserer verwalteten Zone auf.

dig NS shop.binx.io
;shop.binx.io.               IN      NS

;; ANSWER SECTION:
shop.binx.io.        299   IN      NS      ns-cloud-b1.googledomains.com.
shop.binx.io.        299   IN      NS      ns-cloud-b4.googledomains.com.
shop.binx.io.        299   IN      NS      ns-cloud-b3.googledomains.com.
shop.binx.io.        299   IN      NS      ns-cloud-b2.googledomains.com.

die verwaltete Zone löschen

Dies ist der gefährliche Teil: Löschen Sie die verwaltete Zone, ohne den NS-Eintrag aus der übergeordneten Domäne zu entfernen.

gcloud dns managed-zones delete shop-binx-io 

Der Nameserver-Verweis ist jetzt ein hängender Verweis. DNS-Anfragen werden immer noch an den b Shard von Google Cloud DNS gesendet, aber es gibt dort keine Daten.

warten Sie auf den Angriff...

Jetzt ist es nur noch eine Frage der Zeit, bis jemand herausfindet, dass Ihre Subdomain nicht mehr aufgelöst wird. Und entdeckt, dass sie auf einen Google Cloud DNS-Nameserver zeigt.

Angreifer erstellt dns-verwaltete Zone

Der Angreifer muss nun nur noch die verwaltete Zone in seinem eigenen Projekt neu erstellen, bis Cloud DNS seine verwaltete Zone demselben Shard zuweist.

gcloud dns managed-zones create attempt-1 
  --dns-name shop.binx.io. 
  --format 'value(nameServers)'

ns-cloud-a1.googledomains.com.;ns-cloud-a2.googledomains.com.;ns-cloud-a3.googledomains.com.;ns-cloud-a4.googledomains.com

Miss! Das ist der Scherbenhaufen der Cloud DNS-Nameserver. Versuchen wir es noch einmal!

gcloud dns managed-zones create attempt-2 
  --dns-name shop.binx.io. 
  --format 'value(nameServers)'

ns-cloud-b1.googledomains.com.;ns-cloud-b2.googledomains.com.;ns-cloud-b3.googledomains.com.;ns-cloud-b4.googledomains.com

Bingo! Da es nur sechs Shards gibt, braucht es im Durchschnitt drei Versuche. Jetzt hat der Angreifer die Kontrolle über den DNS-Subdomänennamen shop.binx.io. Dies ermöglicht es dem Angreifer, Zertifikate zu generieren und den Datenverkehr auf eine bösartige Website umzuleiten. Beachten Sie, dass ein Angreifer Ihnen auch die Möglichkeit verweigern kann, eine verwaltete Zone für eine Subdomain zu erstellen, die Ihnen gehört. Wenn Sie sechs verwaltete Zonen für Ihren Domänennamen erstellen, gibt es keine Shards mehr, die Ihre Domäne bedienen können. Dies führt zu dem folgenden Fehler:

Die Domain 'shop.binx.io.' (oder ihre untergeordneten Domänen) ist möglicherweise bereits reserviert oder registriert, durch eine Richtlinie verboten oder es sind keine DNS-Nameserver-Shards mehr für den Namen vorhanden. Für weitere Informationen siehe https://cloud.google.com/dns/quotas#nameserver_limits

Überprüfung der organisatorischen Integrität von Cloud DNS

Um die Integrität der von Cloud DNS verwalteten Zonen in Ihrem Unternehmen zu überprüfen, können Sie den cloud-dns-integrity-checker verwenden. Er liest alle von DNS verwalteten Zonen in Ihrem Unternehmen und prüft die referenzielle Integrität der Nameservereinträge. t meldet:

  • Nameservereinträge, die im Internet nicht aufgelöst werden können.
  • Unstimmigkeiten zwischen definierten und tatsächlichen Nameservereinträgen.
  • doppelte verwaltete Zonen in der Organisation.
  • NS-Einträge ohne eine passende verwaltete Zone in der Organisation. Geben Sie zur Ausführung ein:
cloud-dns-integrity-checker -organization xebia.com

2022/01/17 21:17:21 INFO: checking DNS nameserver integrity for organization xebia.com
2022/01/17 21:17:22 INFO: checking nameserver integrity for somebody-else.google.binx.dev.
2022/01/17 21:17:22 ERROR: mismatch in nameserver configuration for managed zone somebody-else.google.binx.dev. for domain somebody-else-google-binx-dev in project speeltuin-mvanholsteijn. expected
    ns-cloud-c1.googledomains.com.
    ns-cloud-c2.googledomains.com.
    ns-cloud-c3.googledomains.com.
    ns-cloud-c4.googledomains.com.
got
    ns-cloud-b1.googledomains.com.
    ns-cloud-b2.googledomains.com.
    ns-cloud-b3.googledomains.com.
    ns-cloud-b4.googledomains.com.
2022/01/17 21:17:22 INFO: checking nameserver integrity for google.binx.dev.
2022/01/17 21:17:22 INFO: checking nameserver integrity for mismatch.google.binx.dev.
2022/01/17 21:17:23 ERROR: unresolved nameservers for domain mismatch.google.binx.dev. in managed zone google-binx-dev of project speeltuin-mvanholsteijn: lookup mismatch.google.binx.dev. on [fd00::2e91:abff:fea1:b7b6]:53: server misbehaving
2022/01/17 21:17:23 INFO: checking nameserver integrity for somebody-else.google.binx.dev.
2022/01/17 21:17:23 INFO: checking nameserver integrity for xke.xebia.com.
2022/01/17 21:17:23 ERROR: unresolved nameservers for domain xke.xebia.com. of managed zone xke-xebia-com in project speeltuin-mvanholsteijn-2: lookup xke.xebia.com. on 192.168.188.1:53: no such host
2022/01/17 21:17:23 INFO: checking nameserver integrity for ttn.binx.io.
2022/01/17 21:17:23 INFO: checking nameserver integrity for playf.internal.
2022/01/17 21:17:23 ERROR: unresolved nameservers for domain playf.internal. of managed zone test-zone-internal in project playground-fchyla: lookup playf.internal. on 192.168.188.1:53: no such host
2022/01/17 21:17:23 INFO: checking nameserver integrity for xke.xebia.com.
2022/01/17 21:17:23 ERROR: unresolved nameservers for domain xke.xebia.com. of managed zone xke-xebia-com in project xke-nxt: lookup xke.xebia.com. on 192.168.188.1:53: no such host
2022/01/17 21:17:24 INFO: checking nameserver integrity for mismatch.google.binx.dev.
2022/01/17 21:17:24 ERROR: unresolved nameservers for domain mismatch.google.binx.dev. of managed zone mismatch-google-binx-dev in project speeltuin-mvanholsteijn: lookup mismatch.google.binx.dev. on [fd00::2e91:abff:fea1:b7b6]:53: server misbehaving
2022/01/17 21:17:24 INFO: checking nameserver integrity for my.dns.binx.io.
2022/01/17 21:17:24 ERROR: unresolved nameservers for domain my.dns.binx.io. of managed zone my-dns-zone in project speeltuin-mvanholsteijn: lookup my.dns.binx.io. on 192.168.188.1:53: no such host
2022/01/17 21:17:25 INFO: checking nameserver integrity for u.girlsday.fun.
2022/01/17 21:17:25 ERROR: unresolved nameservers for domain u.girlsday.fun. of managed zone u-girlsday-fun in project girlsday: lookup u.girlsday.fun. on 192.168.188.1:53: no such host
2022/01/17 21:17:25 ERROR: domain mismatch.google.binx.dev. has a nameserver record in google-binx-dev, but there is no managed zone for it in this organization
2022/01/17 21:17:25 ERROR: domain somebody-else.google.binx.dev. has a nameserver record in google-binx-dev, but there is no managed zone for it in this organization

Fazit

Ein Angreifer kann Ihre DNS-Subdomäne in Google Cloud DNS übernehmen, wenn Sie die verwaltete Zone aus Ihrem Projekt löschen, ohne die zugehörigen Nameserver-Einträge zu entfernen. Sie müssen also die NS-Einträge entfernen, wenn Sie eine verwaltete Zone löschen. Der cloud-dns-integrity-checker kann Probleme in der Cloud DNS-Konfiguration Ihrer GCP-Organisation erkennen. Beachten Sie, dass die gleiche Art von Fehler bei der Verwendung von AWS's Route53 auftreten kann. Bild von Darkmoon_Art aus Pixabay

Verfasst von

Mark van Holsteijn

Mark van Holsteijn is a senior software systems architect at Xebia Cloud-native solutions. He is passionate about removing waste in the software delivery process and keeping things clear and simple.

Contact

Let’s discuss how we can support your journey.