ExtendedMacro-BurpSuite

ExtendedMacro – BurpSuite plugin

Úvod

BurpSuite Proxy patrí medzi štandardy používané pri penetračnom testovaní webových aplikácii. Aj keď je tento nástroj veľmi dobrý, stane sa, že nedisponuje funkcionalitou, ktorú momentálne potrebujete. Našťastie je ju možné rozširovať formou pluginov.

Už neraz sa nám stalo, že sme potrebovali špecifickú funkcionalitu, ktorú bolo veľmi nepraktické vykonávať manuálne - napr. podpisovanie požiadaviek. Ďalšia pomerne často žiadaná funkcionalita je vykonanie niekoľkých požiadaviek pred alebo po vykonaní špecifickej akcie používateľa. Typickým príkladom je prihlásenie používateľa a obnovenie session cookie, vyžiadanie si CSRF tokenu alebo vyplnenie viackrokových formulárov. Čiastočne túto funkcionalitu poskytuje Burp Macro, avšak v obmedzenej podobe (napríklad neumožňuje upravovať HTTP hlavičky). Preto sme sa rozhodli vytvoriť plugin, ktorý by túto rozšírenú funkcionalitu poskytoval.

Plugin je dostupný priamo Bapp Store vrátane zdrojových kódov na GitHube. Je vydaný pod MIT licenciou.

Popis funkcionality pluginu

Hlavná funkcionalita je nasledovná: Plugin umožňuje nadefinovať sériu požiadaviek, ktoré sa vykonajú pred každou požiadavkou/akciou používateľa z jednotlivých nástrojov Burpu ako sú Proxy, Repeater, Scanner, Intruder, Sequencer alebo Spider. Tieto požiadavky je možné vykonávať zakaždým alebo len v pravidelných časových intervaloch. Plugin umožňuje aj reťazenie požiadaviek a modifikáciu jednotlivých požiadaviek na základe predchádzajúcich (napr. vyžiadame si CSRF token, jeho hodnotu vezmeme z odpovede a nastavíme ju ako novú HTTP hlavičku pre nasledujúcu požiadavku).

Funkcionalita popísaná v bodoch:

  • Vytvorenie zoznamu požiadaviek, ktoré sa vykonajú pri každej akcii
  • Extrahovanie dát z odpovedí
  • Vloženie extrahovaných dát do nasledujúcich požiadaviek (nahradenie existujúcich dát, pridanie novej HTTP hlavičky, nahradenie HTTP hlavičky)
  • URL dekódovanie extrahovaných dát
  • Možnosť „cachovania“ extrahovaných dát (nastavenie časového intervalu, po ktorom sa majú znova odoslať vybrané požiadavky)

Výhody oproti Burp Macro:

  • Možnosť nahradiť ľubovoľné dáta v požiadavke
  • Možnosť pridať novú HTTP hlavičku
  • Jednoduchšia konfigurácia než pri Burp Macro
  • Možnosť „cachovania“ extrahovaných dát

Popis UI pluginu

Po nainštalovaní do Burpu sa pridá nová záložka s názvom Extended Macro a do kontextového menu sa pridá nová položka s názvom „Send to ExtendedMacro“. ExtendedMacro obsahuje tri hlavné komponenty s názvami:

  • „Main“ – hlavné okno
  • „Logger“ – história vykonaných požiadaviek
  • „Settings“ – nastavenia

Main

burpsuite V tejto záložke sa nachádza hlavná funkcionalita pluginu. Je tu viditeľný zoznam všetkých požiadaviek a operácií, ktoré sa majú vykonať (aké dáta extrahovať/nahradiť). Ľavá strana umožňuje konfiguráciu pre extrakciu dát – „Extraction message list“. Pravá strana umožňuje konfigurovať kam a ako sa extrahované dáta vložia – „Replace message list“.

Extraction message list

Sem sa pridávajú všetky požiadavky, ktoré si želáme vykonávať. Poradie vykonávania je dané poradím požiadaviek v zozname, vykonávajú sa zhora nadol. Po kliknutí pravým tlačidlom myši sa zobrazí kontextové menu, pomocou ktorého môžeme požiadavky mazať alebo meniť ich poradie.

Po kliknutí na požiadavku sa načíta jej obsah do záložiek „Request“ a „Response“. Následne vieme označiť dáta, ktoré chceme extrahovať z odpovedi a kliknutím na tlačidlo „From selection“ v „Extraction configuraion“ sa automaticky vytvorí pravidlo pre extrakciu. Nakoniec nastavíme iba názov a klikneme na „Add“. V zozname sa zobrazí nové pravidlo.

