Pen-testing met Burp Suite

c't-partner
0

Inhoudsopgave

Het pen-testen van webapplicaties is een van de meest belangrijke disciplines binnen IT-security. Webapplicaties zijn tegenwoordig de primaire weg om online services te benaderen, of dat nu is via Software-as-a-Service (SaaS), een netwerkapparaat of een ventilatiesysteem.

De tool Burp Suite (https://portswigger.net/burp) is in korte tijd de standaardtool voor penetration-testing geworden. Er is een gratis versie van, maar de professionele en betaalde versie heeft handige extra mogelijkheden, waaronder vulnerability-scanning met de naam ‘Active Scanning’, verder geen beperkingen op de fuzzing-engine, een content-discovery-module voor het vinden van additionele content op het target-systeem, het bewaren van sessies, projectmanagementfuncties en andere ge­avanceerde features.

Andere proxy’s kunnen ook handig zijn, zoals OWASP Zap, maar hier gaan we uit van Burp Suite. De meeste technieken zijn echter transparant genoeg om bij andere software gebruikt te kunnen worden.

pen testing Burp Suite

Extensies

Er zijn een aantal extensies voor Burp Suite. De meeste daarvan zijn gemaakt door James Kettle (Twitter: @Albinowax), Head of Research bij Portswigger Web Security. We geven hier een klein overzicht van de handigste plug-ins waarvan we vinden dat die het meest bijdragen aan een ‘Minimum Viable Testing’-proces.

De plug-in Active Scan ++ is een leuke kleine toevoeging aan de scanner van Burp Suite. Je kunt er interessante resultaten van de applicatie mee testen en het is voornamelijk een bron voor verder onderzoek naar een script dat wel of niet kwetsbaar kan zijn. Met Additional Scanner Checks kun je makkelijk en geautomatiseerd testen op bijvoorbeeld ontbrekende security-headers van de server. Dit biedt ook een paar mooie methoden om DOM-based XSS-vulnerabilities te vinden.

De extensie Backslash powered scanner is onmisbaar voor iedere geavanceerde penetration-tester. Je kunt er vreemd en onbekend gedrag mee identificeren op zo’n manier dat de tester potentieel interessante flaws in een applicatie kan onderzoeken. Een gewone scanner kan dat niet. Kijk wel uit voor false-positives, maar een goede tester weet daar wel mee om te gaan.

Collaborator Everywhere is een mooie extensie die referenties toevoegt aan Burp Collaborator in veel verschillende headers op het doel in kwestie. Het advies is om dit aan te zetten bij een totale aanval van de applicatie, en dit daarna weer te disablen. Met Param Miner kun je aanvallen identificeren via GET, POST en header-values, die anders onontdekt blijven. Param Miner is lekker snel.

Daarnaast kun je met CSP Auditor potentieel zwakke CSP-configuraties vinden en een beter inzicht in de CSP-rules op het target-systeem krijgen. Met J2EE scan kun je een grote range aan potentiële vulnerability’s in Java Enterprise-deployments vinden. De resultaten daarvan wil je zeker niet missen. Retire.js wijst je op Javascript-bibliotheken met bekende vulnerabilities, zodat je beter kunt identificeren of een van de kwetsbare functies gebruikt wordt. Je kunt er werkende proof-of-concepts mee maken en je klanten adviseren over hoe ze Javascript in hun patch-management-programma moeten opnemen.

De methode

Het eerste doel van de ‘minimum viable’-methode is om in kaart te brengen wat de aanvalsmogelijkheden van de applicatie zijn. Lees daarvoor vooral ook het boek ‘Web Applications Hacker Handbook’ (tweede editie) om te kijken hoe je dat doet.

Een pen-tester moet op zijn minst ervoor zorgen dat de hele applicatie nauwkeurig doorzocht wordt zodat alle gelinkte content ontdekt kan worden. Dat betekent dat je door de hele applicatie heen moet kunnen wandelen, door alle functionaliteiten heen moet kunnen klikken om goed te begrijpen wat er gebeurt voordat er aanvalsverkeer binnenkomt. Als je erop kunt klikken, moet je het in kaart brengen en begrijpen wat de bedoelde functionaliteit is voordat je die gaat hacken.

De applicatie kan nog steeds een aanvalsvlak hebben, ook al zie je dit niet, bijvoorbeeld als de huidige gebruiker geen privileges heeft om het te zien. Het is toch van belang die functionaliteiten te ontdekken, ook al moet je daar naar gissen. In het ideale geval geeft de doelorganisatie je alle transparantie die je nodig hebt om elk onderdeel van het platform aan te vallen, maar dat is niet altijd haalbaar.

Gebruik de sitemap-feature van je tool en weet waar bepaalde functionaliteiten zitten, en waar je mogelijk nog meer functies zou kunnen vinden. In dit geval is dat Burp Intruder. Op sommige plekken is er een script als /viewUser. Door het woord ‘view’ weet je dan dat er waarschijnlijk andere functies zijn zoals /addUser, /removeUser, /updateUser en dergelijke.

De content-discovery-module van Burp Suite is nog niet optimaal, maar dient als een goed startpunt. Sta het algoritme toe om meer content te ontdekken door scripts te raden en woordenlijsten te gebruiken. Met andere tools als DirBuster van OWASP kun je ook ongelinkte content vinden. Alle folders en scripts moeten genummerd worden omdat er ook andere extensies als .bak, .backup, .gzip en meer zouden kun­nen zijn.

Dan is het tijd om de applicatie aan te vallen en vulnerability’s in kaart te brengen. Moderne web­applicaties bevatten normaal gesproken meerdere lagen van middleware voordat ze bij de applicatie- of webserver uitkomen waar de functionaliteiten staan. Die moeten allemaal aangevallen worden.

Aanvallen maar

Voor elk aanvalspunt moet je in ieder geval de volgende stappen uitvoeren. Run eerst de scripts met Repeater, een tool in Burp Suite waarmee je grote controle hebt over de requests die je aan een script doet. Je kunt het target-script er handmatig mee testen en begrijpen om het beter aan te kunnen vallen. Denk eraan dat automation je niet zal helpen om de meer geavanceerde vulnerability’s te ontdekken, dus je moet elk klein detail van elk script goed begrijpen.

Laat vervolgens de fuzzing-engine, Intruder en de corresponderende extensies hun werk doen. Met de fuzzing-engine kun je de individuele parameters testen die een script accepteert. Probeer verschillende woordenlijsten met klassen van aanvallen, zoals een groot aantal verschillende aanvalstypen tegen bijvoorbeeld SQL-injectie en dergelijke.

Met de Intruder in Burp Suite kun je individuele para­meters naar de Active Scanning-engine sturen, waar­door je zekerder weet dat de meeste kwets­baarheidsklassen getest zijn. Daardoor kunnen de extensies ook hun werk doen met de individuele input-­parameters.

Als laatste moet je handmatig identificeren of er discrepanties of anomalieën voorkomen die nader bestudeerd moeten worden. Die stap is cruciaal; je moet handmatig onderzoeken en begrijpen hoe de applicatie presteert met elke vorm van input. Hier test je de applicatie en de onderliggende lagen op elk type van interessant gedrag. Voor deze stap is het aan te raden de scripts te fuzzen met inputs van %00 tot en met %FF en alle responsen op te nemen. Alle anomalieën moeten worden onderzocht. Probeer alle mogelijke hex-waarden met en zonder URL-encoding, dan zie je waarschijnlijk wel interessant gedrag langskomen dat je handmatig verder kunt testen.

(Chris Dale – namens het SANS Institute)

Chris Dale (Twitter: @chrisadale) is gecertificeerd instructeur bij het SANS Institute. Voor meer gratis materiaal (rapporten, onderzoek, posters, webcasts …) over penetration-testing en ethical hacking, of om te zien waar Chris Dale les geeft, zie de SANS-website (sans.org/trainwithSANS).

Sans Chris Dale Sans logo

Meer over

Websites

Deel dit artikel

Lees ook

Innovatie in vele vormen: ASUS, ‘In search of Incredible’

ASUS is een fabrikant die vaak nieuwe dingen probeert, geheel volgens de slogan 'In search of Incredible'. Bekijk dit overzicht maar eens.

Zijn bedrijven klaar voor de EU NIS2-richtlijn?

Nu de lat voor cybersecurity steeds hoger komt te liggen, is de enquête van SANS Institute een cruciaal controlepunt voor organisaties om hun verdedig...

0 Praat mee
avatar
  Abonneer  
Laat het mij weten wanneer er