Jython-asennus
Tässä moduulissa käydään läpi kuinka luodaan ihka ensimmäinen, oma BurpSuite-lisäosa, eli tavallaan BurpSuite-lisäosien "hello world". Rakennamme lisäosan Python-ohjelmointikielellä. BurpSuite on rakennettu Javalla, joten joudumme käyttämään Jython-nimistä pakettia, joka kaikessa yksinkertaisuudessaan kääntää kirjoittamamme Python-koodin Java-muotoon.
Jython tukee tällä hetkellä ainoastaan Python2:sta, joten hyvä muistaa, ettemme voi käyttää Python3:n ominaisuuksia kirjoittaessamme lisäosia.
Aloitetaan lataamalla tarvittavat Jython-paketti täältä. Oikea tiedosto on nimeltään jython-standalone-2.7.4.jar. Kun olet ladannut kyseisen tiedoston, avaa BurpSuite-ohjelma ja sieltä Extensions-ikkuna.
Valitse Extensions Settings ja sieltä aseta äskettäin lataamasi Jython JAR -paketti Python environment -kohtaan.
Tämän jälkeen voit varmistaa, että tämä toimii kokeilemalla asentaa Autorize -lisäosan Burpin lisäosa-katalogista. Tämä vaatii Jythonin toimiakseen. Jos voit tämän asentaa, niin sitten kaikki toimii niin kuin pitääkin.
Oman lisäosan asentaminen BurpSuite-ympäristöön
Luodaan seuraavaksi oma BurpSuite-lisäosa ja asennetaan se Burppiin. Tee uusi tiedosto ja tallenna siihen seuraava Python-koodi.
from burp import IBurpExtender
from burp import IHttpListener
class BurpExtender(IBurpExtender, IHttpListener):
# Tätä funktiota kutsutaan asennuksen yhteydessä
def registerExtenderCallbacks(self, callbacks):
# luodaan referenssit tärkeisiin luokkiin, lisää myöhemmin
self.callbacks = callbacks
self.helpers = callbacks.getHelpers()
# Määritetään lisäosalle nimi
callbacks.setExtensionName("Hello World - plugin")
# rekisteröidään HTTP kuuntelija toiminnallisuus
# tämä tärkeä myöhemmin
callbacks.registerHttpListener(self)
# Tulostetaan Burp Ympäristössä ja varmistetaan toimivuus
print("Hello World")
Lisää seuraavaksi kyseinen tiedosto valitsemalla BurpSuitesta Add, valitse Python Extension Type -kenttään ja hae lisäosatiedosto.
Olet nyt asentanut ihka oman BurpSuite-lisäosan!
Koodin ymmärtäminen
Kurssissa oletetaan perustason ymmärrys Python-ohjelmointikielestä kuin myös BurpSuite:n toiminnasta, joten kaikkiin koodin aspekteihin ei paneuduta sen syvemmin. Koodista kuitenkin tärkeimmät asiat ymmärtää on:
- registerExtenderCallbacks - Funktio, jota kutsutaan BurpSuite-ohjelman toimesta, kun lisäosaa asennetaan.
- setExtensionName - Funktio, jolla asetetaan lisäosalle nimi, joka näkyy sitten Burpissa.
- registerHttpListener - Funktio, jolla lisäosa kertoo Burpille, että halutaan kuunnella/manipuloida HTTP-liikennettä. Tärkeä myöhemmin kurssissa.
Kaikki tärkeimmät tiedot liittyen BurpSuite-lisäosien rakentamiseen käyttämällä näitä kyseisiä funktioita ja rajapintoja, löytyy täältä: https://portswigger.net/burp/extender/api/burp/package-summary.html
Tätä tullaan käyttämään ja tähän tullaan viittaamaan tällä kurssilla paljon. Kannattaa siis tutustua. :)
Mikä on registerExtenderCallbacks -funktion kuvaus BurpSuite:n omassa dokumentaatiossa? - Etsi ja kopio englannin kielinen kuvaus.
Valmis ryhtymään eettiseksi hakkeriksi?
Aloita jo tänään.
Hakatemian jäsenenä saat rajoittamattoman pääsyn Hakatemian moduuleihin, harjoituksiin ja työkaluihin, sekä pääset discord-kanavalle jossa voit pyytää apua sekä ohjaajilta että muilta Hakatemian jäseniltä.