Cybercrime Challenge 2014

Dit jaar heb ik meegedaan aan de Cybercrime Challenge: Operation High Impact van Team High Tech Crime van de Nationale Politie (ontwikkeld in samenwerking met Tweakers en QCSEC). Mijn dank voor de leuke uitdaging!

Dit deed ik niet onverdienstelijk, was als 4e klaar met het digitale pad (waar Dmitry als eerste klaar was), en als 1e die het tactische pad had opgelost en dus ook beide paden.

2e plek Cybercrime Challenge
2e plek Cybercrime Challenge

Ik was de tweede in snelste tijd, moest alleen Crypto Sjon voor me dulden. (Screenshot is ten tijde van het schrijven van deze blogpost. Inmiddels zijn de antwoorden online te vinden en worden mensen dusdanig gehint dat een snelle tijd halen erg makkelijk is).

Hieronder een omschrijving van alle challenges en hoe ik het opgelost heb. (Sommige challenges maken gebruik van social media, kan zijn dat deze niet meer beschikbaar zijn, alle downloadbare content heb ik gemirrored).

LEVEL 1

Onder verdachte omstandigheden overlijdt iemand in het ziekenhuis. De man is in het ziekenhuis opgenomen nadat hij een merkwaardig ongeval ter­nauwer­nood heeft overleefd. Dat ongeval was al erg opmerkelijk, net als zijn overlijden nu. Uit de autopsie blijkt namelijk dat het kaliumgehalte in het bloed van het slachtoffer veel te hoog is. Hoe heeft dit kunnen gebeuren? Heeft iemand uit het ziekenhuis hier de hand in gehad? Vraag de gegevens op van alle toegangs­passen van het ziekenhuispersoneel en de camerabeelden van het bevei­ligings­bedrijf om dit uit te zoeken.

Vraag

Wie is er op de intensive care geweest, of probeerde daar te komen, terwijl diegene daar niets te zoeken had?

Persoonlijk heb ik door de camerabeelden gescrolled totdat ik iets verdachts tegen kwam. Rond 21.01 zie je het beeld vertroebelen en is de camera zijn verbinding kwijt. Dit ziet er verdacht uit, als we rond deze tijd in het Excel werkblad kijken zien we twee ongeldige pogingen om op de intensive care te komen:

3-04-14    21:00        Ongeldig    Intensive Care    Siwalette    Saskia
3-04-14    21:01        Ongeldig    Intensive Care    Siwalette    Saskia

Antwoord: Saskia Siwalette.

LEVEL 2

Goed gezien! Saskia Siwalette, de directiesecretaresse is verdachte nummer 1. We focussen het onderzoek op haar. Zelf beweert ze onschuldig te zijn. Volgens eigen zeggen is ze de laatste tijd vaker slachtoffer van dit soort vreemde gebeurtenissen. Enige tijd geleden is er bijvoorbeeld bij haar inge­broken en zijn haar sieraden gestolen. Gelukkig hadden de inbrekers haar laptop en portemonnee laten liggen. Vlak na de inbraak kreeg ze een afschrift van haar creditcard­betalingen. Daarop stonden meerdere Paybuddy-betalingen die zij niet heeft gedaan. Ook hiervan heeft ze aangifte gedaan. De processen-verbaal bevestigen haar verhaal. Klopt dit verhaal wel, gezien de ontwikkelingen in het ziekenhuis? Of heeft ze een alibi voor de avond van de inbraak en is ze dus inderdaad slachtoffer?

Vraag

Waar was de directiesecretaresse ten tijde van de inbraak?

In eerste instantie waren de aangifte bestanden minder gedetailleerd. Het antwoord op de vraag was toen te vinden op de Facebook pagina van Saskia zelf. Duurde even voordat ik het vond, want in de pasgegevens van level 1 was duidelijk te zien dat ze ten tijde van de inbraak ingelogd was op haar werk en zat me daar een tijdje op blind te staren.

Zowel van haar Facebook als uit de nieuwe versies van de aangifte is te halen dat Saskia ten tijde van de inbraak in de IJkantine in Amsterdam was.

