The S-Unit

Offensive Security’s Advanced Web Attacks and Exploitation (AWAE)

Yes! Offensive Security ’s AWAE is in bèta online beschikbaar en ik ben uitgenodigd om mee te doen! In april is het zover: mijn labtijd gaat van start. Na OSCP en OSWP denk ik voor deze OSWE-certificering een beetje te weten wat ik kan verwachten, maar niets is minder waar. In het eerste hoofdstuk van het boek gaat de steep learning curve meteen van start met lezen en schrijven van code in verschillende talen. Aangezien coding niet in mijn achtergrond zit, is het aanpoten om de (ten minste) zeven talen die ik in het boek tegenkom snel en voldoende eigen te maken om er mee uit de voeten te kunnen. Ik besluit iedere dag een uur te besteden aan het lezen van code, puur om er in thuis te raken en gevoel voor te krijgen.

In de hoofdstukken die volgen worden verschillende casussen doorgewerkt waarbij, meestal vanuit de code, verschillende kwetsbaarheden worden gevonden die gecombineerd leiden tot volledige overname van het systeem. De kwetsbaarheden op zich zijn niet bijster bijzonder, de manier waarop ze gevonden en gecombineerd worden is dat wel! Het lab bevat vijf machines waarop de kwetsbare applicaties met alle benodigde tools beschikbaar zijn. Administratieve toegang tot de machines maakt het mogelijk de source code te reviewen, exploits lokaal te testen en deze te debuggen. Hoewel het boek de lezer bij de hand pakt en mee neemt door de casussen, zijn de extra miles zoals het Offensive Security past “try harder”. Grofweg bestaat de cursus uit drie hoofdonderwerpen:

1. Code reviewing
• Overview creëren: Organisatie, code styling, comments. Ideeën opdoen voor search strings.
• Zoeken naar kwetsbaarheden: Search strings, kwetsbare functies, foutmeldingen, etc.

• Volgen van code execution pad: Wat doet het? Waar kun je ongeautoriseerd bij? Hoe kun je deze functie bereiken?
• User input: Waar wordt het gebruikt? Hoe en waar wordt het gevalideerd/ gesaneerd?

2. Web application exploitation
• Vulnerability chaining


• Automatiseren van exploits

3. Debugging
• Live debuggen van applicaties
• Debuggen van onder meer exploit code

Als het boek uit is, en de extra miles gedaan, heb ik het gevoel dat ik nog onvoldoende basis heb om met name mijn nieuwe code reading skills in te zetten in andere situaties dan de beschreven casussen. Er zijn geen extra machines in het lab waarop geoefend kan worden, zoals bij OSCP. Een echte methodologie voor code reading en het vinden van kwetsbaarheden -een meer generieke aanpak- blijft m.i. onderbelicht in het boek. Met aanvullend onderzoek, en door middel van het zelf opbouwen en vervolgens misbruiken van andere kwetsbare webapplicaties (exploit-db is daar een mooie bron voor), verbreed ik mijn skillset.
Het examen van 48 uur is mind-blowing. Niet alleen code reading en technische skills worden getest, maar zoals bij ieder Offensive Security examen ook time-management skills, het vermijden van rabbit-holes, en het onder druk niet in paniek raken, maar blijven nadenken. Niets gaat vanzelf, niets is obvious, behalve als je de juiste overwegingen en goede route ernaartoe hebt gevolgd. Dan ineens valt alles op zijn plek. Na een killing 50 uur lever ik mijn rapportage op en sluit ik mijn examen af met 100 van de 100 punten!! I am officially OSWE certified! www.youracclaim.com

My tips and tricks:

SOURCE CODE REVIEW:

Train het vinden van kwetsbaarheden in verschillende talen. Dit kan ook, maar is minder leuk, zonder dat je de applicatie hebt draaien. Aandachtspunten zijn (het herkennen van) vanaf de frontend bereikbare code (unauthenticated!), userinput, en het volgen van het code execution pad. Where to start:
• Zoek op veel gebruikte termen. “query” en “‘select|insert|update” worden bijvoorbeeld vaak gebruikt voor database query’s. $_GET geeft in PHP userinput aan. Search strings kunnen worden geïdentificeerd tijdens het creëren van een overview van de code.
• Zoek op kwetsbare functienamen. “eval”, “exec”, en “serialize” zijn voorbeelden van functies die potentieel te misbruiken zijn. Zoek bronnen, of maak zelf een lijstje, van dit soort functies.
• Zoek op hints/woorden/foutmeldingen van de frontend. Parameters in de URL kunnen vaak worden gebruikt om (dezelfde) bijhorende functienamen in de code te vinden. Foutmeldingen kunnen gebruikt worden om het code execution pad the vinden, volgen en potentieel misbruiken.
• Grep en regex are your best friends! Get very familiar with them! Slimme greps in de code, zo nodig gecombineerd met regex search strings, geven snelle en doeltreffende resultaten.

EXTRA TRAINING:

Bouw zelf machines op met kwetsbare applicaties. Zowel het opbouwen, als het zoeken en misbruiken van kwetsbaarheden, geeft nieuwe inzichten en extra oefenmateriaal. Kwetsbaarheden en bijhorende kwetsbare applicaties zijn te vinden op www.exploit-db.com.
• Een oudere versie van DNN
• Een oudere versie (of ander product!) van ManageEngine Applications Manager
• Willekeurige kwetsbare NodeJS applicaties
• Willekeurige kwetsbare PHP applicaties

GENERAL:

Generieke dingen die mij door het examen hebben geholpen, en nuttig zijn bij klussen in de praktijk:
• Neem de tijd. De key is om volledig te begrijpen wat er gebeurt. Stay calm!
• Bevestig source code bevindingen door middel van een PoC in burp en/of verbose errors en (database) logging.
• Don’t forget: je hebt source code en een werkende applicatie. Denk vanuit een blackbox perspectief. Wat zou je dan proberen/bypassen/manipuleren/etc. Welke typen kwetsbaarheden bereiken wat je wilt? Kijk vervolgens in de code of je een van die dingen kunt vinden.
• Duik dieper in de details van een exploit als je er zeker van bent dat het zou moeten werken, maar hij het toch niet doet. Wat begrijp je onvoldoende/verkeerd? Basically: try harder!
• Debug scripts door middel van print statements.
• Last but not least: Have fun and happy hacking!

×

 

Hallo!

Heb je een vraag voor ons? Vraag het aan Kai!

× Heb je een vraag?