Cybercrime Challenge 2014: High Impact

De Cybercrime Challenge is een wervingscampagne voor Politie Team High Tech Crime opgezet samen met Tweakers en QCSec. Op deze pagina beschrijf ik hoe ik deze challenge heb opgelost. De challenge kon opgelost worden via een digitaal en een tactisch pad, ik heb ze beide opgelost maar omdat mijn ambities vooral bij het digitale traject liggen is dit het enige traject die ik hier vertoon. Voor vragen en/of opmerkingen kan je mij bereiken op Twitter.

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 beveiligingsbedrijf 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?

In level 1 krijg je een uur aan camera beelden en een Excel sheet met pasgegevens aangeleverd. De camera beelden tonen een deur op de intensive care.

Level 1 afbeelding 1

Omdat een uur lang de beelden kijken lang zou duren willekeurig door de video heen geklikt en rond 21:00 zie je dat het beeld gescrambled wordt.

Level 1 afbeelding 2

Aan de hand van het tijdstip (21:00) en de datum (03/04/2014) in de Excelsheet gekeken welke pas gebruikt is.

Level 1 afbeelding 3

Hieruit blijkt dat dit Saskia Siwalette is geweest.

Antwoord: Saskia Siwalette

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 ingebroken 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?

Beginnend aan level 2 krijg je een aantal documenten waaronder een aangifte van de inbraak en creditcard afschrijvingen. De aangiftes leverden niets op, ook geen verklaring (dit was volgens mij een bug de ochtend dat ik ermee bezig was, later die dag stond er wel een verklaring in).

Na de aangiftes maar op social media wezen kijken en zo ene Saskia Siwalette op Facebook kunnen vinden, haar gegevens kwamen ook overeen met die in de aangifte.

Level 2 afbeelding 1

Zoekend door haar berichten op Facebook het volgende gevonden.

Level 2 afbeelding 2

Saskia was op de dag van de inbraak dus in de IJkantine in Amsterdam.

Antwoord: IJkantine, Amsterdam.

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 level 3 kreeg je 4 maal details van paybuddy betalingen. Logischerwijs dus de betalingen nagelopen en in de 4e betaling een afleveradres gevonden.

Level 3 afbeelding 1

P. Nowak was de volgende verdachte.

Antwoord: P. NOWAK, Stationsplein 22, 2405 BK, ALPHEN AAN DEN RIJN

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?

Na de keuze gemaakt te hebben om het digitale traject te doen kreeg je een internet tap aangeleverd.

Deze tap geopend in Wireshark en als eerst de protocol hiërarchie bekeken.

Level 4 afbeelding 1

Hieruit blijkt dat in de tap SMTP en POP verkeer zit. Als eerst gefilterd op POP, dit leverde een nuttige stream op.

Level 4 afbeelding 2

Follow TCP Stream gedaan en nu kon het e-mailtje gemakkelijk bekeken worden.

Level 4 afbeelding 3

Hierin zie je dat het mailtje verstuurd is door boris@mail.zgv.be via het IP adres 91.199.30.123, de vermoedelijke opdrachtgever.

Antwoord: boris@mail.zgv.be, 91.199.30.123

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?

Aangekomen in level 5 krijg je een disk image en een memory image. Als eerst een nieuwe virtuele machine aangemaakt, disk gemount en de VM opgestart.

Level 5 afbeelding 1

Jammer, de disk blijkt ge-encrypt te zijn. Denkend dat de memory image niets voor niets meegeleverd is zal de passphrase hier wel verstopt in zitten. Een snelle zoek op google toont aan dat je met het commando ‘cryptsearch’ diskencryptie gerelateerde dingen kan doen.

De volgende stap was het open van de memory image in een hex editor en zoeken naar het woord ‘cryptsetup’, dit leverde het volgende op.

Level 5 afbeelding 2

Hieruit blijkt dat de key ge-echoed wordt naar cryptsetup om de disk te openen. De key geprobeerd als passphrase, succes!

Alsnog was het na de passphrase niet mogelijk om als een user in te loggen, de machine dus in recovery mode gereboot en een root shell tevoorschijn getoverd.

Level 5 afbeelding 3

Nu toegang tot de shell te hebben was de 1e ingeving iets met mail, dus naar de /var/mail directory gegaan.

Level 5 afbeelding 4

Er blijkt dus wat mail te zijn van Boris. Scrollend door de mail het volgende gevonden.

Level 5 afbeelding 5

De bestandsnaam is dus keylogger_recorded_2014-04-03.txt, de user steven_admin en het wachtwoord is Wevmwidzikhbn0.

Antwoord: keylogger_recorded_2014-04-03.txt, steve_admin, Wevmwidzikhbn0

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

In level 6 krijg je een bestand met netflow data aangeleverd, dit level was eerlijk gezegd één van de makkelijkste die er tussen zat. Bestand geopend met nfdump en filteren op source IP leverde het volgende op.

Level 6 afbeelding 1

Zo zie je dat het IP van Boris om 21.24 als eerst contact maakte met de PC.

Antwoord: 21.24

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?

Na een gemakkelijk level opeens in het diepe gegooid in level 7 met een disk image van de systeembeheer PC.

In eerste instantie geprobeerd de disk te restoren met dd en testdisk, dit leverde niks op. Toen de image geopend met een hex editor, het grootste deel bleek uit nullen te bestaan. De PC was van steven dus op deze naam gaan zoeken in de image, dit leverde wat obscure dingen op.

Level 7 afbeelding 1

Het lijkt erop dat Boris een remote access trojan heeft geïnstalleerd. Zoekend op rat.exe kwam ik de tekst ‘QSec’s evil RAT ;]’ tegen. Toen ik dit op google zocht kwam ik op de volgende URL uit:

https://malwr.com/analysis/NzBjMTA4NzA2OTVjNDAzODk5OTExNGVhMWU3MDE1YjE/

Tijdens het zoeken in de dump ook photorec aangezet, dit leverde 1017 bestanden op.

Level 7 afbeelding 2

Tijdens het analyseren van alle bestanden erachter gekomen dat de betreffende rat.exe ook tussen de bestanden zat. Ook een bestand gevonden die base64 gecodeerd was, is dit misschien de log?

Level 7 afbeelding 3

Een base64 decoder gebruikt om alles te decoden.

Level 7 afbeelding 4

Niet zichtbaar in de bovenstaande output maar boven aan staat de tekst RAT Started, het is dus de logfile. De bovenstaande uitkomst leek in eerste instantie niet echt nuttig. Nadenkend over hoe trojans wel eens verborgen worden begon er een lampje te branden over XOR.

Als eerst de cryptische regels separaat gezet in een tekst bestand.

Level 7 afbeelding 5

Vervolgens XORsearch geopend, de manual gaf aan dat je met een keyword je XOR algoritme kan uitvoeren. Na wat foutieve keywords het woord ‘table’ geprobeerd.

Level 7 afbeelding 6

De tabel is dus medicatie_db en het aangepaste veld is dosis.

Antwoord: dosis, medicatie_db