Antwoord op de vraag: IJkantine, Amsterdam

LEVEL 3

De directiesecretaresse heeft dus een alibi voor de avond van de inbraak. Maar wie heeft er dan ingebroken? En waarom heeft diegene de laptop en portemonnee achtergelaten? De moeite waard om daar eens dieper in te duiken. Om erachter te komen lijken de vreemde Paybuddy-betalingen een eerste spoor. Wij hebben bij Paybuddy de details van de betalingen opgevraagd. Aan jou de taak om deze uit te pluizen.

Vraag

Naar wie leiden de Paybuddy-betalingen?

In de details van de 4e betaling zien we adresgegevens terug:

Shipping Address:
P. NOWAK
Stationsplein 22
2405 BK
ALPHEN AAN DEN RIJN

Antwoord:
NAAM: P. NOWAK
ADRES: Stationsplein 22, ALPHEN AAN DEN RIJN

TACTISCHE WEG

LEVEL 4

Je bent de tactische weg ingeslagen. De telefoontap heeft een fiks aantal gesprekken opgeleverd. Aan jou de taak deze af te luisteren voor verdere aanwijzingen.

Vraag

Welk telefoongesprek leidt tot het volgende spoor en ga je nader onderzoeken?

De tap bevat 16 gesprekken van en naar Pjotr. Het meest opvallende gesprek is naar een Belgisch nummer (+32484149441).

Antwoord:
NAAM: boris
NUMMER: +32484149441

LEVEL 5

Goed gedaan, met het Belgische telefoonnummer van ene Boris blijk je op het juiste spoor te zitten! Er zijn meerdere aanwijzingen dat Boris het grote brein is achter het sterfgeval in het ziekenhuis. De vraag is nu, hoe komen we meer te weten over Boris? Al snel blijkt het Belgische nummer een prepaid nummer te zijn. Om meer te weten te komen, doen we een rechtshulpverzoek bij onze Belgische collega’s. We krijgen de historische verkeersgegevens telecommunicatie van het nummer.

Vraag

Welk detail valt je op bij het onderzoeken van de verkeersgegevens van het Belgische nummer?

Boris is kennelijk nogal een actieve beller, hij heeft het inderdaad druk zo te zien. De telefoonlijst bevat 47 pagina’s met gesprekken. En de vraagstelling helpt ook niet echt om dit aantal te verkleinen. Ik heb dit opgelost door net zolang naar elke pagina te staren op mijn beeldscherm totdat ik het gevonden had. Een andere methode zou kunnen zijn de image data met behulp van OCR in Excel of tekstbestand te krijgen, waardoor sorteren en zoeken makkelijker wordt.

Uiteindelijk zie je op pagina 27 een afwijkend IMEI nummer, wat ook het antwoord is.

Antwoord: 992166820332285.

LEVEL 6

Het IMEI-nummer dat je hebt gevonden, betekent dat Boris een tweede telefoon heeft. Misschien hebben we daar meer aan!Het blijkt dat het toestel is gebruikt met een Nederlands postpaid nummer. Onderzoek naar de houder loopt dood op een katvanger. We zullen dus verder moeten zoeken in de historische verkeersgegevens. Van de provider hebben we een lijst ontvangen van gesprekken die met de telefoon zijn gevoerd. Wellicht vind je daar een volgende aanwijzing en komen we dichter bij Boris!

Vraag

Wie vraag je om meer informatie?

Het vreugdemoment dat ik me door een telefoonlijst had geworsteld was erg kort, want bij level 6 kregen we weer een nieuwe telefoonlijst. Dit maal eentje die we wel konden kopiëren en plakken. De vraagstelling is wel wat meer beperkend, maar laat nog genoeg ruimte voor allerlei aannames. Na eerst weer gekeken te hebben in verschillen in IMEI nummers en dergelijke bleek al snel dat het probleem bij de ontvangende kant moest liggen. Hierin dacht ik eerst dat ik moest raden welke provider je om informatie moest vragen, maar dit spoor liep ook dood.

