Dit is een onderzoekschallenge. Daarin beantwoord je onderzoeksvragen; niet elke vraag heeft een vlag. De challenge wordt met elke vraag iets moeilijker, en is dus geschikt voor beginners en gevorderden. Kom je niet tot het einde? Geen zorgen! Lever de antwoorden in op de vragen die je wel hebt kunnen beantwoorden.
De Cyberlympics zijn hét belangrijkste esports evenement van Nederland dit jaar. En daarmee zijn ze een target voor mensen die niet van moderniteit houden. Eerder hebben de Cyberlympics een e-mail met bedreigende taal gekregen met de concurrent van de Cyberlympics: de Analogelympics. De Cyberlympics hebben dus zeker iets te vrezen!
Daarom heeft de systeembeheerder extra maatregelen getroffen: cybersecurity is dit jaar prioriteit no. 1. Zo slaat ze al het netwerkverkeer op van hun servers en kan ze direct disk images maken van al hun servers met één druk op de knop. Ze hebben dat zelfs ge-oefend! Goed bezig Cyberlympics!
Toen zij zelf eens keek naar de netwerkactiviteit, nam ze (wel héél véél verdachte) activiteit waar op een van hun testservers: 172.16.246.138. En dat is vreemd, want ze had de server nét pas opgzet. Op de server staat de testwebsite van de Cyberlympics: test.cyberlympics.summerschool.sh. De productieversie van de website staat nog niet live. De systeembeheerder denkt dat de verdachte activiteit komt van het IP-adres 172.16.246.139.
Nadat de systeembeheerder de verdachte activiteit heeft waargenomen, heeft een aantal commando’s gerund om te kijken wat er aan de hand was: ip a; ps auxwwf; lsof; ss -tulpn;. Ze daarin niets wat leek op een compromitatie. Daarom heeft ze met jou contact opgenomen: kan jij haar helpen? Ze heeft precies geleverd wat er nodig is om te helpen: een disk image van de server ter én een pcap met daarin (versleuteld) netwerkverkeer. De systeembeheerder geeft aan dat zij zelf altijd IP-adres 172.16.246.135 gebruikt.
Wat is een disk image? En wat is een pcap?
Een disk image is een kopie van de harde schijf van een computer. In die kopie kan je sporen vinden van verdachte activiteit. Je kan een disk image bekijken door, bijvoorbeeld, gebruik te maken van Dissect. Je kan Dissect installeren via handleiding op de Githubpagina van Dissect. Er zijn ook genoeg andere tools die je kan gebruiken zoals The Sleuth Kit, Testdisk of Linux utils zoals losetup en mount.
Wil je rondkijken op de server alsof je in een Linux shell zit? Dat kan met Dissect, bijvoorbeeld met het commando: target-shell disk.dd. Dissect kan ook andere handige dingen. Stel je wilt in Dissect alle logging van docker? Gebruik dan het commando target-query -f docker.logs disk.dd. Wil je weten wat Dissect nog meer kan? Gebruik dan het commando target-query -l.
Een pcap is een bestandsformaat waarin netwerkdata staat. Je kan het makkelijkst een pcap openen met een programma zoals Wireshark. Tegenwoordig is veel netwerkverkeer (slecht, hint!) versleuteld; het is dus niet raar als je weinig verkeer kan lezen.
Een disk image is een momentopname van een server. Een pcap bevat juist activiteit over tijd. Samen kun je ze gebruiken om te achterhalen wat er wanneer is gebeurd.
Waarschuwing
Let op! Deze challenge bevat malware. Doe dit onderzoek in een veilige omgeving, bijvoorbeeld in een VM. Het is wel een fictieve casus; alle relevante IP-adressen zitten in subnet 172.16.246./24 en alle relevante domeinnamen vallen onder het domein jscu.summerschool.sh.
Onderzoeksvragen
Weet je niet waar je moet beginnen? Onderstaande vragen helpen je om door de casus te komen en worden steeds een stukje moeilijker. Hier wat tips:
- Begin gerust bij de laatste vraag als je ervaren bent en als je denkt dat dat je lukt! :)
- Stuur wel de antwoorden op zo veel mogelijk vragen in, niet alleen het antwoord op de laatste vraag.
- Alleen vlaggen insturen, zonder antwoorden, levert geen punten op.
- Schrijf op waarom je iets geconcludeerd hebt. Een slecht antwoord is: ‘het is CVE-2013-1234’, een goed antwoord is ‘Het is CVE-2013-1234, omdat [xxx]. Dat heb ik gezien in het bestand [yyy] op plek [zzz].’
Gebruik niet meer dan vier pagina’s, inclusief code-snippets en voorbeelden, om onderstaande vragen te beantwoorden.
easy
-
Welk IP-adres is van de aanvaller? (vlag == hash IP-adres)
-
Wat is het IP-adres van deze server? (vlag == hash IP-adres)
-
Maak een overzicht van welke software en applicaties er draaien op de server. Welk domein is er nog meer gekoppeld aan de server?
-
De aanvaller logt bij een van de webapplicaties door middel van een simpele gebruikersnaam en wachtwoord in. Wat is het wachtwoord waarmee diegene inlogt? (vlag == hash wachtwoord)
medium
-
Op welke poorten mag de server volgens de firewall verbindingen ontvangen? Klopt dat met wat je ziet op de pcap? Waarom niet?
-
Kijk wat meer naar het MongoDB verkeer dat eigenlijk geblokkeerd had moeten zijn. Wat doet de aanvaller doen? Welke informatie krijgt hij op deze manier? En welke CVE hoort hierbij? (vlag == hash CVE nummer)
-
Maak een tijdslijn: wat heeft de aanvaller vóór deze aanval gedaan? En wat heeft hij direct daarna gedaan?
-
Wat is het wachtwoord waarmee de aanvaller heeft ingelogd op de server? (vlag == hash wachtwoord)
-
Hoe is de aanvaller root geworden? En wat is er gestolen? (vlag == hash bestandsnaam dat is gestolen)
hard
-
Zijn er achterdeurtjes achtergelaten op de server?
-
Is een van deze achterdeurtjes gebruikt door de actor?
-
Wie zit er achter de aanval?
overig
-
De systeembeheerder heeft haar best gedaan om de server zo veilig mogelijk te configureren. Welke adviezen heb jij om toekomstige server(s) veiliger in te spoelen?
-
De aanvaller heeft ook een paar steken laten vallen. Welke adviezen zou jij de aanvaller geven om beter te werk te gaan?
Bestanden
- cyber-vs-analoog.zip
checksum (SHA256): d76c9e74b413be6216c7da324c694b362e67cfdb4c21e695ed35f4d9b259fbb2
Hints
- YWZnZWxvcGVuIGtlcnN0IGhlYmJlbiBlZW4gYWFudGFsIHN5c3RlZW1iZWhlZXJkZXJzIGdlZW4gcnVzdGlnZSB0aWpkIGdlaGFkLgo=
- Z290dGEgY2F0Y2ggJ2VtIGFsbC4K
- ZXIgemlqbiBuaWV0IDE1MSBhY2h0ZXJkZXVydGplcy4K
- aGludC4K