
Éliminez les adresses IP élastiques orphelines en effectuant une analyse de vos ressources dans tous vos comptes AWS.
Éliminez les adresses IP élastiques pendantes en effectuant une analyse de vos ressources dans tous vos comptes AWS.
Ghostbuster récupère tous les enregistrements DNS présents dans tous vos comptes AWS (Route53), et peut éventuellement prendre en compte des enregistrements via une entrée CSV ou via Cloudflare.
Après avoir collecté ces enregistrements, Ghostbuster parcourt toutes vos adresses IP élastiques AWS et les IP publiques des interfaces réseau et collecte ces données.
En ayant une image complète des enregistrements DNS (depuis Route53, une entrée fichier ou Cloudflare) et une image complète des IP AWS appartenant à votre organisation, cet outil peut détecter les sous-domaines pointant vers des adresses IP élastiques pendantes (des IP que vous ne possédez plus).
Lorsque vous déployez une infrastructure sur AWS, vous pouvez créer des instances EC2 avec une IP associée. Si vous créez des enregistrements DNS pointant vers ces IP, mais oubliez de supprimer les enregistrements DNS après que l'instance EC2 ait reçu une nouvelle IP ou ait été détruite, vous êtes vulnérable aux attaques de prise de contrôle de sous-domaine.
Des recherches approfondies ont été menées sur les prises de contrôle d'IP élastiques, où il est possible pour des attaquants de revendiquer continuellement des IP élastiques jusqu'à obtenir une IP associée à un sous-domaine de l'entreprise ciblée.
Bien qu'AWS bannisse fréquemment les comptes qui tentent d'exécuter ce schéma d'attaque, aucun correctif à long terme n'a été publié par AWS.
L'impact des attaques de prise de contrôle de sous-domaine par IP élastique pendante est plus grave qu'une prise de contrôle de sous-domaine classique où vous ne pouvez contrôler que le contenu servi. Avec les prises de contrôle d'IP élastique pendante, un attaquant peut potentiellement :
*.domain.com.aws/configImportant :
Pour que cet outil soit efficace, il doit avoir une image complète de votre environnement AWS. S'il n'a pas une image complète, cela entraînera des faux positifs.
Installer Ghostbuster est aussi simple que d'exécuter : pip install ghostbuster. L'outil en ligne de commande sera alors accessible via la commande ghostbuster.
Cela nécessite un environnement 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.
Exemples de commandes
Exécutez Ghostbuster avec un accès aux enregistrements DNS Cloudflare, envoyez des notifications à un webhook Slack, parcourez chaque profil AWS configuré dans .aws/config ou .aws/credentials pour toutes les régions AWS :
❯ ghostbuster scan aws --cloudflaretoken APIKEY --slackwebhook https://hooks.slack.com/services/KEY --allregions
Exécutez Ghostbuster avec une liste manuelle d'enregistrements A de sous-domaine (voir records.csv dans ce dépôt pour un exemple de fichier) :
❯ ghostbuster scan aws --records records.csv
Vous pouvez spécifier des régions particulières avec --regions défini sur une liste séparée par des virgules, par exemple us-east-1,us-west-1.