Ik zag dat er ook gebeld was naar diverse informatienummers, googlen hierop leverde me een aantal instanties op zoals KPN of Vodafone. Het meest opvallende was het nummer +319004111111, zoeken hierop levert op dat het een marktplaats nummer is.

Antwoord: Marktplaats

LEVEL 7

Weer een stap verder, mooi. Onze overige rechercheurs hebben bewijzen gevonden waaruit blijkt dat de man in het ziekenhuis inderdaad is vermoord. We weten ook bijna 100% zeker dat Boris daar achter zit. Snel verder dus! Marktplaats geeft aan dat adverteerder Alexej één van zijn advertenties omhoog heeft laten plaatsen. De link naar zijn advertenties vind je in je dossier. We vermoeden dat er een link is tussen Alex en Boris. Zoek uit wat die link is en wat het adres van Alex is. Zodra we dit weten kunnen we Boris snel oppakken!

Vraag

Wat is het adres van Alex? Wat is de relatie tussen Boris en Alex?

Dit was een lastige vraag, want alleen op bepaalde steekwoorden was de oplossing te vinden. Momenteel is het erg makkelijk om het antwoord te vinden, omdat Google deze pagina nu in zijn index heeft.

Uit de marktplaats advertenties kunnen we weinig halen, de images hebben geen exif header en image search op google levert ook niets op. Wel kunnen we straat en plaats halen uit het kaartje op marktplaats. Dit betreft de Weerribben in Lelystad, gezien de plaatsing kunnen we met Google Maps achterhalen dat dit postcode 8244 EZ betreft.

Google Streetview levert ook weinig op en zoeken met google op bepaalde steekwoorden uit de advertenties ook helemaal niks. Vervolgens ben ik gaan zoeken op Facebook (zonder succes) en op Twitter. In het laatste geval vond ik uiteindelijk het Twitter profiel van Alexej waarop het huisnummer en de relatie te vinden waren.  Dit met de steekwoorden ‘marktplaats’ en ‘fixie’.

Antwoord:
ADRES: Weerribben 113, 8244 EZ Lelystad
RELATIE: Vader en zoon

DIGITALE WEG

LEVEL 4

Duidelijk, jij kiest voor de digitale weg! De IP-tap die we bij Pjotr hebben geplaatst, levert interessante informatie op. Maar voor we daar wat mee kunnen, hebben we jou nodig. Want de informatie dient goed geanalyseerd te worden. Waarheen leidt de informatie? We vermoeden dat Pjotr in opdracht van iemand anders werkte. Kun jij erachter komen wie de opdrachtgever is?

Vraag

Wat is het mailadres en IP-adres van de opdrachtgever van Pjotr?

We openen de PCAP met Wireshark om de netwerk data te analyseren. Aangezien we op zoek zijn naar een mailadres is het vermoeden dat er een mail protocol gebruikt is. Ik keek als eerst naar pop3 verkeer, wat ook de juiste keuze bleek te zijn.

Filter op: tcp.port == 110, rechtermuisknop en kies Follow TCP Stream.

Uit deze data kan je zien dat het mailadres boris@mail.zegzv.be is en dat zijn ipadres 195.35.102.33 is. Echter dit ipadres wordt niet geaccepteerd, maar wel het ipadres van de mailserver (91.199.30.123).

Antwoord:
MAILADRES: boris@mail.zegzv.be
IP-ADRES: 91.199.30.123

LEVEL 5

Goed bezig! Dankzij jouw werk zijn we weer een stapje dichter bij het oplossen van deze zaak. We vragen bij de hostingprovider een kopie op van de virtuele server waar het mailadres van de opdrachtgever naartoe leidde. Opnieuw hebben we jou nodig om hierin te duiken en de juiste sporen boven water te krijgen. Welke bestanden leiden naar verdere oplossing?

Vraag

Wat is de naam van het bestand dat Pjotr aan zijn opdrachtgever mailde en welke belangrijke gebruikersnaam en wachtwoord vinden we daarin?

