
Устраните висящие эластичные IP-адреса, выполнив анализ ваших ресурсов во всех ваших учетных записях AWS.
Устраните "зависшие" (dangling) эластичные IP-адреса, выполняя анализ ваших ресурсов во всех аккаунтах AWS.
Ghostbuster получает все DNS-записи, присутствующие во всех ваших аккаунтах AWS (Route53), и опционально может принимать записи через CSV-файл или Cloudflare.
После сбора этих записей Ghostbuster проходит по всем вашим эластичным IP-адресам AWS и публичным IP-адресам сетевых интерфейсов и собирает эти данные.
Имея полную картину DNS-записей (из Route53, файлового ввода или Cloudflare) и полную картину IP-адресов AWS, принадлежащих вашей организации, этот инструмент может обнаруживать поддомены, которые указывают на "зависшие" эластичные IP-адреса (IP-адреса, которыми вы больше не владеете).
При развертывании инфраструктуры в AWS вы можете запускать экземпляры EC2, которым назначается IP-адрес. Когда вы создаете DNS-записи, указывающие на эти IP-адреса, но забываете удалить DNS-записи после того, как экземпляру EC2 был назначен новый IP-адрес или он был уничтожен, вы становитесь уязвимы для атак перехвата поддоменов (subdomain takeover).
Было проведено много исследований по захвату эластичных IP-адресов, когда атакующие могут постоянно запрашивать эластичные IP-адреса, пока не получат IP-адрес, связанный с поддоменом целевой компании.
Хотя AWS часто блокирует аккаунты, пытающиеся выполнить такой сценарий атаки, долгосрочного исправления от AWS выпущено не было.
Последствия атак перехвата "зависших" эластичных IP-поддоменов более серьезны, чем типичный перехват поддомена, при котором вы можете контролировать только отображаемый контент. При захвате "зависших" эластичных IP-адресов атакующий может делать следующее:
*.domain.com.aws/configВажно:
Чтобы этот инструмент был эффективным, он должен иметь полную картину вашей среды AWS. Если у него нет полной картины, это приведет к ложноположительным результатам.
Установка Ghostbuster проста: выполните pip install ghostbuster. Инструмент командной строки будет доступен через команду ghostbuster.
Требуется среда 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.
Примеры команд
Запустите Ghostbuster с доступом к DNS-записям Cloudflare, отправляйте уведомления в Slack webhook, перебирайте каждый профиль AWS, настроенный в .aws/config или .aws/credentials, для всех регионов AWS:
❯ ghostbuster scan aws --cloudflaretoken APIKEY --slackwebhook https://hooks.slack.com/services/KEY --allregions
Запустите Ghostbuster с вручную введенным списком A-записей поддоменов (см. records.csv в этом репозитории для примера файла):
❯ ghostbuster scan aws --records records.csv
Вы можете указать конкретные регионы, используя --regions со списком регионов через запятую, например us-east-1,us-west-1.