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 332b7a8de..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 pozwala na przyjmowanie ról IAM przez obciążenia poza AWS za pomocą certyfikatów X.509. Jednak gdy polityki zaufania nie są odpowiednio ograniczone, mogą być wykorzystywane do eskalacji uprawnień. - -Ta polityka nie ma ograniczeń dotyczących tego, które atrybuty zaufania lub certyfikatu są dozwolone. W rezultacie każdy certyfikat powiązany z dowolnym punktem zaufania w koncie może być użyty do przyjęcia tej roli. -```json -{ -"Version": "2012-10-17", -"Statement": [ -{ -"Effect": "Allow", -"Principal": { -"Service": "rolesanywhere.amazonaws.com" -}, -"Action": [ -"sts:AssumeRole", -"sts:SetSourceIdentity", -"sts:TagSession" -] -} -] -} - -``` -Aby uzyskać privesc, wymagany jest `aws_signing_helper` z https://docs.aws.amazon.com/rolesanywhere/latest/userguide/credential-helper.html - -Następnie, używając ważnego certyfikatu, atakujący może przejść do roli o wyższych uprawnieniach. -```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 -``` -### Odniesienia - -- 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 1e1cd73af..b50391ebd 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 @@ -23,7 +23,7 @@ Na przykład, poniższa polityka zaufania roli wskazuje, że każdy może ją pr ] } ``` -Możesz udawać rolę, uruchamiając: +Możesz udawać rolę działającą: ```bash aws sts assume-role --role-arn $ROLE_ARN --role-session-name sessionname ``` @@ -31,7 +31,7 @@ aws sts assume-role --role-arn $ROLE_ARN --role-session-name sessionname > [!OSTRZEŻENIE] > Zauważ, że w tym przypadku uprawnienie `sts:AssumeRole` musi być **wskazane w roli do nadużycia** a nie w polityce należącej do atakującego.\ -> Z jednym wyjątkiem, aby **przyjąć rolę z innego konta** konto atakującego **musi również** mieć **`sts:AssumeRole`** nad rolą. +> Z jednym wyjątkiem, aby **przyjąć rolę z innego konta** konto atakującego **również musi** mieć **`sts:AssumeRole`** nad rolą. ### **`sts:GetFederationToken`** @@ -90,17 +90,56 @@ onelogin-aws-assume-role --onelogin-subdomain mettle --onelogin-app-id 283740 -- ### `sts:AssumeRoleWithWebIdentity` -To uprawnienie przyznaje pozwolenie na uzyskanie zestawu tymczasowych poświadczeń bezpieczeństwa dla **użytkowników, którzy zostali uwierzytelnieni w aplikacji mobilnej, webowej, EKS...** z dostawcą tożsamości webowej. [Dowiedz się więcej tutaj.](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html) +To uprawnienie przyznaje możliwość uzyskania zestawu tymczasowych poświadczeń bezpieczeństwa dla **użytkowników, którzy zostali uwierzytelnieni w aplikacji mobilnej, aplikacji webowej, EKS...** z dostawcą tożsamości webowej. [Dowiedz się więcej tutaj.](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html) Na przykład, jeśli **konto usługi EKS** powinno być w stanie **udawać rolę IAM**, będzie miało token w **`/var/run/secrets/eks.amazonaws.com/serviceaccount/token`** i może **przyjąć rolę i uzyskać poświadczenia** wykonując coś takiego: ```bash 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 ``` -### Nadużycie Federacji +### Federation Abuse {{#ref}} ../aws-basic-information/aws-federation-abuse.md {{#endref}} +### IAM Roles Anywhere Privesc + +AWS IAM RolesAnywhere pozwala na przyjmowanie ról IAM przez obciążenia poza AWS za pomocą certyfikatów X.509. Jednak gdy polityki zaufania nie są odpowiednio ograniczone, mogą być wykorzystywane do eskalacji uprawnień. + +Ta polityka nie ma ograniczeń dotyczących tego, które atrybuty zaufania lub certyfikatu są dozwolone. W rezultacie każdy certyfikat powiązany z dowolnym punktem zaufania w koncie może być użyty do przyjęcia tej roli. +```json +{ +"Version": "2012-10-17", +"Statement": [ +{ +"Effect": "Allow", +"Principal": { +"Service": "rolesanywhere.amazonaws.com" +}, +"Action": [ +"sts:AssumeRole", +"sts:SetSourceIdentity", +"sts:TagSession" +] +} +] +} + +``` +Aby uzyskać privesc, wymagany jest `aws_signing_helper` z https://docs.aws.amazon.com/rolesanywhere/latest/userguide/credential-helper.html + +Następnie, używając ważnego certyfikatu, atakujący może przejść do roli o wyższych uprawnieniach. +```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 +``` +### Odniesienia + +- [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}}