AWS - STS Enum

Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

STS

AWS Security Token Service (STS) ist hauptsächlich darauf ausgelegt, temporäre, eingeschränkte Berechtigungen auszugeben. Diese Berechtigungen können für AWS Identity and Access Management (IAM)-Benutzer oder für authentifizierte Benutzer (föderierte Benutzer) angefordert werden.

Da der Zweck von STS darin besteht, Berechtigungen für Identitätsimitation auszugeben, ist der Dienst äußerst wertvoll für die Eskalation von Berechtigungen und die Aufrechterhaltung der Persistenz, auch wenn er möglicherweise nicht über eine Vielzahl von Optionen verfügt.

Annahme von Rollenimitation

Die von AWS STS bereitgestellte Aktion AssumeRole ist entscheidend, da sie einem Prinzipal ermöglicht, Anmeldeinformationen für einen anderen Prinzipal zu erhalten und sie im Wesentlichen zu imitieren. Bei Aufruf antwortet es mit einer Zugriffsschlüssel-ID, einem geheimen Schlüssel und einem Sitzungstoken, das dem angegebenen ARN entspricht.

Für Penetrationstester oder Mitglieder des Red Teams ist diese Technik entscheidend für die Privilegieneskalation (wie hier ausführlich erläutert hier). Es ist jedoch erwähnenswert, dass diese Technik ziemlich offensichtlich ist und einen Angreifer möglicherweise nicht überrascht.

Annahme von Rollenlogik

Um eine Rolle im selben Konto anzunehmen, wenn die zu übernehmende Rolle speziell einen Rollen-ARN zulässt wie in:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<acc_id>:role/priv-role"
},
"Action": "sts:AssumeRole",
"Condition": {}
}
]
}

Die Rolle priv-role muss in diesem Fall nicht explizit zugelassen werden, um diese Rolle anzunehmen (die Erlaubnis reicht aus).

Wenn jedoch eine Rolle einem Konto das Übernehmen gestattet, wie in:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<acc_id>:root"
},
"Action": "sts:AssumeRole",
"Condition": {}
}
]
}

Die Rolle, die versucht wird anzunehmen, benötigt eine spezifische sts:AssumeRole-Berechtigung über diese Rolle, um sie anzunehmen.

Wenn Sie versuchen, eine Rolle aus einem anderen Konto anzunehmen, muss die angenommene Rolle dies zulassen (indem die Rollen-ARN oder das externe Konto angegeben werden), und die Rolle, die versucht, sie anzunehmen, MUSS die Berechtigungen haben, um dies zu tun (in diesem Fall ist dies nicht optional, auch wenn die angenommene Rolle eine ARN angibt).

Enumeration

# Get basic info of the creds
aws sts get-caller-identity
aws sts get-access-key-info --access-key-id <AccessKeyID>

# Get CLI a session token with current creds
## Using CLI creds
## You cannot get session creds using session creds
aws sts get-session-token
## MFA
aws sts get-session-token --serial-number <arn_device> --token-code <otp_code>

Privilege Escalation

Auf der folgenden Seite können Sie überprüfen, wie Sie STS-Berechtigungen missbrauchen, um Privilegien zu eskalieren:

Post-Exploitation

Persistenz

Referenzen

Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated