Hvað felst í flokknum „Ýmislegt“?
Í sumum gagnaglímuverkefnum blasir við okkur undireins hvers er ætlast. Vefverkefni gefur okkur vefslóð, dulritunarverkefni gefur okkur dulrit og pwn-verkefni gefur okkur keyranlega skrá.
Hins vegar getur svo farið að okkur berist eftirfarandi til skoðunar:
Finndu það sem týndist.
Viðhengi: sumarfrí.jpg
Er fáninn í myndinni? Lýsigögnunum? Skrá sem hefur verið bætt aftan við myndina? QR-kóða í bakgrunninum? Kannski er sumarfrí.jpg ekki einu sinni JPEG-mynd.
Verkefni af þessu tagi skipa jafnan flokkinn Ýmislegt (e. Miscellaneous eða Misc). Flokknum er síst af öllu ætlað að vera einhvers konar safnhaugur óljósra hugmynda. Hann þjónar fremur sem vettvangur fyrir viðfangsefni sem reyna á fjölmarga þætti samtímis:
- þekkingu á skráarsniðum,
- kóðun og úrvinnslu gagna,
- meðferð mynda og hljóðs,
- greiningu textamynstra,
- undirstöðuatriði forritunar,
- leit í opnum heimildum,
- skapandi en skipulega nálgun við lausn vandamála.
Ekki er þörf á að búa yfir neinum töfratólum
Verkefni í þessum flokki verða sjaldnast leyst með því einu að muna heiti á einu tilteknu forriti. Við skulum fremur kynna okkur lýsinguna, rýna í gögnin, leiða frávik í ljós og láta reyna á einföldustu skýringarnar í upphafi.
Hver er tilgangur þessa flokks?
Tölvugögn láta sér síst af öllu lynda kaflaskipan hefðbundinna kennslubóka. Ein mynd getur innihaldið:
- JPEG-gögn,
- EXIF-lýsigögn,
- GPS-hnit,
- athugasemd frá myndvinnsluforriti,
- ZIP-kippuskrá aftan við myndina,
- texta sem þarf að afkóða með Base64.
Krefjist verkefnið nokkurrar þekkingar á Linux-stýrikerfinu, Python-forritunarmálinu, greiningu skráa og notkun QR-lesara, fellur það sýnilega ekki að öllu leyti undir einn tiltekinn flokk. Þar kemur gildi flokksins „Ýmislegt“ einmitt bersýnilega í ljós.
Undirstöður rannsóknarvinnu í gagnaglímum
Sum Ýmislegt-verkefni eru merkt forensics. Í gagnaglímu þýðir það oft að við skoðum tilbúin verkefnisgögn og finnum ummerki:
- rangar skráarendingar,
- lýsigögn,
- eyddar eða viðbættar skrár,
- loggbrot,
- netupptöku,
- faldar textarunur.
Hér er á ferðinni vönduð kynning á vinnubrögðum rannsakandans, en þó síst af öllu tæmandi fagleg stafræn réttarrannsókn. Við ætlum ekki að fjalla hér um lagalega vörslukeðju, afritun raunverulegra diska eða öflun gagna úr tækjum annarra.
Aðeins tilbúin eða leyfileg gögn
Látum okkur nægja að sýsla með þær skrár sem verkefninu fylgja, eigin gögn eða þá vettvanga þar sem greining er sérstaklega heimiluð. Vinsamlegast gætið þess að nýta síst af öllu forvitnina sem tylliástæðu til þess að gæst ofan í tæki, reikninga eða gögn annarra.
Rýnum í lýsinguna af kostgæfni
Verkefnalýsingunni er engan veginn einvörðungu ætlað að prýða síðuna. Sjálft orðavalið, heiti viðhengja og jafnvel hógvær gamansami geta falið í sér mikilvægar vísbendingar.
Tökum þessa lýsingu:
Það eru mörg lög á þessari gjöf.
Viðhengi: present.zip
Notkun orðsins „lög“ gæti gefið til kynna:
- margra falinna skráa,
- skráasafns inni í öðru safni,
- myndlaga,
- hljóðlags,
- eða hreinlega verið dæmi um hversdagslegt orðalag.
Við skulum færa vísbendinguna til bókar en gæta þess að draga síst af öllu of fljótar ályktanir um merkingu hennar.
Hentugar upphafsspurningar
- Hvaða gögn nákvæmlega eru í mínum höndum?
- Hvað segir lýsingin berum orðum?
- Hvaða orðalag gæti falið í sér tæknilegar vísbendingar?
- Með hvaða sniði er vænst að fáninn komi fram?
- Þarf ég nettengingu, lykilorð eða annað sem vantar?
- Skyldi heiti skrárinnar sjálfrar vera hluti af vísbendingunni?
Æfing: lestu milli línanna
Æfing 1
Verkefnið segir:
Ljósmyndarinn gleymdi hvar myndin var tekin, en myndin sjálf man það enn.
Viðhengi: ferd.jpg
Hvaða tvær tilgátur teljast vænlegastar til árangurs í upphafi?
- GPS-hnit gætu verið í EXIF-lýsigögnum.
- Staðurinn gæti sést á myndinni sjálfri.
- Brjóta þarf RSA-lykil úr hverjum díl.
- Myndin er örugglega tekin af þeim sem sendi verkefnið.
Lausn við æfingu 1
Tilgátur 1 og 2 eru skynsamlegar.
Við myndum hefja leikinn á einföldum og skjótvirkum prófunum:
file ferd.jpg
exiftool ferd.jpg
Síðan skoðum við myndina sjálfa eftir kennileitum eða texta. RSA-tilgátan hefur enga stoð í lýsingunni og við vitum ekkert enn um ljósmyndarann.
Færum til bókar þau gögn sem fyrir liggja
Löngu áður en við undirgöngumst frekari rannsóknir, skulum við færa nákvæmlega til bókar hvað það er sem verkefninu fylgir.
find verkefni -maxdepth 2 -type f -printf '%p\n'
Dæmi:
verkefni/README.txt
verkefni/gogn/mynd.jpg
verkefni/gogn/athugasemd.bin
Látum okkur svo rýna í skráarstærðir og hin raunverulegu skráarsnið:
find verkefni -maxdepth 2 -type f -exec file {} +
Mögulegt frálag:
verkefni/README.txt: Unicode text, UTF-8 text
verkefni/gogn/mynd.jpg: PNG image data, 640 x 480
verkefni/gogn/athugasemd.bin: Zip archive data
Þarna blasa við tvö frávik sem verðskulda athygli okkar:
.jpg-skráin virðist vera PNG,.bin-skráin virðist vera ZIP-kippuskrá.
Þótt lausnin liggi síst af öllu fyrir, þá höfum við engu að síður leitt í ljós tvær leiðir sem unnt er að láta reyna á.
Skráðu stærðina líka
Mjög stór textaskrá, óvenju lítil mynd eða tíu skrár með nákvæmlega sömu stærð geta gefið vísbendingu. ls -lh og stat eru oft gagnleg áður en sérhæfð tól koma við sögu.
Æfing: hvað sker sig úr?
Æfing 2
Þú færð:
a.jpg: JPEG image data, 800 x 600
b.jpg: JPEG image data, 800 x 600
c.jpg: Zip archive data
d.jpg: JPEG image data, 800 x 600
Hvaða skrá yrði fyrst fyrir valinu hjá þér, og til hvaða bragðs myndir þú grípa?
Lausn við æfingu 2
c.jpg sker sig úr vegna þess að file greinir hana sem ZIP-kippuskrá.
Við myndum vinna með verkefnisafritið og byrja á að skoða skráalistann án útdráttar:
unzip -l c.jpg
Við skulum forðast það að tvísmella á skrána eða hrófla við heitum allra myndanna í upphafi. Frávikið gefur okkur skýrt næsta próf.
Athugun, tilgáta og próf
Vandað vinnuferli má draga saman í þremur hnitmiðuðum línum:
Athugun: file greinir c.jpg sem ZIP-kippuskrá.
Tilgáta: skráin inniheldur verkefnisgögn í ZIP-sniði.
Próf: unzip -l c.jpg
Prófunin verður að geta leitt í ljós að tilgátan standist síst af öllu skoðun. Ef unzip segir að kippuskráin sé ógild þurfum við að endurskoða tilgátuna: kannski fann file aðeins ZIP-merki inni í stærri skrá eða kippuskráin er skemmd.
Varist að rýma fyrir órökstuddum ályktunum
Dæmi um óvarfærna færslu:
Fáninn er í ZIP-skránni.
Dæmi um vandaðri færslu:
`file` fann ZIP-snið. Næst skoða ég skráalistann með `unzip -l`.
Látum okkur rita niður það eitt sem gögnin færa okkur sönnur á hverju sinni, og höldum svo rannsókninni áfram.
Æfing: gerðu tilgátuna prófanlega
Æfing 3
Athugunin er:
`strings mynd.png` sýnir textann `password=eldfjall`.
Nemandi skrifar: „Lykilorðið er örugglega eldfjall.“
Endurritið þetta sem varfærna tilgátu og tilgreinið viðeigandi prófun.
Lausn við æfingu 3
Tilgáta:
Textinn `eldfjall` gæti verið lykilorð fyrir skráasafn sem fylgir verkefninu.
Prófið gæti verið að nota eldfjall á það verkefnissafn sem lýsingin gefur okkur, til dæmis:
7z t -peldfjall leyndarmal.7z
t prófar kippuskrána án þess að draga allt út. Reynist prófunin bera árangur, rennir það styrkari stoðum undir tilgátuna. Sé engin sú kippuskrá fyrir hendi sem varist er með lykilorði, gæti textinn hæglega verið vísbending um eitthvað allt annað.
Hefjum leikinn á einföldustu skýringunni
Runu sem virðist dularfull er engan veginn sjálfkrafa ætlað að vera dulritun:
Z2d7ZmluZHVyaW5ufQ==
Hún notar stafasett og fyllingu sem líkjast Base64. Við prófum Base64 áður en við leitum að AES-lykli:
printf '%s' 'Z2d7ZmluZHVyaW5ufQ==' | base64 -d
Frálag:
gg{findurinn}
Felli frálagið alfarið að fánasniðinu, höfum við í höndunum afar sterka staðfestingu. Skili það hins vegar annarri kóðaðri runu, gæti svo farið að rýna þurfi í enn fleiri gagnslög.
Vissir þú?
Í CTF-verkefnum er stundum grínast með „CyberChef Magic“ — hnapp sem reynir sjálfkrafa að þekkja umbreytingar. Það verkfæri getur vissulega fært okkur gagnlegar vísbendingar, en vönduðustu lausnirnar gera ætíð grein fyrir því hvaða aðgerðum var beitt og hvaða rök hvíldu þar að baki.
Kanínuholur
Kanínuhola (e. rabbit hole) vísar til rannsóknarleiðar sem verður stöðugt flóknari og villugjarnari, án þess að raunverulegar athuganir renni stoðum undir slíkt ferðalag.
Dæmi:
Myndin er af kanínu. Kanínur borða gulrætur. Gulrætur eru appelsínugular. Ég tek því appelsínugulu litrásina, breyti henni í hljóð og leita að Morse-kóða.
Hér er vissulega um skapandi hugsun að ræða, en hafa ber í huga að engin tæknileg athugun styður slíkt ferðalag að svo stöddu.
Fjórir vörðueldar viðvörunar
Spyrjum okkur:
- Hvaða athugun varð þess valdandi að ég hélt þessa leið?
- Hvaða niðurstöðu vænti ég að prófið færi mér?
- Með hvaða hætti reynist mér unnt að hrekja þessa tilgátu?
- Hef ég rækilega látið reyna á einfaldari skýringar?
Ráðlegt er sömuleiðis að setja sér tiltekin tímamörk. Hafi sérhæft tól síst af öllu fært okkur nýjar vísbendingar að tíu mínútum liðnum, skulum við hverfa aftur til birgðalistans og rýna í lýsingu verkefnisins á ný.
Æfing: kanínuhola eða góð leið?
Æfing 4
Leggjum mat á hvort sérhvert skref telst vera stutt rökum eða hrein og klár kanínuhola.
filesegir aðmynd.jpgsé PNG; við skoðum PNG-hausinn meðxxd.exiftoolsýnirComment: sjáðu bláu rásina; við skoðum bláu litrásina.- Myndin sýnir skip; við leggjumst í rannsóknir á öllum skipaskrám veraldarvefjarins.
stringssýnirPKog skráarheitiðflag.txt; við leitum að ZIP-gögnum.- Verkefnið minnist síst af öllu á hljóð; við freistum þess engu að síður að framkvæma 40 ólíkar hljóðbreytingar á þeim forsendum að myndin sé „hávaðasöm í útliti“.
Lausn við æfingu 4
- Stutt af gögnum.
fileog PNG-hausinn tengjast beint. - Stutt af gögnum. Athugasemdin er skýr vísbending sem má prófa.
- Líkleg kanínuhola. Bátur einn og sér tengir myndina ekki við skipaskrár.
- Stutt af gögnum. ZIP-merki og skráarheiti gefa skýra tilgátu.
- Kanínuhola. Engin athugun styður hljóðleiðina.
Vinnubók en ekki rannsóknarskýrsla
Okkur er óþarft að rita viðamikla rannsóknarskýrslu fyrir sérhvert viðfangsefni í þessum flokki. Hnitmiðuð vinnubók í Markdown-sniði dugar fyllilega:
# Verkefni: Mörg lög
## Ílag
- `present.zip`
- `hint.txt`
## Vísbendingar
- Lýsingin nefnir „mörg lög“.
- `file present.zip` staðfestir ZIP.
## Prófanir
1. `unzip -l present.zip`
- Fann `inner.tar.gz`.
2. `file inner.tar.gz`
- Staðfest gzip-gögn.
## Niðurstaða
- Fáni: `gg{...}`
Færið sömuleiðis til bókar þær tilraunir sem ekki báru árangur, hafi þær orðið til þess að útiloka raunhæfar tilgátur:
Prófaði Base64 á hint.txt; ógilt stafasett, svo sú leið var útilokuð.
Afritaðu nákvæma skipun
Ummæli á borð við „beitti skipuninni strings“ teljast síður gagnleg en strings -n 8 mynd.png. Nákvæm tilgreining skipana tryggir að unnt sé að endurtaka lausnina, auk þess sem hún kemur okkur að góðum notum þegar lagfæringa er þörf.
Grundvallarvinnulagið
Renum við á vegg í rannsóknarvinnu okkar, er giftudrjúgt að líta til þessa lista að nýju:
- Rýna í gögnin: lýsingu, heiti, fánasnið og viðhengi.
- Færa til bókar: hvaða skrár eru til staðar og hver er gildleiki þeirra?
- Bera kennsl á: hvaða vitnisburð færir
file-skipunin okkur um hin raunverulegu skráarsnið? - Rannsaka: lýsigögn, upphafsbæti og prentanlegar textarunur.
- Móta tilgátu: eina skýra og rökstudda skýringu í senn.
- Láta reyna á tilgátuna: beita einföldustu mögulegu prófun til þess að sannreyna hana eða hrekja.
- Færa til bókar: skipun, niðurstöðu og fyrirhugað næsta skref.
- Beita sjálfvirkni: þegar endurtekningar fara að verða þreytandi eða bjóða hættunni heim á villum.
- Færa loka sönnur: fellur lausnin alfarið að tilskildu fánasniði?
Lokaverkefni: mótun upphafsskrefa
Æfing 5
Verkefnið segir:
Kokkurinn setti leynilega uppskrift í kökuna. Hún hefur fleiri en eitt lag.
Viðhengi:
kaka.png
uppskrift.txt
uppskrift.txt inniheldur:
Ekki treysta endingunni.
Ritið niður fyrstu fimm skrefin í rannsókn ykkar og færið rök fyrir röðun þeirra.
Möguleg lausn við æfingu 5
- Skrá viðhengin og lesa textavísbendinguna. Hún nefnir sérstaklega skráarendingu.
- Keyra
file kaka.png uppskrift.txt. Það prófar hvort endingarnar passi við innihaldið. - Skoða fyrstu bæti
kaka.pngmeðxxd -l 16. Það staðfestir mögulegt skráarauðkenni. - Skoða lýsigögn með
exiftool kaka.png. Mynd og „uppskrift“ gætu bent á athugasemd eða hugbúnaðarreit. - Keyra
strings -n 8 kaka.pngog leita að skráarheitum eða vísbendingum. Ef ZIP-merki eða annað snið kemur fram setjum við fram nýja tilgátu.
Við byrjum ekki á flókinni launritun eða lykilþraut vegna þess að einföld skráarsniðspróf tengjast beint við vísbendinguna „Ekki treysta endingunni“.
Samantekt
Í þessum kafla lærðum við að:
- flokkurinn „Ýmislegt“ tvinna saman margvíslega þætti úr ólíkum áttum,
- rannsóknarvinna í gagnaglímum felur í sér vandaða rýni í tilbúin gögn, en telst þó engan veginn til tæmandi faglegrar réttarrannsóknar,
- verkefnalýsing, heiti og stærðir geta verið vísbendingar,
- skráning gagna og beiting
file-skipunarinnar teljast til vandaðra upphafsskrefa, - athugun leiðir til tilgátu og síðan ódýrs prófs,
- einföld kóðun á að koma á undan flóknum ágiskunum,
- kanínuholur skortir oft prófanlega tengingu við gögnin,
- hnitmiðuð vinnubók reynist okkur dýrmæt við að endurtaka og gera grein fyrir lausninni,
- við skulum einvörðungu beita sjálfvirkni þegar endurtekningar fara að kalla á slíkt.
Í eftirfarandi kafla munum við rýna í það hvers vegna skrár ljóstra upp um fleira en skráarendingin ein og sér gefur til kynna; þar munum við fjalla um skráarauðkenni, skráarhausa, endamerki og viðauka við gögn.