Network

Web Apps

System

Cloud

Cryptography

IoT

Exercise 7: Unauthorized Cloud Storage Data Access via Shared Links

by | Feb 28, 2025 | 0 comments

Objective:

Understand how improperly shared cloud storage links can lead to unauthorized data access. Learn the risks of unrestricted public links and implement secure sharing practices, such as access control lists (ACLs) and link expiration policies.


Scenario:

You are conducting a security assessment for a company using cloud storage platforms like AWS S3 or Google Drive. During your evaluation, you discover shared links to sensitive files that are publicly accessible without authentication. Your goal is to demonstrate how unauthorized users can exploit these links and recommend secure sharing methods.


Lab Setup:

Prerequisites:

  1. Access to a cloud storage platform:
    • AWS S3 (preferred for a more technical audience) or Google Drive.
  2. Installed tools:
    • aws-cli (if using AWS S3).
    • Browser and URL analysis tools (e.g., Burp Suite or VirusTotal).

Steps to Set Up the Lab:

Option 1: AWS S3:
  1. Create a Private File:
    • Log in to the AWS Console and navigate to S3.
    • Create a new S3 bucket (e.g., pentesterworld-shared-links).
    • Upload a file (e.g., sensitive-data.txt) to the bucket.
  2. Generate a Public Link:
    • Select the uploaded file and click Share or Generate Presigned URL.
    • Ensure the link is configured with no restrictions (e.g., no IAM or bucket policy checks).
  3. Simulate Public Access:
    • Copy the presigned URL and test it in a browser from an unauthenticated session (e.g., incognito mode).
Option 2: Google Drive:
  1. Create a Private File:
    • Upload a file (e.g., sensitive-report.pdf) to Google Drive.
    • Set its sharing permissions to Restricted initially.
  2. Generate a Public Link:
    • Change the sharing permissions to Anyone with the link can view.
    • Copy the shared link.
  3. Simulate Public Access:
    • Open the link from a browser where the account is not authenticated (e.g., incognito mode).

Exercise: Exploiting Misconfigured Shared Links

Objective:

Explore how attackers can misuse shared links to access sensitive files.

  1. Access the File from an Unauthorized Account:
    • Open the public link in an incognito browser or a different account.
    • Verify that the file is accessible without authentication.
  2. Analyze the URL:
    • Examine the shared link format. For example:
      • AWS S3: https://<bucket-name>.s3.<region>.amazonaws.com/<file-name>
      • Google Drive: https://drive.google.com/file/d/<file-id>/view
    • Identify if the link contains sensitive metadata or tokens.
  3. Test for Enumeration:
    • Attempt to modify the URL to access other files in the bucket or folder.
      • Example: Replace <file-name> in an S3 URL with another file name.
    • Observe if access is granted without authentication.
  4. Check for Expiration (if applicable):
    • If the link includes an expiration timestamp, note whether it is honored.
    • Test whether expired links can still be used to access the file.

Tools Required:

  1. AWS S3 or Google Drive: For cloud storage setup.
  2. Burp Suite: To analyze and manipulate URLs.
  3. VirusTotal: To check if public links are indexed or cached.

Deliverables:

  1. Exploit Report:
    • Evidence of accessing sensitive files via shared links.
    • Screenshots showing unauthorized access.
    • Examples of how links can be manipulated or enumerated.
  2. Recommendations for Secure Sharing:
    • Steps to secure shared links, including access control lists (ACLs) and expiration dates.

Solution:

Identified Vulnerabilities:

Unrestricted Public Links: Files were accessible to anyone with the link.

No Access Restrictions: No authentication or IP whitelisting was required to access the file.

Enumeration Risks: Modifying the URL revealed other files in the bucket or folder.

Consequences:

Unauthorized Access: Sensitive data, such as credentials or reports, can be accessed by attackers.

Data Breach: Publicly accessible links could lead to regulatory non-compliance and reputational damage.

Link Sharing Risks: Links could be shared further without the owner’s consent.

Prevention Techniques:

Restrict Public Access:

Use access control lists (ACLs) to restrict access to authenticated users only.

Example S3 bucket policy to deny public access:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::pentesterworld-shared-links/*",
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "false"
        }
      }
    }
  ]
}

Set Expiration for Shared Links:

For AWS S3, generate presigned URLs with a short expiration time:

aws s3 presign s3://pentesterworld-shared-links/sensitive-data.txt --expires-in 3600

For Google Drive, use advanced sharing settings to revoke access after a specific time.

Enable Logging and Monitoring:

Use AWS CloudTrail or Google Drive Activity to monitor link usage.

Encrypt Sensitive Files:

Encrypt files before uploading them to the cloud.


Conclusion:

This exercise demonstrates the risks of sharing cloud storage links without proper permissions. By implementing strict access controls, expiration policies, and encryption, organizations can minimize the likelihood of unauthorized data access and secure their shared resources.

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *