Pentesting met Kali Linux: Test je systeem op lekken
Ben je verantwoordelijk voor je thuisnetwerk of voor het netwerk of de webserver van je bedrijf, dan wil je alle systemen natuurlijk zo goed mogelijk beveiligen tegen aanvallen van buitenaf. Een grondige analyse van potentiële kwetsbaarheden dringt zich dan op. Kali Linux is de aangewezen tool voor uiteenlopende vormen van ‘penetration testing’, ofwel pentesting.
Om te weten hoe goed je systeem bestand is tegen allerlei hackersaanvallen zijn er in feite twee mogelijkheden. Ofwel je wacht af tot de eerste geslaagde aanval een feit is, ofwel je voert zelf zulke ‘aanvallen’ uit en neemt op basis daarvan de gepaste maatregelen.
Het lijkt ons evident welke aanpak de voorkeur geniet. Daarom reiken we je in dit dubbelartikel tools aan waarmee je zelf kunt proberen specifieke computersystemen binnen te dringen. Daarbij ontplooien we activiteiten die ook cybercriminelen zouden kunnen verrichten. We gaan er echter wel vanuit dat het om je eigen systemen gaat of minstens om systemen waarvoor je de nodige autorisaties hebt.
Deze vorm van ethisch hacken wordt penetration testing, kortweg pentesting genoemd. Zo’n pentest zal vaak niet alle antwoorden bieden op je beveiligingsproblemen, maar zal het risico op een succesvolle aanval van buitenaf in elk geval sterk verminderen. Je doet er echter wel goed aan zo’n pentest op regelmatige basis uit te voeren: cybercriminelen vinden immers voortdurend nieuwe exploits voor systemen en applicaties.
Over Kali Linux
Een van de meest uitgebreide tools voor pentesting is Kali Linux, de opvolger van het populaire, op Knoppix gebaseerde BackTrack. Kali Linux werd in 2013 van de grond af herschreven en is op Debian gebaseerd. Deze distributie bevat enkele honderden pentesting-applicaties en bestrijkt zowat het hele werkveld van de (ethisch) hacker, met tools voor onder meer het verzamelen van informatie, social engineering, sniffen en spoofen, het kraken van wachtwoorden, het analyseren van kwetsbaarheden, het aanvallen van draadloze netwerken, enz.
Kali Linux is beschikbaar voor diverse platformen, met name i386, AMD64 en ARM. Het laat zich als nieuw systeem of in een dualboot-configuratie installeren, maar je kunt het tevens op een live medium plaatsen of binnen een virtuele machine draaien. Voor dit artikel gaan we uit van dit laatste scenario. We maken hiervoor gebruik van de gratis hosted hypervisor Oracle VM VirtualBox, met Windows 10 als host. Via deze tool gaan we bovendien enkele doelsystemen (targets) virtualiseren. Immers, virtualisatie biedt niet alleen een veilig afgeschermde omgeving voor je experimenten, maar met behulp van de ingebouwde snapshot-functie kun je ook snel terugkeren naar een eerdere situatie.
Een logisch begin is dus het opzetten van ons virtueel lab. Naast Kali Linux heb je bij voorkeur ook enkele uiteenlopende doelmachines beschikbaar, zoals een Linux-distributie, een oudere Windows-versie (XP) en een recentere Windows-versie, zoals Windows 7 en/of 10.
Virtual Box
Download en installeer alvast de nieuwste versie van VirtualBox. Het is onze bedoeling deze systemen via een virtueel netwerk met elkaar te verbinden, waarbij die met behulp van NAT en een virtuele gateway het internet kunnen bereiken.
Dit scenario bereid je het best als volgt voor. Start VirtualBox op en kies Bestand / Voorkeuren. In de rubriek Algemeen leg je de standaardmap voor je virtuele machines (vm’s) vast, waarbij je een locatie kiest met flink wat vrije ruimte. Ben je niet zo bekend met VirtualBox, bekijk dan zeker ook even beide tabbladen in de rubriek Invoer, want die tonen een hele reeks nuttige sneltoetsen.
Open ook de rubriek Netwerk, waar je vastlegt hoe de virtuele machines met elkaar communiceren. Op het tabblad NAT-netwerken klik je de groene plusknop aan en dubbelklik je vervolgens op het toegevoegde item. Hier kun je als je wilt de naam (NatNetwork), de Netwerk CIDR (10.0.2.0./24) en enkele netwerkopties wijzigen. Je kunt echter ook gewoon de standaardkeuzes gebruiken, inclusief dhcp-ondersteuning. Zorg wel dat er een vinkje staat bij Inschakelen netwerk en bevestig je keuzes.
©PXimport
Kali downloaden en installeren
We zijn nu klaar om onze virtuele machines te installeren en het testplatform Kali Linux lijkt ons een logische eerste kandidaat. Wij kiezen Kali Linux Vbox 64 Bit Ova, een open virtual appliance die je als volgt in VirtualBox installeert. Ga naar Bestand, kies Appliance importeren, verwijs naar het uitgepakte bestand en druk op Volgende. Via een dubbelklik op de naam kun je die aanpassen als je wilt. Je zet de operatie in gang met de knop Importeren. Na afloop kun je de vm opstarten. Inloggen doe je met de standaard gebruikersnaam root en het wachtwoord toor. Als het goed is verschijnt even later de Kali-desktop.
Het is nu tijd om de doelsystemen te installeren waarop we de pentests van Kali – op een veilige manier – kunnen uitproberen. Een dankbaar target is Metasploitable: een Ubuntu-distributie die door de makers van het populaire exploit-ontwikkelingsplatform MetaSploit werd vrijgegeven en waarin met opzet diverse kwetsbaarheden werden ingebouwd. Je vindt de download hier, dat uitgepakt onder meer een vmdk-bestand oplevert. Je haalt dat als volgt naar VirtualBox: klik op Nieuw, vul als Type Linux en bij Versie Ubuntu (64-bit) in. Je kunt volstaan met 1 GB ram. Selecteer Gebruik een bestaand virtuele harde schijf bestand en verwijs naar het vmdk-bestand. Inloggen op het systeem doe je standaard met msfadmin, zowel voor de gebruikersnaam als het wachtwoord.
Een paar Windows-systemen als target zijn zeker ook wenselijk. Die vind je gratis en bruikbaar gedurende 90 dagen in de vorm van deze handige ova-appliances, althans voor Windows 7 (x86) en Windows 10 (x64). Bij Select platform selecteer je VirtualBox.
Voor Windows XP kun je hier jammer genoeg niet meer terecht, maar we vonden een download op Softlay.net, via het uitklapmenu Windows / Windows XP ISO (het betreft Windows XP Professional SP3), waarna die zich moeiteloos liet installeren binnen VirtualBox.
Bij Windows XP en 7 doe je er wel goed aan de functie automatische updates meteen na de eerste opstart uit te schakelen, want voor onze experimenten zijn we juist geïnteresseerd in ongepatchte systemen. Dat kan via het Windows Configuratiescherm (Control Panel) in Classic View, waarna je bij System het tabblad Automatic Updates opent en Turn Off Automatic Updates selecteert.
©PXimport
Pentesting-tools
Alles is nu in gereedheid om met Kali aan de slag te gaan. Zoals gezegd bevat Kali enkele honderden pentesting-tools en die vind je op het bureaublad overzichtelijk gerubriceerd onder het menu Applications.
De rubriek Information gathering bevat maar liefst tien subcategorieën (met in totaal meer dan vijftig tools), waaronder DNS Analysis, IDS/IPS Identification, Live Host Identification en Network & Port Scanners. We maken kennis met twee bekende tools: Dmitry en Maltego.
Dmitry is een opdrachtregel-tool die je kunt inzetten voor een whois-lookup van een host, het scannen naar open tcp-poorten en het identificeren van subdomeinen. Bij de opstart toont de applicatie je al meteen enkele nuttige parameters. In zijn eenvoudigste vorm ziet een commando er als volgt uit:
dmitry <domein> </domein>
(bijvoorbeeld ‘dmitry google.com’). Je krijgt nagenoeg onmiddellijk heel wat informatie terug over het bevraagde domein, waaronder ip-adres, nameservers, registrar, subdomeinen, enzovoort. Je kunt ook specifiek naar poorten scannen (via de switch -p) en je virtuele Metasploitable-machine is een dankbaar slachtoffer. Je moet deze vm dan natuurlijk wel ook eerst opstarten – het interne ip-adres kun je hier opvragen met het shell-commando
ifconfig
Om ook de banners van de poorten te zien, zodat we de versie van de software vernemen die instaat voor de services, gebruik je de -b switch:
dmitry -pb 10.0.2.5
(het ip-adres binnen ons eigen virtueel netwerk).
©PXimport
Maltego-transforms
Een information gathering-tool met een geheel andere aanpak is het populaire – en behoorlijk indrukwekkende - Maltego. Dat bevraagt op een slimme manier publiek toegankelijke informatie over organisaties. Kali bevat de gratis community edition van Maltego, maar voor je hier daadwerkelijk mee aan de slag kunt moet je je registreren. Vervolgens kun je Maltego opstarten en je bij de service aanmelden met je accountgegevens.
Pas daarna zal Maltego de publieke transforms in zijn database laden. Transforms zijn analytische processen die publieke data over het beoogde doelwit opvragen en vervolgens die data transformeren naar een boomdiagram van gerelateerde informatie. Er zijn heel wat transforms beschikbaar in Maltego, maar je kunt desgewenst ook je eigen transforms scripten.
In de gui-interface van Maltego zie je een paneel met beschikbare transforms: de Paterva CTAS CE transform is standaard al geïnstalleerd. Bekende transforms zijn onder meer nog Cisco Threat Grid, Blockchain.info (Bitcoin), Have I Been Pwned?, VirusTotal Public API, Social Links en Kaspersky Lab. Die kun je eveneens installeren, maar meestal heb je daarvoor een token of een API-sleutel nodig die je bij de desbetreffende websites kunt ophalen.
Om een nieuw diagram te starten vanuit de Maltego-gui klik je linksboven het plusknopje New aan. In het Palette-paneel tref je een aantal transform-functies aan, waaronder Infrastructure, Locations, Malware, Personal en Social Network.
We beperken ons hier tot een tweetal voorbeelden.
©PXimport
Beginnen we met de rubriek Infrastructure, waar je de Domain-functie naar het canvas versleept. Dubbelklik op het toegevoegde item en vul de beoogde domeinnaam in. Vervolgens rechtsklik je op het item: je krijgt nu de beschikbare transforms te zien. Via het knopje Configure kun je individuele taken aanpassen en verwijderen, maar je kunt in één keer ook Run All kiezen, bijvoorbeeld bij het onderdeel DNS from Domain. Het resultaat, zowel tekstueel als grafisch, laat niet lang op zich wachten: je krijgt onder meer alle websites, nameservers en mailservers van dat domein te zien. Je kunt echter ook rechtsklikken op elk van deze subitems om nog meer details op te vragen. Het is tevens mogelijk de grafiek te bewaren en te delen.
Open ook even de rubriek Personal en sleep Person naar het canvas. Via een dubbelklik vul je de gewenste persoonsnaam in, waarna je hier alle transforms op laat uitvoeren (je hoeft niet noodzakelijk specifieke domeinen in te vullen). Voor Twitter moet je wel eerst even je autorisatie geven.
Met wat geluk duiken meteen een aantal websites, e-mailadressen en telefoonnummers op die met de beoogde persoon verband houden. En ook hier kun je nog meer transforms loslaten op elk van deze subitems, zodat je extra e-mailadressen, tweets, enzovoort te zien krijgt.
Dit zijn slechts twee van de tools die je met Kali Linux tot je beschikking hebt. Veel testplezier!