BurpSuite - Lisäosien rakentaminen

Ensimmäinen BurpSuite lisäosa

Helppo
15 min

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.

hakatemia pro

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ä.