AWS - API Gateway Unauthenticated 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
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
API Invoke bypass
Kulingana na hotuba Attack Vectors for APIs Using AWS API Gateway Lambda Authorizers - Alexandre & Leonardo, Lambda Authorizers zinaweza kusanidiwa using IAM syntax ili kutoa ruhusa za kuita API endpoints. Hii inachukuliwa from the docs:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Permission",
"Action": ["execute-api:Execution-operation"],
"Resource": [
"arn:aws:execute-api:region:account-id:api-id/stage/METHOD_HTTP_VERB/Resource-path"
]
}
]
}
Shida na njia hii ya kutoa ruhusa za kuita endpoints ni kwamba "*" inaashiria "chochote" na hakuna tena sintaksia ya regex inayotumika.
Mifano kadhaa:
- Kanuni kama
arn:aws:execute-apis:sa-east-1:accid:api-id/prod/*/dashboard/*ili kuwapa kila mtumiaji access kwa/dashboard/user/{username}itawapa pia access kwa routes nyingine kama/admin/dashboard/createAdminkwa mfano.
warning
Tambua kwamba "*" haizuizi kupanuka kwa kutumia slashi, kwa hivyo, kama utatumia "*" katika api-id kwa mfano, inaweza pia kuonyesha "any stage" au "any method" mradi tu regex ya mwisho bado ni halali.
Hivyo arn:aws:execute-apis:sa-east-1:accid:*/prod/GET/dashboard/*
Inaweza kuthibitisha post request kwa test stage kwa path /prod/GET/dashboard/admin kwa mfano.
Unapaswa kila mara kuwa wazi kuhusu unachotaka kuruhusu kufikia, kisha ukague ikiwa matukio mengine yanawezekana kwa ruhusa zilizotolewa.
Kwa taarifa zaidi, mbali na docs, unaweza kupata msimbo wa kutekeleza authorizers katika this official aws github.
IAM Policy Injection
Katika talk imebainisha kwamba ikiwa code inatumia user input ku generate the IAM policies, wildcards (na mengine kama "." au specific strings) yanaweza kujumuishwa huko kwa lengo la bypassing restrictions.
Kiolezo cha URL ya Umma
https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}
Pata Account ID kutoka URL ya umma ya API Gateway
Kama ilivyo kwa S3 buckets, Data Exchange na Lambda URL gateways, inawezekana kupata account ID ya akaunti kwa kutumia abusing wa aws:ResourceAccount Policy Condition Key kutoka URL ya umma ya API Gateway. Hii inafanywa kwa kupata account ID herufi moja baada ya nyingine kwa kutumia wildcards katika sehemu ya aws:ResourceAccount ya policy.
Mbinu hii pia inaruhusu kupata values of tags ikiwa unajua tag key (kuna baadhi za default zenye kuvutia).
You can find more information in the original research and the tool conditional-love to automate this exploitation.
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
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
HackTricks Cloud