Het grote Pentest Topic
Welkom in het kennis- & ervaringentopic over pentesting. Hier proberen we uit te leggen en te praten over alles wat je zoal tegenkomt als je je bezig houdt met security. Uiteraard op zowel hobby-matig als professioneel vlak.Wat is pentesting?
De naam pentest is afgeleid van de langere term penetratie testen. Hiermee bedoelen we het testen van software en/of hardware, met als doel het vinden van zwakke plekken. Dat is nuttige informatie; als je op de hoogte bent van zwakke plekken kan je maatregelen nemen om de kans te verkleinen dat deze worden misbruikt.
Bron: https://www.guardian360.nl/de-onzin-van-pentesten/
In sommige gevallen is het zelfs noodzakelijk om pentesten te laten doen op bepaalde systemen. Denk hierbij bijvoorbeeld aan aanlsuiting op het DigiD platform van de overheid. Hierbij zal door gecertificeerde bedrijven een pentest uitgevoerd moeten worden om aan te tonen dat je veilig met je klanten kan communiceren. In de meeste gevallen zul je ook met een bepaalde interval deze testen moeten herhalen om aan te blijven tonen dat je veilig bent. Voor bijvoorbeeld DigiD geldt dat dit ieder jaar moet gebeuren.
Voor Pentesting heb je tools waarbij je het zelf kan uitvoeren. Er worden tevens ook kant en klare oplossingen verkocht.
Pentesting DIY
- MetaSploit - Gratis variant, betaalde support beschikbaar
- Kali / BackTrack - Gratis set tools (incl. MetaSploit Free)
- Nessus - Gratis trial
- Beyond Security ADVS - Betaald
- The OrangeBox
Hero of Time schreef op vrijdag 20 oktober 2017 @ 08:32:
Nou, klinkt eerder een onderwerp om in B&V te bespreken. Kunnen anderen ook meedenken, praten en leren.
unezra schreef op vrijdag 20 oktober 2017 @ 09:28:
Ja, graag!
Ik kom sowieso te weinig echte sysadmin topics op Tweakers tegen. :-) Het mag wel wat drukker worden in de pro hoek.
Tools
MetaSploit
MetaSploit is een grote database waarin je kan testen op allerlei zogenaamde CVE's. Dit zijn bekende vulnerabilities die allemaal verzameld worden en gepubliceerd. Als je een lek gevonden hebt kan je deze aanmelden en komt ook jouw naam bij deze CVE te staan. Dit staat trouwens ook erg leuk op je CV!
Gezien het open karakter van de CVE lijst en MetaSploit kan je vrij snel aan de gang. Zeker als je een Linux ISO van bijvoorbeeld Kali gebruikt. Kijk eens naar deze simpele tutorial waarin vrij basaal wordt uitgelegd hoe dit in zijn werk gaat. Als je hiermee voor de eerste keer gaat pielen, probeer dan een en ander uit in een paar VM's. Installeer eens een kale Windows XP en schrik je te pletter
Kali / Backtrack
Sinds jaar en dag is Kali een grote aanwinst voor de beheerder die zelf net nog even voor de externe pentest wil kijken of die er door heen komt. Kali is te downloaden als ISO voor zowel x86, 64 als ARM platform. Als je dus geautomatiseerde testen vanaf je trouwe RasPi wil doen, kan dat ook!
Kali bevat een bijzonder groot aantal tools om op allerlei vlakken testen te kunnen doen op diverse lagen van je OSI model. Denk bijvoorbeeld aan DNS intercepts, VOIP verkeer, Wifi sniffen, maar ook exploits vanaf Layer5 en hoger. CVE's zijn te testen via MetaSploit enzovoorts. Dit is tevens een grote valkuil omdat je er verschrikkelijk veel mee kan. Klein beginnen dus.
Verder kan het een draak zijn om je wireless in Kali aan de praat te krijgen. Zorg dus dat je een goede wifi kaart tot je beschikking hebt. Check alhier eens. WhizzCat gebruikt op het werk Proxim kaarten met de ORiNOCO chips. Kost wat, heb je ook wat. Hiermee kan je ook b.v. op Layer2 Probe pakketjes sniffen (met airmon-ng i.c.m. Wireshark).
Tips voor het hele proces van Pentesten
Hier volgt een kort stappenplan voor het hele proces van een Pentest. Tegenwoordig zie je dat hack pogingen steeds meer de kant van social engineering opgaan. Hoe vogel ik wachtwoorden uit van gebruikers, wat gebeurt er in een bedrijf en hoe lopen de processen? Dit stappenplan is natuurlijk, gezien de aard van het topic, puur technisch.
Mocht je hiermee aan de slag willen, adviseren we met klem om dit in een virtuele omgeving los van je netwerk te doen!
Stap 1. Information Gathering / Enumeration
Hier proberen we om zo veel mogelijk informatie te verzamelen over het doelwit. Dit kan een bedrijf zijn maar ook bijvoorbeeld een bepaalde applicatie of IoT device indien we meer op 0-day vulnerability discovery gericht zijn.
Stap 2. Vulnerability Discovery
Nu kunnen we alle verzamelde informatie gebruiken om naar zwakheden/vulnerabilities te zoeken. Er is veel tooling om bekende vulnerabilities te ontdekken zoals o.a. Nessus, Metasploit, Nikto, , etc. Daarnaast is het mogelijk om naar 0-days te zoeken maar dit vereist een iets andere toolset b.v. IDA Pro, Sysinternal Tools, Microsoft ASA, fuzzers, etc.
Stap 3. Exploitation
Na het vinden van vulnerabilities is het tijd om ze ook daadwerkelijk te misbruiken. Hiervoor is het vaak nodig om een payload (shellcode) toe te voegen zodat de exploit iets nuttigs doet. Voorbeelden zijn een bind shell starten, user toevoegen aan het systeem, executables downloaden, etc.
Dit kun je makkelijk genereren met Metasploit of downloaden van diverse websites. Heb je tijd te veel dan kun je het ook zelf schrijven. Let op dat AV soms alarm kan slaan en je exploit dan niet werkt. Test in je vrije tijd op een virtuele omgeving zodat je weet hoe AV en andere end-point security maatregelen zoals application whitelisting een impact kunnen hebben. Google kan je vaak helpen om daar omheen te werken.
Stap 4 Post-Exploitation
De meeste exploits zijn er op gericht om ergens toegang tot te krijgen. Nu we dat hebben doorlopen we globaal de volgende fases:
1. Information Gathering: waar zijn we? Wat voor rechten hebben we? Welke netwerk segmenten zien we? etc.
2. Elevation of Privileges: wellicht zijn we een web-user en gaan we nu op zoek naar manieren om root / admin access te verkrijgen. Een populaire en simpele methode op Windows is b.v. DLL planting/hijacking of zwakke rechten van directories /services misbruiken. Op Linux vaak SUID/GUID executables en command injection.
3.Persistence: om niet opnieuw dezelfde exploit te moeten gebruiken, of nog erger: een nieuwe te zoeken omdat de initiele gepatcht is, is het van belang een achterdeur in te bouwen. Dit kan van alles zijn. Het minst onzichtbaar zijn manieren welke van legitieme services gebruik maken. B.v. als de host een SSH server aan heeft staan dan voegen we onze RSA key toe of een nieuwe user. Misschien hebben we een connect-back shell, deze kunnen we over DNS of HTTPS laten lopen.
4. Optioneel: Data Exfiltration, pas hier mee op in een pentest. Voordat je het weet staat er gevoelige data buiten het bedrijf. Het beste kun je dit simuleren door het bedrijf "flags" te laten plaatsen op hun systemen. Dus een tekst-bestand met een bepaalde hash welke je als pen-tester moet achterhalen.
Andere leuke dingen
- Cain & Abel - Deze tool is in staat om APR (ARP Poison Routing) te doen. Bekend van de beruchte "Man In The Middle attack". LET OP: het gebruik van deze software is wat ons betreft grijs gebied!. Deze techniek van MITM wordt overigens ook gebruikt om Gast pagina's op gratis Wifi netwerken mogelijk te maken. Dit is namelijk domweg een intercept van je DNS verkeer.
Disclaimer
Pentesting om je eigen systemen te testen zijn legaal, echter worden deze tools helaas ook misbruikt voor andere doeleinden.
Dit topic is alleen bedoeld voor de educatieve kant, niet om je eigen hacking sk1ll5 richting een ander te proberen!
Credits/koekjes/kudos:
* sh4d0wman (Proces van pentests)
[ Voor 94% gewijzigd door WhizzCat op 25-10-2017 21:30 . Reden: Proces beschrijving n.a.v. input ]
Hold. Step. Move. There will always be a way to keep on moving