Replace message list

Táto záložka zobrazuje požiadavky a pravidlá definujúce kde a čo sa má nahradiť alebo pridať z extrahovaných dát. Najskôr je potrebné mať vytvorené pravidlo pre extrakciu, ktoré môžeme následne použiť. Dáta je možné vložiť buď pre aktuálne označenú požiadavku alebo na poslednú (vykonanú používateľom).

Logger

burpsuite

Záložka Logger zaznamenáva všetky požiadavky, ktoré boli spracované pluginom. Slúži to najmä pre účely ladenia.

Settings

burpsuite

Umožňuje nastavenie pluginu. Môžeme zvoliť, ktoré nástroje budú spracované pluginom (Repeater, Scanner, Spider, Intruder, Sequencer alebo Proxy). Ďalej umožňuje konfiguráciu intervalu „cachovania“ extrahovaných dát.

Príklad použitia – získanie CSRF tokenu a vloženie ho do požiadavky spracovanej Burpom

  • V proxy zvolíme požiadavku, pomocou ktorej si vyžiadame platný CSRF token a klikneme pravým tlačidlom myši a zvolíme „Send to ExtendedMacro“
  • otvoríme ExtendedMacro a vyberieme konkrétnu požiadavku v zozname "Extraction message list" (ľavý zoznam)
  • označíme dáta v „response“ editore – v našom prípade CSRF token, ktorý chceme použiť
  • klikneme na tlačidlo "From selection" – vytvorí to pravidlá pre extrakciu, môžeme ich napísať aj ručne (začiatočný a ukončovací reťazec)
  • nastavíme názov a klikneme na tlačidlo "Add" – v „Extraction configuration“ sa vytvorí nové pravidlo (riadok) s názvom a ID správy
  • v pravo „Replace configuration“ zvolíme typ „Replace header on Burp request“ – toto zmení hodnotu HTTP hlavičky, ak sa tam nachádza, alebo pridá hlavičku
  • do poľa „Replace/Header name“ zadáme názov hlavičky napr. „Anti-CSRF-Token: “
  • vľavo v „Extraction configruration“ zvolíme pravidlo, ktoré extrahuje CSRF token
  • v pravo „Replace configuration“ nastavíme názov a klikneme na „Add“ – vytvorí sa nové pravidlo, ktoré automaticky upraví HTTP hlavičku pre každú požiadavku z Burpu
  • Teraz môžeme vyvolať požiadavku napr. z repeatera a v logoch pozrieme ako sa upravili HTTP hlavičky

O autorovi

Citadelo
Citadelo je dom plný etických hackerov na vašej strane. Pomáhame otestovať ich informačnú bezpečnosť. Podrobte svoje IT prostredie výzve a odhaľte, do akej miery sú vaše citlivé dáta chránené.
Zobraziť viac od autora

Podobné blogy

Bezpečnosť na internete - Viete sa správať v online priestore bezpečne?

blog |
Priemerný človek strávi na internete každý deň 3 hodiny a 20 minút. Okrem užitočných informácií a zábavy ale na nás čaká v online svete aj veľké množstvo hrozieb.
Zobraziť

Citadelo na novom a ešte bezpečnejšom webe

Blog | | Michaela Gallee
Naša požiadavka na bezpečný web sa môže niekomu zdať prehnaná, nie sme predsa svetová banka. To však nič nemení na tom, že našou víziou je bezpečný internet a preto naša priorita bola kladená na bezpečnosť.
Zobraziť

Čo sú cookies, na čo slúžia a máme sa ich báť?

Blog | | Tomáš Melicher
Ešte stále neviete čo sú cookies? Prečo ich vidíte takmer na každej stránke, a prečo s nimi musíte súhlasiť, aj keď nechcete? Prečítajte si článok o tom, na čo slúžia cookies vo webových prehliadačoch aj o tom, ako súvisia s internetovou bezpečnosťou.
Zobraziť

Ako si objednať pentest- kompletný návod

Blog | | Martin Hanic
Hoci ľuďom z IT bezpečnostnej branže môže táto otázka pripadať rovnako triviálna ako "Ako si objednať nabíjačku na telefón", pre mnohých však spísanie objednávky na pentest predstavuje podobnú úlohu ako navrhnutie jadrovej elektrárne.
Zobraziť