
Elimina gli IP elastici inutilizzati effettuando un'analisi delle tue risorse in tutti i tuoi account AWS.
Elimina gli elastic IP sospesi eseguendo un'analisi delle tue risorse in tutti i tuoi account AWS.
Ghostbuster ottiene tutti i record DNS presenti in tutti i tuoi account AWS (Route53) e può opzionalmente importare record tramite input CSV o tramite Cloudflare.
Dopo aver raccolto questi record, Ghostbuster scorre tutti i tuoi Elastic IP AWS e gli IP pubblici delle interfacce di rete e raccoglie questi dati.
Avendo un quadro completo dei record DNS (da route53, input file o cloudflare) e un quadro completo degli IP AWS posseduti dalla tua organizzazione, questo strumento può rilevare sottodomini che puntano a elastic IP sospesi (IP che non possiedi più).
Quando si distribuisce infrastruttura su AWS, è possibile avviare istanze EC2 a cui è associato un IP. Quando crei record DNS che puntano a questi IP, ma dimentichi di rimuovere i record DNS dopo che l'istanza EC2 ha ricevuto un nuovo IP o è stata distrutta, sei suscettibile ad attacchi di subdomain takeover.
È stata fatta una grande quantità di ricerca sui takeover di elastic IP, dove è possibile per gli aggressori rivendicare continuamente elastic IP fino a ottenere un IP associato a un sottodominio dell'azienda che stanno prendendo di mira.
Sebbene AWS bani frequentemente gli account che tentano di eseguire questo schema di attacco, non è stata rilasciata una soluzione a lungo termine da AWS.
L'impatto degli attacchi di subdomain takeover con elastic IP sospesi è più grave di un tipico subdomain takeover in cui puoi solo controllare il contenuto servito. Con i takeover di elastic IP sospesi, un attaccante può fare quanto segue:
*.domain.com.aws/configImportante:
Affinché questo strumento sia efficace, deve avere un quadro completo del tuo ambiente AWS. Se non ha un quadro completo, porterà a falsi positivi.
Installare Ghostbuster è semplice: basta eseguire pip install ghostbuster. Lo strumento CLI sarà quindi accessibile tramite il comando ghostbuster.
Richiede un 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.
Comandi di esempio
Esegui Ghostbuster con accesso ai record DNS di Cloudflare, invia notifiche a un webhook Slack, itera attraverso ogni profilo AWS configurato in .aws/config o .aws/credentials per tutte le regioni AWS
❯ ghostbuster scan aws --cloudflaretoken APIKEY --slackwebhook https://hooks.slack.com/services/KEY --allregions
Esegui Ghostbuster con un elenco manuale di record A di sottodominio (vedi records.csv in questo repository per un file di esempio):
❯ ghostbuster scan aws --records records.csv
È possibile specificare regioni specifiche usando --regions impostato su un elenco di regioni separate da virgole, ad esempio us-east-1,us-west-1.