• Stars
    star
    766
  • Rank 57,915 (Top 2 %)
  • Language
    Python
  • Created almost 5 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Extension for Burp Suite which uses AWS API Gateway to rotate your IP on every request.

IPRotate_Burp_Extension

Extension for Burp Suite which uses AWS API Gateway to change your IP on every request.

More info: Bypassing IP Based Blocking Using AWS - Rhino Security Labs

Description

This extension allows you to easily spin up API Gateways across multiple regions. All the Burp Suite traffic for the targeted host is then routed through the API Gateway endpoints which causes the IP to be different on each request. (There is a chance for recycling of IPs but this is pretty low and the more regions you use the less of a chance).

This is useful to bypass different kinds of IP blocking like bruteforce protection that blocks based on IP, API rate limiting based on IP or WAF blocking based on IP etc.

Usage

With Python2 ENV set

  1. Setup Jython in Burp Suite.
  2. Install the boto3 module for Python 2.
    1. Make sure that you setup your python environment in burp to load the boto3 module properly or it won't find it.
  3. Ensure you have a set of AWS keys that have full access to the API Gateway service. This is available through the free tier of AWS.
  4. Insert the credentials into the fields.
  5. Insert the target domain you wish to target.
  6. Select HTTPS if the domain is hosted over HTTPS.
  7. Select all the regions you want to use.(The more you use the larger the IP pool will be)
  8. Click "Enable".
  9. Once you are done ensure you click disable to delete all the resources which were started.

If you want to check on the resources and enpoints that were started or any potential errors you can look at the output console in Burp.

Without Python2 ENV set

Use helper script for creating API GW in your AWS account. It requires boto3 but it does not need to be setup for Burp, and you need to have valid AWS profile setup:

Usage: createapigws.py [OPTIONS]

Options:
  --profile TEXT     AWS profile to use  [default: pentest1]
  --state-file TEXT  API GW state directory, script creates STATE_FILE and
                     STATE_FILE.json.  [default: api_gateways.txt]
  --create TEXT      specify target URL: https://example.com
  --delete
  --help             Show this message and exit.
  1. Setup Jython in Burp Suite.
  2. Ensure you have a set of AWS keys and profile setup that have full access to the API Gateway service. This is available through the free tier of AWS.
  3. Insert state file path from createapigws.py to API GW File.
  4. Insert the target domain you wish to target.
  5. Insert the stage name to Stage name if required.
  6. Select HTTPS if the domain is hosted over HTTPS.
  7. Click "Enable".
  8. Once you are done ensure you click disable.
  9. To delete you API GWs use createapigws.py script.

The Burp UI

Burp Extension UI

Example of how the requests look

Sample Requests

Setup

Make sure you have Jython installed and add IPRotate.py through the Burp Extension options.

Extension Setup

Previous Research

After releasing this extension it was pointed out that there has been other research in this area using AWS API Gateway to hide an IP address. There is some awesome research and tools by @ustayready @ryHanson and @rmikehodges using this technique.

Be sure to check them out too:

More Repositories

1

pacu

The AWS exploitation framework, designed for testing the security of Amazon Web Services environments.
Python
4,015
star
2

cloudgoat

CloudGoat is Rhino Security Labs' "Vulnerable by Design" AWS deployment tool
Python
2,428
star
3

Security-Research

Exploits written by the Rhino Security Labs team
Python
1,036
star
4

AWS-IAM-Privilege-Escalation

A centralized source of all AWS IAM privilege escalation methods released by Rhino Security Labs.
883
star
5

CVEs

A collection of proof-of-concept exploit scripts written by the team at Rhino Security Labs for various CVEs.
Python
750
star
6

ccat

Cloud Container Attack Tool (CCAT) is a tool for testing security of container environments.
Python
573
star
7

SleuthQL

Python3 Burp History parsing tool to discover potential SQL injection points. To be used in tandem with SQLmap.
Python
460
star
8

GCPBucketBrute

A script to enumerate Google Storage buckets, determine what access you have to them, and determine if they can be privilege escalated.
Python
446
star
9

Cloud-Security-Research

Cloud-related research releases from the Rhino Security Labs team.
Python
346
star
10

GCP-IAM-Privilege-Escalation

A collection of GCP IAM privilege escalation methods documented by the Rhino Security Labs team.
Python
311
star
11

Swagger-EZ

A tool geared towards pentesting APIs using OpenAPI definitions.
JavaScript
163
star
12

Aggressor-Scripts

Aggregation of Cobalt Strike's aggressor scripts.
PowerShell
145
star
13

IAMActionHunter

An AWS IAM policy statement parser and query tool.
Python
137
star
14

dsnap

Utility for downloading and mounting EBS snapshots using the EBS Direct API's
Python
61
star
15

Presentations

A collection of slides, videos, and proof-of-concept scripts from various Rhino presentations.
37
star
16

little-stitch

Send and receive bypassing Little Snitch alerting.
Go
9
star