#crimediggers 2016 – Deel 3 – Hotelkamer

Tweakers en de politie hebben ook dit jaar weer een versie van crimediggers ontwikkeld. Het is de bedoeling dat je online een fictieve zaak oplost van de politie. De politie wil hiermee talent binnenhalen voor de digitale recherche. Iedereen mag meedoen, zelfs ik. De opdrachten zijn echter gericht op mensen die zeer handig zijn met een computer (understatement). Met enkel kennis van Office-applicaties kom je niet zo ver 🙂

Dit is deel 3 van 4 delen:

#crimediggers 2016 – Deel 1 – Autowrak
#crimediggers 2016 – Deel 2 – Wouters kamer
#crimediggers 2016 – Deel 3 – Hotelkamer
#crimediggers 2016 – Deel 4 – Rechtzaak

 

In het vorige deel zijn we achter de naam en het telefoonnummer van de opdrachtgever van Wouter gekomen. De politie is uiteindelijk terechtgekomen op de hotelkamer van de opdrachtgever, Sjors.

Let op: spoilers ahead!

Hotelkamer – Ransomware

Sjors maakt gebruik van ransomware en het is onze taak om achter de bankrekening te komen waarop zijn slachtoffers het geld overmaken.

Als we kijken naar de sporen dan blijkt in de kapotgeslagen laptop een sd-kaartje te zitten. In de opmerking bij het spoor staat al dat er iets van ransomware op staat. Het sd-kaartje blijkt wederom een bestandssysteem te bevatten:

We gaan dit weer op dezelfde wijze doen zoals in deel 1 om achter de hackers handle te komen.
Eerst controleren we welke partities de image bevat:

Er lijkt maar 1 partitie te zijn. In de hexdump zagen we al dat we vermoedelijk te maken hebben met een FAT-partitie. We mounten de sdcard als volgt op /mnt/sdcard:

Goed, in de echte praktijk is het uitvoeren van deze bestanden toch wel een erg slecht idee. Maar wij hebben er verstand van dus we zorgen dat er geen netwerkverbindingen zijn, geen gedeelde mappen ingesteld zijn en dat er een snapshot gemaakt wordt van de virtual machine. Vervolgens kunnen we naar hartenlust ransomware_linux uitvoeren. Er is een andere manier om erachter te komen wat dit programma doet, zonder het hoeven uit te voeren: je kunt het programma disassemblen en zo afleiden welke systemcalls gedaan worden. Ik kies voor het uitvoeren ervan omdat ik dat leuker vindt. Maar beide manieren geven je hetzelfde resultaat lijkt mij.

Het gaat hier dus om ransomware. Ransomware zoekt vaak contact met een server om informatie uit te wisselen zoals bankrekeningen, sleutels en meer. Veel gebruikte zogenaamde c2-servers zijn IRC-servers. Dus IRC-verkeer moeten we in de gaten houden.

Met strace (te installeren via apt/yum etc.) kun je zien welke systemcalls gedaan worden door processen. Daarmee is dus te zien welke bestanden gelezen/gewijzigd worden en welke netwerkverbindingen opgezet worden door het proces. Dat laatste is voor ons interessant:

Zie daar een ip-adres en een bekend poort nummer: 178.62.210.184:6667. Oftewel, deze ransomware probeert een IRC-server te bereiken.

We geven een netwerk interface in de virtual machine het ip-adres 178.62.210.184. De virtuele netwerkkabel is niet verbonden dus dat kan geen kwaad.

Vervolgens starten we netcat om te luisteren op poort 6667.

Dan starten we ransomware_linux. En dan zien we in netcat dat er verbinding gemaakt wordt onder de nickname b1fb4fec-48a7-415d-8198-e96c1f85818d. Ook de client print wat informatie over de nick name overigens.

De nickname, in dit geval een GUID, zoeken we nog even op in alle strings van ransomware_linux in de hoop dat er misschien wat andere aanwijzingen zijn:

De eerste string lijkt verdacht veel op een IRC-commando. We weten nu het adres van de IRC-server, de nickname en vermoedelijk een IRC-commando. Wat we nog missen is een IRC-channel. Die zal zich ook in ransomware_linux bevinden. We gebruiken wederom strings met een reguliere expressie. We weten dat channels altijd beginnen met een #.

Dit lijstje bestaat uit bijna 100 strings dus daar is snel doorheen te lopen. Als ik een gok moet doen uit dit lijstje dan lijkt #dagobert me een juiste kandidaat aangezien we met Nederlandse mensen te maken hebben en hier gaat over geld.

Voordat we verbinding maken met de IRC-server doe ik nog een laatste check. Want als het niet hoeft dan maak ik liever geen real life verbinding met een ransomware IRC-server. Op z’n minst heb je dan kans dat je opgemerkt wordt door de beheerders en dat komt de opsporing niet ten goede. De laatste check is of er toevallig geen IBAN te vinden is in ransomware_linux, ransomware_mac, of ransomware_pc.exe:

De bovenstaande regex toont matches met IBAN-nummers maar neemt ook wat false positives mee. Dat kan geen kwaad in dit geval.

Geen IBAN te vinden in ieder geval. Dan gaan we verbinding maken met de IRC-server, het is niet anders. Elke client voldoet. In dit geval gebruik ik irssi. Zorg dat je weer internetverbinding hebt of gebruik een andere virtual machine.

Vervolgens join je channel #dagobert en voeren we het IRC-commando ‘BC b1fb4fec-48a7-415d-8198-e96c1f85818d’ in wat we zojuist tegenkwamen.

En zie daar: we krijgen een IBAN-nummer terug van de dollarbot. Dit nummer wordt vermoedelijk teruggestuurd naar de ransomware-client zodat het slachtoffer dit nummer in z’n scherm te zien krijgt. Het is wel wat uitzonderlijk, meestal moeten Bitcoins overgemaakt worden maar geld = geld. Hoe dan ook, het juiste antwoord is NL53ABNA0996158954.

 

Hotelkamer – De Buit

De vraag is hoeveel geld Sjors en Khalid de slachtoffers in het totaal afhandig hebben gemaakt. Wie zou dat kunnen weten? Wellicht de dollarbot? Dan moeten we op zoek naar een commando om de dollarbot zover te krijgen ons te vertellen hoeveel geld er is overgemaakt. Maar ik herinner me dat er bij de sporen nog ergens een briefje lag met iets van check erop. En die ligt inderdaad bij de kat: een briefje met CHK_SLD erop.

We proberen het gewoon uit in #dagobert:

En de dollarbot is weer behulpzaam. Als we deze bedragen optellen dan komen we op € 420.000. Dat is ook het juiste antwoord.