NetSPI / httpillage

MIT License
25 stars 3 forks source link

httpillage is a command and control server designed to increase the effectiveness of Web-App testing through distributed attacks. HTTP(S) requests will be loaded into the command and control server via the httpillage burp extender, or directly within the C&C web interface. Clients will be deployed on servers continuously polling the C&C looking for jobs, executing as they are made available.

httpillage current supports three modes of attack:

Response matching can be used to determine successful execution of a specific payload. When creating the job specify zero or more response matching strings or regular expressions. Upon receiving the job, nodes will be aware of the patterns to analyze, reporting back to the C&C upon success.

Deploying the Server

Ensure that the firewall will allow inbound access on port 3000, or specify a unique port.

$ bundle install
$ rake db:migrate db:seed
$ rails s -b 0.0.0.0

Deploying the Nodes

The nodes have only been tested with Ruby 2.2.3. Before deploying obtain a copy of the Node API Key from the C&C Settings panel (http://localhost:3000/settings). This key is used to authenticate the nodes. Providing an invalid key will result in server exceptions.

$ bundle install
$ ruby httpillage.rb --server="http://server:3000" --api-key="[APIKEY]"

Upon starting the client it'll constantly poll the server until it recieves a job. The client will spin up 5 threads that continuously send requests on behalf of the job. Clients will stop execution once the server changes the job status.

Building Extender .Jar

To build the extender .jar file, we first need to ensure that the system has ant, and is running version Java 7 or higher.

Navigate to the extender/bin/burp directory:

$ cd extender/bin/burp

Build the jar using Apache ant:

$ ant

After this has completed you should see a BUILD SUCCESSFUL message. The .jar file is located in extender/bin/burp/httpillage.jar. Import this into Burp.

Update the Server and API Token textfields within Burp to represent the values for the custom httpillage implementation.

Inside the proxy history table, right click any request and "send to httpillage." This will queue up the job on the C&C server. For verification that the response was recieved properly, click on the extender tab and you should see a C&C JSON encoded response within the Output tab.

Potential Use Cases