AWS - STS Enum

Reading time: 4 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

STS

AWS Security Token Service (STS) imeundwa hasa kutoa akidi za muda mfupi, zenye mamlaka ya kikomo. Akidi hizi zinaweza kuombwa kwa AWS Identity and Access Management (IAM) watumiaji au kwa watumiaji walioidhinishwa (watumiaji wa shirikisho).

Kwa kuwa lengo la STS ni kutoa akidi za kuiga utambulisho, huduma hii ni ya thamani kubwa kwa kuongeza mamlaka na kudumisha uthibitisho, ingawa huenda isiwe na chaguzi nyingi.

Assume Role Impersonation

Kitendo AssumeRole kinachotolewa na AWS STS ni muhimu kwani kinamruhusu mkuu kupata akidi za mkuu mwingine, kwa msingi wa kuiga wao. Mara tu inapotumika, inajibu kwa kitambulisho cha ufikiaji, funguo ya siri, na tokeni ya kikao inayolingana na ARN iliyotolewa.

Kwa Wajaribu Upenyo au wanachama wa Red Team, mbinu hii ni muhimu kwa kuongeza mamlaka (kama ilivyoelezwa hapa). Hata hivyo, inafaa kutambua kuwa mbinu hii ni wazi sana na huenda isimkamate mshambuliaji kwa mshangao.

Assume Role Logic

Ili kuweza kuchukua jukumu katika akaunti hiyo hiyo ikiwa jukumu la kuchukua linaruhusu hasa ARN ya jukumu kama ilivyo:

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

Jukumu priv-role katika kesi hii, halihitaji ruhusa maalum ili kuchukua jukumu hilo (ikiwa na ruhusa hiyo inatosha).

Hata hivyo, ikiwa jukumu linaruhusu akaunti kuchukua jukumu hilo, kama ilivyo katika:

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

Jukumu linalojaribu kuchukuliwa litahitaji idhini maalum ya sts:AssumeRole juu ya jukumu hilo ili kulichukua.

Ikiwa unajaribu kuchukua jukumu kutoka kwa akaunti tofauti, jukumu lililochukuliwa lazima liruhusu (kuashiria ARN ya jukumu au akaunti ya nje), na jukumu linalojaribu kuchukua jingine Lazima liwe na idhini za kulichukua (katika kesi hii hii si hiari hata kama jukumu lililochukuliwa linabainisha ARN).

Uhesabuji

bash
# 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>

Privesc

Katika ukurasa ufuatao unaweza kuangalia jinsi ya kudhulumu ruhusa za STS ili kupandisha mamlaka:

AWS - STS Privesc

Post Exploitation

AWS - STS Post Exploitation

Persistence

AWS - STS Persistence

References

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks