Part II: Setting Up Extension Development Tools

Part II: Setting Up Extension Development Tools
Photo by Caspar Camille Rubin / Unsplash

Parts of Series

  1. Introduction to Burp Extender
  2. Setting Up Extension Development Tools
  3. Extension Project Structure and Fundamentals
  4. Diving deeper into Extender API Interfaces
  5. Exploration - Intruder Payload Processing

We will need a proper development environment to enable ourselves to efficiently program extensions. We need the following things ready before jumping into the actual development:

NetBeans 8.2 IDE

NetBeans is a open-source IDE which is massively popular in the Java community. We'll use NetBeans 8.2 for rest of the tutorials. You are free to choose other IDEs as well and figure out the settings.

Installation of NetBeans on all platforms are straight-forward and doesn't warrant a special section. Once installed the Auto Popup on Typing Any Java Identifier Part feature needs to be enabled. It is present under Options > Editor > Code Completion > Language > Java menu; as shown:

This feature helps a lot in auto-completion which is helpful while developing extensions.

Please note that I'm aware of Apache NetBeans 9.0 but for Java 8 we'll stick with the proven Oracle NetBeans.

Installation of Java JDK

Installation of JDK differs on every platform; but here are ways to install on each:

Windows: Installer

Linux (Ubuntu):

sudo apt install openjdk-8-jdk

macOS (via Homebrew):

brew update
brew tap caskroom/versions
brew cask install java8

After the installation, the setup can be verified by running the following in terminal:

Prakhars-MBP% java -version

java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

Burp Suite & Extender APIs

Once Burp Suite Community (or Pro) Edition is installed; we have to fire-up and reach out to the Extender tab, then from there APIs tab, and finally Save interface files to a folder.

This will extract and save all the Java interface files to a folder called burp inside the chosen folder; which we will use with NetBeans to enable code-completion and compilation in the next part.