Bij deze vraag zijn twee bestanden geleverd. Een memory dump en een vmdk disk image. Terwijl de disk image nog aan het downloaden was ben ik aan de slag gegaan met de memory dump. Met strings en grep vond ik uiteindelijk dat de gebruiker dm-crypt gebruikte om een disk te encrypten en met het commando cryptsetup zette hij het wachtwoord:

Vervolgens een nieuw virtual systeem aangemaakt in VMware Player en vervolgens daar de vmdk disk image aan gekoppeld.

  • Settings
  • Add..
  • Hard Disk
  • SCSI (recommended)
  • Use an existing virtual disk
  • Browse naar vmdk file
  • Finish

Vervolgens systeem geboot en gezorgd dat hij als single user zal booten.

  • In het grub scherm druk op e (edit)
  • Voeg aan de linux line ‘single’ toe op het eind
  • Druk F10 om te booten

Gebruik het wachtwoord AglJNaD0DKpLN8pWCJgzzN om de disk te kunnen koppelen. Vervolgens moesten we op zoek naar een mailbox. Standaard slaat linux deze mailbox op in /var/mail.

 

Antwoord:
FILE: keylogger_recorded_2014-04-03.txt
USER: steven_admin
PASS: Wevmwidzikhbn0

LEVEL 6

Dankzij jouw werk weten we nu dat de opdrachtgever, Boris genaamd, de inloggegevens heeft bemachtigd van iemand in het ziekenhuis. Tijd dus om de focus te verleggen naar het ziekenhuis. We hebben besloten de netflow-data op te vragen van de pc van de gebruiker “steven_admin” in de uren na het mailverkeer tussen Pjotr en Boris. Aan jou de taak deze te analyseren! Kun jij in de firewall-logs van het ziekenhuis sporen vinden van Boris?

Vraag

Hoe laat logde Boris in? Geef je antwoord in de vorm UU.MM

De eerste keer dat ik een netflow data bestand voor mijn neus kreeg. Via google kwam ik uit op de tool nfdump. Deze tool gedownload en gecompiled. Aangezien we ipadres weten van boris konden we met behulp van sort en head makkelijk het antwoord achterhalen.

 

Het eerste pakketje komt rond 21.24 binnen.

Antwoord: 21.24

LEVEL 7

Goed gevonden! Jouw werk leidde naar een pc op de afdeling systeembeheer. Volgens de systeembeheerder wilde deze vorige week opeens niet meer opstarten. Wij vermoeden dat het onderzoeken van de harde schijf wel eens de sleutel zou kunnen zijn tot het oplossen van de zaak!

Vraag

Welk veld in welke databasetabel manipuleerde Boris?

Geleverd wordt een disk image die ingepakt slechts 125 MB groot is. Helaas bleek dat na uitpakken de disk image 11 GB in beslag nam. Met xxd zag ik dat er heel veel null bytes waren. Heb in eerste instantie nog geprobeerd om met allerlei tools (FTK Imager, Autopsy, Active Partition Recovery, etc) de disk image proberen te redden, maar al mijn pogingen waren onsuccesvol.

Ook nog proberen files te carven uit de image met foremost, maar dit leverde behalve wat plaatjes ook weinig op.

Vervolgens met het oude vertrouwde strings gaan zoeken. Omdat elke keer 11 GB doorzoeken een beetje tijdrovend was heb ik alle null bytes uit de image gehaald en ook de strings gedumpt naar een aparte file.

Uit de image.strings file ging ik vervolgens met grep zoeken op bekende sleutelwoorden. Toen ik uiteindelijk op steven zocht zag ik wat interessants voorbij komen.

Vervolgens in image.strings gezocht op RAT.log en toen vond ik wat meer informatie.

De string ‘RAT started’ wekte mijn interesse. Vervolgens hier nogmaal opgezocht en toen vond ik iets wat kennelijk een logfile was.

Zo te zien wordt er een of andere encryptie gebruikt. In eerste instantie dacht ik meteen aan XOR. Vervolgens xortool gedraaid in brute force mode en met strings over de output de oplossing gevonden.

Antwoord:
DATABASETABEL: medicatie_db
VELD: dosis