Day 030 #FromZeroToHacker – Burp Suite Extender

Burp Suite Extender lets us expand our Burp Suite installation with additional modules created for the community. You can even create your own modules too!

Let’s see how it works in our daily #FromZeroToHacker challenge.

Table of contents
Introduction
What I have learnt today?
Stats
Resources

Introduction to Burp Suite Extender

We are going to focus now on Burp’s Suite modular aspects: The exposed functionality that allows developers to create additional modules for the framework. Burp Extender lets us extend (hah!) the functionality of Burp Suite with new extensions created by the community. Even you can create your own!

The extensions interface

Burp Suite Extensions

Right now, as you can see, we have no extensions loaded yet.

The first box, the one on the top of the screenshot, provides us with a list of extensions that we have installed, allowing us to activate or deactivate them.

The options to the left of this box, allow us to add and remove extensions, while up and down let us order them. Extensions are loaded and used in descending order based on this list. That means the traffic will pass through the extensions in that order. Sometimes we may incur errors due to this, so you will have to reorder or even deactivate them.

The BApp store

The Burp App Store (or BAPP) gives us a way to download and install new extensions seamlessly with Burp Suite. Extensions are written in Java, but also can be written in other languages like Python (using the Jython interpreter).

Brup Suite BApp Store

And this is what the main section looks after an extension has been installed:

Burp Suite extension installed

Jython

If we want to use Python modules in Burp Suite, we need to include a separate Jython Interpreter JAR file. We can install it either as a standalone archive or install Jython in our own system. Let’s try to install it as a standalone archive to integrate it with Burp.

First, download an up-to-date copy of Jython JAR archive from the Jython website Jython website; the Jython Standalone option.

Jython installing

Save the JAR somewhere on your computer, then go to Options sub-tab in Extender. Scroll down to the Python environment section, and then set the Location of Jython standalone JAR file to the path in your computer.

Jython options

That’s it. As simple as that. Now, we can install Python modules from the BApp store.

And we can do the same with other languages. For example, we can install JRuby, an interpreter for Ruby language from here

The Burp Suite API

While it would take me a lot of time to teach you how to create a Burp Suite module (as I would have to learn to do it myself…), it is worth having a brief look at how can be done.

Extender exposes a large number of API endpoints that new modules can hook when integrating with Burp Suite. Let’s go to the APIs sub-tab:

Burp Suite API

Each item in the list on the left is a different API endpoint we can hook to. These endpoints give us a lot of power when writing extensions to interact with the existing functionality of Burp Suite. And we can use any of the languages supported by Burp Suite: Java (native), Python and Ruby via their interpreters.

If you are an advanced user and know how to code, PortSwigger has a great reference which can be found on their website.

Summary

Time for a recap. We have learned about:

  • What is the Extender sub-tab
  • How to install extensions from the BApp store
  • How we can add extensions in Python and Ruby with Jython and JRuby
  • What the Burp Suite API is and works, and how to create our own extensions

Stats

From 132.059th to 131.834th. Still in the top 7% in TryHackMe!

Here is also the Skill Matrix:

Resources

Path: Web Fundamentals

Introduction to Web Hacking

TryHackMe: Burp Suite Extender

Other resources

Jython installer
JRuby installer
PortSwigger: Writing your first Burp Suite extension