
IMDSPOOF ist ein Cyber-Deception-Tool, das den AWS-IMDS-Dienst spoofet, um HoneyTokens zurückzugeben, die alarmiert werden können.
IMDSPOOF ist ein Cyber-Deception-Tool, das einen AWS-IMDS-Dienst vortäuscht. Eine Möglichkeit für Angreifer, in einer Cloud-Umgebung Privilegien zu eskalieren oder sich lateral zu bewegen, ist der Abruf von AWS-Zugriffsschlüsseln vom IMDS-Dienst Endpunkt unter http://169.254.169.254/latest/meta-data/iam/security-credentials/<user>. Dieses Tool täuscht diesen Endpunkt vor und leitet den an 169.254.169.254 gesendeten Verkehr an einen lokalen Webserver um, der gefälschte Daten ausliefert. Dies kann für hochgradig abgestimmte Erkennungen genutzt werden, indem Honey-AWS-Tokens in die Antwort des vorgetäuschten IMDS eingefügt werden.

Dieses Tool ist für Blue Teams auf AWS-Instanzen gedacht, die NICHT aktiv den IMDS (Version 1 oder 2) nutzen.
Aus der Perspektive eines Angreifers haben sie keine Ahnung, ob der IMDS auf der EC2-Instanz, in der sie sich befinden, genutzt wird. Das Ziel von IMDSPOOF ist es, einen Angreifer, der in Ihre Cloud-Umgebung gelangt, in dem Glauben zu lassen, dass er mit einem legitimen IMDS-Dienst interagiert.
Noch einmal: Wenn die Anwendungen auf Ihrer EC2-Instanz den IMDS-Dienst NUTZEN, wird dieses Tool Probleme verursachen!
Um IMDSPOOF in einer Testumgebung auszuprobieren, erstellen Sie eine EC2-Instanz und stellen Sie sicher, dass iptables installiert ist (yum install iptables-services bei Verwendung von Amazon Linux)
IMDS.go (Go-Code kompilieren)curl http://169.254.169.254/latest/meta-data/iam/security-credentials/ec2-admin aus{
"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:54321Damit dies nützlich ist, müssen Sie die Variablen am Anfang der IMDS.go-Datei so ändern, dass sie realistischer aussehen. Ich empfehle dringend, Honey-Tokens in die Datei einzufügen. Sie können die token-Variable unverändert lassen oder in eine benutzerdefinierte ändern.
IMDS.go auf das, was beim Zugriff auf http://169.254.169.254/latest/meta-data/iam/security-credentials/ec2-admin zurückgegeben werden sollvar accessKey string = "InsertHoneyToken"
var secretAccessKey string = "InsertHoneyToken"
var token string = "IQoJb3Jpz2cXpQRkpVX3Uf////////////xMdLZHNjb<snip>"
Die Leute von Thinkst Canary haben ein wunderbares Tool, mit dem Sie einfach AWS-Anmeldeinformationen generieren können, die bei Verwendung einen Alarm auslösen.

aws_access_key_id = AKIA....
aws_secret_access_key = uZF0y/l5X....
IMDS.go die Variablen accessKey und secretAccessKey durch die Werte aws_access_key_id und aws_secret_access_key, die Ihnen von CanaryTokens gegeben wurden.



Das Ausführen von IMDS-Spoof beim Start kann einfach durch Erstellen eines systemd-Dienstes und Aktivieren des Dienstes erfolgen.
sudo vim /etc/systemd/system/IMDS.service (Sie können dies bei Bedarf etwas tarnender benennen, aber die folgenden systemctl-Befehle erwarten, dass der Dienst IMDS.service heißt)IMDS.service ein:[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/ liegt: sudo mv IMDS /bin/sudo systemctl enable IMDSsudo systemctl start IMDSsudo systemctl status IMDSJa! Aufgrund der Art und Weise, wie IMDSpoof die iptables auf der EC2-Instanz manipuliert, spielt es keine Rolle, woher der Verkehr kommt. Das bedeutet, dass IMDSpoof zusätzlich zur Funktion über das curl-Dienstprogramm auf der EC2-Instanz auch funktioniert, wenn eine SSRF-Schwachstelle über eine auf der EC2-Instanz gehostete Webanwendung gefunden wird. Mit der folgenden verwundbaren Anwendung aus AlexanderHoses Blog zum IMDS-Pentesting können wir die SSRF-Schwachstelle ausnutzen, die ebenfalls die gefälschten Anmeldeinformationen von IMDSpoof zurückgibt.

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