Translated ['src/pentesting-cloud/aws-security/aws-privilege-escalation/

This commit is contained in:
Translator
2025-06-24 14:03:25 +00:00
parent 3a556088d3
commit 470e2750a9
2 changed files with 43 additions and 46 deletions

View File

@@ -1,42 +0,0 @@
# AWS - IAM Roles Anywhere Privesc
{{#include ../../../../banners/hacktricks-training.md}}
AWS IAM RolesAnywhere laat werklas buiten AWS toe om IAM rolle te aanvaar met behulp van X.509 sertifikate. Maar wanneer vertrouensbeleide nie behoorlik afgebaken is nie, kan dit misbruik word vir privilige-eskalasie.
Hierdie beleid ontbreek beperkings op watter vertrouensanker of sertifikaatattribuut toegelaat word. As gevolg hiervan kan enige sertifikaat wat aan enige vertrouensanker in die rekening gekoppel is, gebruik word om hierdie rol aan te neem.
```json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "rolesanywhere.amazonaws.com"
},
"Action": [
"sts:AssumeRole",
"sts:SetSourceIdentity",
"sts:TagSession"
]
}
]
}
```
Om privesc te verkry, is die `aws_signing_helper` benodig van https://docs.aws.amazon.com/rolesanywhere/latest/userguide/credential-helper.html
Dan kan die aanvaller met 'n geldige sertifikaat in die hoër bevoegdheid rol beweeg.
```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
```
### Verwysings
- https://www.ruse.tech/blogs/aws-roles-anywhere-privilege-escalation/
{{#include ../../../../banners/hacktricks-training.md}}

View File

@@ -8,7 +8,7 @@
Elke rol word geskep met 'n **rol vertrouensbeleid**, hierdie beleid dui aan **wie die geskepte rol kan aanvaar**. As 'n rol van die **dieselfde rekening** sê dat 'n rekening dit kan aanvaar, beteken dit dat die rekening toegang tot die rol sal hê (en moontlik **privesc**).
Byvoorbeeld, die volgende rol vertrouensbeleid dui aan dat enigiemand dit kan aanvaar, daarom **sal enige gebruiker in staat wees om privesc** na die toestemmings wat met daardie rol geassosieer is.
Byvoorbeeld, die volgende rol vertrouensbeleid dui aan dat enigiemand dit kan aanvaar, daarom **sal enige gebruiker in staat wees om privesc** te kry tot die toestemmings wat met daardie rol geassosieer is.
```json
{
"Version": "2012-10-17",
@@ -23,7 +23,7 @@ Byvoorbeeld, die volgende rol vertrouensbeleid dui aan dat enigiemand dit kan aa
]
}
```
Jy kan 'n rol naboots deur:
Jy kan 'n rol naboots wat loop:
```bash
aws sts assume-role --role-arn $ROLE_ARN --role-session-name sessionname
```
@@ -39,7 +39,7 @@ Met hierdie toestemming is dit moontlik om akrediteer te genereer om enige gebru
```bash
aws sts get-federation-token --name <username>
```
Dit is hoe hierdie toestemming veilig gegee kan word sonder om toegang te gee om ander gebruikers na te boots:
Dit is hoe hierdie toestemming veilig gegee kan word sonder om toegang te gee om ander gebruikers na te volg:
```json
{
"Version": "2012-10-17",
@@ -92,7 +92,7 @@ onelogin-aws-assume-role --onelogin-subdomain mettle --onelogin-app-id 283740 --
Hierdie toestemming gee toestemming om 'n stel tydelike sekuriteitsbewyse te verkry vir **gebruikers wat in 'n mobiele, webtoepassing, EKS...** geverifieer is met 'n webidentiteitsverskaffer. [Leer meer hier.](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html)
Byvoorbeeld, as 'n **EKS-diensrekening** in staat moet wees om **'n IAM-rol na te volg**, sal dit 'n token in **`/var/run/secrets/eks.amazonaws.com/serviceaccount/token`** hê en kan dit **die rol aanvaar en bewys verkry** deur iets soos:
Byvoorbeeld, as 'n **EKS-diensrekening** in staat moet wees om **'n IAM-rol na te volg**, sal dit 'n token in **`/var/run/secrets/eks.amazonaws.com/serviceaccount/token`** hê en kan dit **die rol aanvaar en bewese verkry** deur iets soos:
```bash
aws sts assume-role-with-web-identity --role-arn arn:aws:iam::123456789098:role/<role_name> --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
@@ -103,4 +103,43 @@ aws sts assume-role-with-web-identity --role-arn arn:aws:iam::123456789098:role/
../aws-basic-information/aws-federation-abuse.md
{{#endref}}
### IAM Rolle Enigiemand Privesc
AWS IAM RolesAnywhere laat werklas buite AWS toe om IAM rolle aan te neem met behulp van X.509 sertifikate. Maar wanneer vertrouensbeleide nie behoorlik afgebaken is nie, kan dit misbruik word vir privilige-eskalasie.
Hierdie beleid ontbreek beperkings op watter vertrouensanker of sertifikaatattribuut toegelaat word. As gevolg hiervan kan enige sertifikaat wat aan enige vertrouensanker in die rekening gekoppel is, gebruik word om hierdie rol aan te neem.
```json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "rolesanywhere.amazonaws.com"
},
"Action": [
"sts:AssumeRole",
"sts:SetSourceIdentity",
"sts:TagSession"
]
}
]
}
```
Om privesc te verkry, is die `aws_signing_helper` benodig van https://docs.aws.amazon.com/rolesanywhere/latest/userguide/credential-helper.html
Dan kan die aanvaller, met 'n geldige sertifikaat, in die hoër bevoegdheid rol beweeg.
```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
```
### Verwysings
- [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}}