
Elimine IPs elásticos órfãos realizando análises em seus recursos em todas as suas contas AWS.
Elimine Elastic IPs órfãos realizando análises em seus recursos em todas as suas contas AWS.
O Ghostbuster obtém todos os registros DNS presentes em todas as suas contas AWS (Route53) e pode opcionalmente receber registros via entrada CSV ou via Cloudflare.
Após coletar esses registros, o Ghostbuster percorre todos os seus Elastic IPs da AWS e IPs Públicos de Interfaces de Rede e coleta esses dados.
Ao ter uma visão completa dos registros DNS (do Route53, entrada de arquivo ou Cloudflare) e uma visão completa dos IPs AWS pertencentes à sua organização, esta ferramenta pode detectar subdomínios que apontam para Elastic IPs órfãos (IPs que você não possui mais).
Ao implantar infraestrutura na AWS, você pode iniciar instâncias EC2 que possuem um IP associado a elas. Quando você cria registros DNS apontando para esses IPs, mas esquece de removê-los após a instância EC2 receber um novo IP ou ser destruída, você fica suscetível a ataques de takeover de subdomínio.
Houve uma grande quantidade de pesquisa sobre takeovers de Elastic IP, onde é possível que atacantes reivindiquem continuamente Elastic IPs até obterem um IP associado a um subdomínio da empresa que estão atacando.
Embora a AWS ban frequentemente contas que tentam executar esse padrão de ataque, nenhuma correção de longo prazo foi lançada pela AWS.
O impacto de ataques de takeover de subdomínio por Elastic IP órfão é mais grave do que um takeover de subdomínio típico, onde você só pode controlar o conteúdo sendo servido. Com takeovers de Elastic IP órfão, é possível que um atacante faça o seguinte:
*.domain.com.aws/configImportante:
Para que esta ferramenta seja eficaz, ela deve ter uma visão completa do seu ambiente AWS. Se não tiver uma visão completa, isso levará a falsos positivos.
Instalar o Ghostbuster é tão simples quanto executar: pip install ghostbuster. A ferramenta CLI estará então acessível através do comando ghostbuster.
Isso requer um ambiente Python 3.x.
❯ ghostbuster scan aws --help
Usage: ghostbuster scan aws [OPTIONS]
Scan for dangling elastic IPs inside your AWS accounts.
Options:
--profile TEXT Specify a specific AWS profile to run ghostbuster
on.
--skipascii Skip printing the ASCII art when starting up
Ghostbuster.
--json Only return a JSON object.
--slackwebhook TEXT Specify a Slack webhook URL to send notifications
about potential takeovers.
--records PATH Manually specify DNS records to check against.
Ghostbuster will check these IPs after checking
retrieved DNS records. See records.csv for an
example.
--cloudflaretoken TEXT Pull DNS records from Cloudflare, provide a CF API
token.
--allregions Run on all regions.
--exclude TEXT Comma delimited list of profile names to exclude.
--regions TEXT Comma delimited list of regions to run on.
--help Show this message and exit.
Exemplos de Comandos
Executar o Ghostbuster com acesso aos registros DNS do Cloudflare, enviar notificações para um Slack webhook, iterar por todos os perfis AWS configurados em .aws/config ou .aws/credentials para todas as regiões AWS
❯ ghostbuster scan aws --cloudflaretoken APIKEY --slackwebhook https://hooks.slack.com/services/KEY --allregions
Executar o Ghostbuster com uma lista inserida manualmente de registros A de subdomínio (veja records.csv neste repositório para um exemplo de arquivo):
❯ ghostbuster scan aws --records records.csv
Você pode especificar regiões específicas usando --regions definido como uma lista separada por vírgulas de regiões, ex.: us-east-1,us-west-1.