
IMDSPOOF — это инструмент кибер-обмана, который подделывает сервис AWS IMDS, возвращая HoneyTokens, на которые можно настроить оповещения.
IMDSPOOF — это инструмент киберобмана, который подменяет службу AWS IMDS. Один из способов, с помощью которого злоумышленники могут повышать привилегии или перемещаться по облачной среде, — это получение ключей доступа AWS из конечной точки службы IMDS, расположенной по адресу http://169.254.169.254/latest/meta-data/iam/security-credentials/<user>. Этот инструмент подменяет эту конечную точку и перенаправляет трафик, отправленный на 169.254.169.254, на локальный веб-сервер, который отдает поддельные данные. Это может быть использовано для точного обнаружения атак путем вставки ловушечных токенов AWS в ответ поддельной службы IMDS.

Этот инструмент предназначен для использования синими командами на экземплярах AWS, которые НЕ используют IMDS (версия 1 или 2).
С точки зрения злоумышленника, он не знает, используется ли IMDS на экземпляре EC2, в котором он находится. Цель IMDSPOOF — обмануть злоумышленника, который проник в вашу облачную среду, заставив его думать, что он взаимодействует с легитимной службой IMDS.
Еще раз: если приложения, работающие на вашем экземпляре EC2, ИСПОЛЬЗУЮТ службу IMDS, этот инструмент ВЫЗОВЕТ проблемы!
Чтобы опробовать IMDSPOOF в тестовой среде, создайте экземпляр EC2 и убедитесь, что установлен iptables (yum install iptables-services, если используется Amazon Linux)
IMDS.go (Как скомпилировать код Go)curl http://169.254.169.254/latest/meta-data/iam/security-credentials/ec2-admin{
"Code": "Success",
"Message": "The request was successfully processed.",
"LastUpdated": "2023-11-22T03:33:51Z",
"Type": "AWS-HMAC",
"AccessKeyId": "InsertHoneyToken",
"SecretAccessKey": "InsertHoneyToken",
"Token": "HoneyToken",
"Expiration": "2023-11-22T09:33:51Z"
}
iptables -t nat -D OUTPUT -p tcp -d 169.254.169.254 --dport 80 -j DNAT --to-destination 127.0.0.1:54321Чтобы инструмент был полезен, необходимо изменить переменные в верхней части файла IMDS.go на что-то более реалистичное. Я настоятельно рекомендую разместить в файле ловушечные токены (honey tokens). Вы можете оставить переменную token без изменений или заменить ее на свою.
IMDS.go на то, что вы хотите получить при обращении к http://169.254.169.254/latest/meta-data/iam/security-credentials/ec2-adminvar accessKey string = "InsertHoneyToken"
var secretAccessKey string = "InsertHoneyToken"
var token string = "IQoJb3Jpz2cXpQRkpVX3Uf////////////xMdLZHNjb<snip>"
Ребята из Thinkst Canary создали замечательный инструмент, который позволяет легко генерировать учетные данные AWS, которые будут вызывать оповещение при использовании.

aws_access_key_id = AKIA....
aws_secret_access_key = uZF0y/l5X....
accessKey и secretAccessKey на значения aws_access_key_id и aws_secret_access_key, предоставленные вам CanaryTokens.



Запуск IMDSPOOF при старте системы легко выполнить, создав службу systemd и включив ее.
sudo vim /etc/systemd/system/IMDS.service (Вы можете назвать его по-другому, более скрытно, если хотите, но следующие команды systemctl ожидают, что служба будет называться IMDS.service)IMDS.service[Unit]
# Change this to something else if you wish
Description=IMDSPOOF
# After dependencies are available
After=multi-user.target
[Service]
# Type of service
Type=simple
# Command to execute the service program
ExecStart=/bin/IMDS
# User to run the service as
User=root
# Restart if the service crashes
Restart=always
# Restart delay in seconds
RestartSec=10
[Install]
# Enable the service at boot
WantedBy=multi-user.target
/bin/: sudo mv IMDS /bin/sudo systemctl enable IMDSsudo systemctl start IMDSsudo systemctl status IMDSДа! Из-за того, как IMDSPOOF манипулирует iptables на экземпляре EC2, не имеет значения, откуда приходит трафик. Это означает, что помимо работы через утилиту curl на экземпляре EC2, IMDSPOOF также работает, если уязвимость SSRF обнаружена через веб-приложение, размещенное на экземпляре EC2. Используя следующее уязвимое приложение из блога AlexanderHose по тестированию IMDS на проникновение, мы можем использовать уязвимость SSRF, которая также вернет поддельные учетные данные от IMDSPOOF

sudo systemctl stop IMDSsudo systemctl disable IMDSiptables -t nat -D OUTPUT -p tcp -d 169.254.169.254 --dport 80 -j DNAT --to-destination 127.0.0.1:54321