Blogi

Loihteen CTF-haasteen ratkaisi neljä joukkuetta

Kirjoittanut Admin | 25.02.2025

Järjestimme Disobeyssa 14.–15.2.2025 Loihteen oman CTF-haasteen, jota kymmenet hakkeritiimit ratkoivat. Ratkaisuun tiensä selvitti neljä joukkuetta ja nopeimmin ”team mvm but reversed”.

Disobey-tapahtumassa järjestetään vuosittain CTF eli Capture the Flag -kilpailu, joka koostuu useasta erillisestä haasteesta. CTF:ssä joukkueet kilpailevat keskenään hakkerimielisten haasteiden ratkaisemisessa. Mitä vaikeampi haaste on kyseessä, sitä enemmän joukkue haalii itselleen pisteitä. Parhaimman pistepotin kerännyt joukkue voittaa.

Tässä blogissa kuvaan Loihteen CTF-haasteen osia pääpiirteissään. Tarkempi tekninen läpimeno löytyy englanninkielisestä blogistamme
ja haasteen lähdekoodi on löydettävissä GitHubistani.

Pearl Hunt

Find the pearl in my bag of shells

Loihteen CTF-haasteessa pelaaja sai osallistua helmen metsästykseen. Haasteen päähenkilö Shelldon oli piilottanut mittaamattoman arvokkaan helmen, joka pelaajan piti löytää. Haasteen alussa pelaajalle annettiin bag.zip-tiedosto sisältäen Windows-laitteelta kerätyt tiedostot $MFT ja UserClass.dat.

Haasteen kuvauksen bag of shells on vinkki Shellbageista. Shellbag-rekisteriavaimissa on tallennettuna kansiot, joita käyttäjä on tarkastellut Resurssienhallinnalla. UserClass.dat-tiedosto sisältää Shellbag-rekisteriavaimet. Haasteen Shellbageista nähdään, että shelldon-käyttäjä on tarkastellut shiny_secrets-kansion sisällä olevaa pearl.7z-tiedostoa.

Haasteen ratkaisemiseksi pelaajan piti löytää $MFT-tiedostosta pearl.7z-tiedosto ja avata se salasanalla. Mielenkiintoisen haasteesta tekee se, että pearl.7z-tiedosto on poistettu laitteelta, mutta sen saa vielä kaivettua $MFT-tiedostosta, koska mikään muu tiedosto ei ole ylikirjoittanut sen käyttämää tilaa. Kaivettuaan tiedoston ja salasanan pelaaja purkaa pearl.7z-tiedoston salauksen ja avaa sen sisältä löytyvän PEARL.txt-tiedoston vain saadakseen selville, että helmi on poissa. Aika laittaa koodi 701893 muistiin ja suunnata yläkertaan Loihteen ständille!

Loihteen ständin vierestä löytyi ovi nimettynä Shelldonin luolaksi (Shelldon’s Cave). Aikaisemman haasteen koodilla pelaaja avaa luolan oven ja astuu sisään. Luolasta löytyy pöytä, jonka päällä on näyttö ja joystick. Näytöllä näkyy kuva hauskannäköisestä hahmosta. Järjestelmä on nimetty salasanojen hallintaohjelmistoksi (Password Manager) ja näytössä oleva lappu kehottaa löytämään SSH-tunnukset.

 

Joystickia kääntämällä pelaaja saa liikuteltua kuvaa. Käy ilmi, että näytöllä näkyy livekuvaa huoneesta, jossa on paljon erilaisia pieniä löydettäviä asioita. Suuri osa asioista on haasteen kannalta täysin epäoleellisia meemejä, mutta seasta löytyy myös SSH-yhteyteen tarvittavat tiedot:

  • IP-osoite: 172.30.125.73
  • TCP-portti: 42222
  • Käyttäjätunnus: shelldon
  • Salasana: PennyGetYourOwnWifi

Video: Shelldon's Cave speedrun any% (World Record)

SSH-tunnuksilla pelaaja saa otettua yhteyttä loppuhaasteen palvelimelle, josta löytyy vain yksi asia – ohjelma nimeltä unshellable. Haasteessa pelaajan pitää takaisinmallintaa (reverse engineering) ohjelma, jotta pelaaja saa tietää, kuinka ohjelma toimii ja mikä siihen tarvittava salasana on. Haasteen sai ratkaistua ainakin seuraavalla komennolla SSH:n yli pelaajan omalta koneelta ajettuna:

$ ssh shelldon@172.30.125.73 './unshellable "'¯\_(ツ)_/¯'"
shelldon@172.30.125.73's password:

Well, then it looks like we have a winner. Congratulations.
Please celebrate with free cold drinks from Loihde's counter!
FLAG{FUN_WITH_FLAGS_EP1337}


PS. Onnittelut vielä voittajajoukkueelle ja muille haastavan kokonaisuuden ratkaisseille. Palataan mahdollisesti taas ensi vuonna uuden haasteen kanssa!

PPS. Tässä vielä Walkthrough-linkki.

 

Haluaisitko sähköpostiisi tietoa ajankohtaisista aiheista? Kiinnostaako turvallisuusratkaisut tai data & AI ja digitaaliset palvelut? Voit tilata uutiskirjeen juuri sinua kiinnostavista teemoista. Meidän uutiskirjeessä on Loihdetta!