Setting Up Extension Development Tools
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:
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.
Part III: Extension Project Structure and Fundamentals
Part I (Previous Post): Introduction to Burp Extender