Tomada de controlo de subdomínio: como um registo DNS esquecido se torna uma vulnerabilidade

A tomada de controlo de subdomínio não exige invadir nada — explora um registo DNS que ninguém se lembrou de eliminar, apontando para um recurso que já não pertence a ninguém.

O que é

Uma tomada de controlo de subdomínio acontece quando um registo DNS — normalmente um CNAME — continua a apontar para um recurso de terceiros (um bucket de armazenamento na cloud, uma app numa plataforma PaaS, um serviço de sites estáticos) que entretanto foi eliminado, enquanto o próprio registo nunca foi removido. Quem conseguir reivindicar esse mesmo nome de recurso na plataforma controla agora o que é servido sob o seu subdomínio.

Como acontece

  1. Uma equipa aponta promo.example.pt para um serviço de terceiros — um bucket de armazenamento de objetos, uma app PaaS, um alojamento de sites estáticos — via CNAME
  2. Mais tarde, esse recurso é eliminado ou a subscrição expira, mas o registo CNAME no DNS mantém-se
  3. O nome do recurso volta a ficar disponível nessa plataforma, já que a plataforma não tem forma de saber que o DNS de outra pessoa ainda lhe faz referência
  4. Um atacante reivindica exatamente o mesmo nome de recurso na plataforma
  5. O tráfego para promo.example.pt chega agora ao recurso do atacante, porque o CNAME nunca apontou para a infraestrutura do seu próprio domínio — apontou sempre para um nome na plataforma de outra pessoa

Por que é eficaz

O conteúdo servido desta forma corre sob o domínio da vítima, o que lhe permite contornar listas brancas baseadas no domínio, parecer legítimo em links de phishing já que o domínio visível é realmente o verdadeiro, e nalguns casos até obter um certificado TLS válido para esse subdomínio — porque o atacante controla genuinamente o recurso para o qual o registo DNS aponta.

Como os atacantes encontram candidatos

A enumeração de subdomínios revela todos os CNAME que apontam para plataformas de terceiros; verificar quais desses destinos devolvem um erro característico do tipo "não encontrado" ou "no such bucket" — a assinatura de um recurso não reivindicado — reduz a lista aos exploráveis.

Prevenção

Remova o registo DNS no mesmo momento em que um recurso é desativado — esta é a única correção completa, já que um registo sem nada de legítimo por trás é, ele próprio, toda a vulnerabilidade. Auditar subdomínios periodicamente, especialmente após qualquer migração para fora de um serviço de terceiros, apanha o que as checklists de desativação deixam escapar.

Audite os seus próprios subdomínios

Experimente no seu domínio

Veja a teoria na prática — execute Localizador de subdomínios para o seu próprio domínio.