Hoppa yfir í efnið

Hvað eru „ýmis“ verkefni?

Í sumum gagnaglímuverkefnum vitum við strax hvað er ætlast til. Vefverkefni gefur okkur vefslóð, dulritunarverkefni gefur okkur dultexta og pwn-verkefni gefur okkur keyranlega skrá.

Svo fáum við stundum þetta:

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.

Slík verkefni lenda oft í flokknum Ýmislegt (e. Miscellaneous eða Misc). Flokkurinn er ekki ruslaskúffa fyrir vondar hugmyndir. Hann er vettvangur fyrir verkefni sem blanda saman mörgum litlum hæfileikum:

  • skráarsniðum,
  • kóðun og gagnavinnslu,
  • myndum og hljóði,
  • textamynstrum,
  • einfaldri forritun,
  • opinni heimildaleit,
  • skapandi en skipulegri lausnaleit.

Við þurfum ekki að þekkja töfratólið

Misc-verkefni eru sjaldnast leyst með því að muna eitt leynilegt forrit. Við lesum lýsinguna, skoðum gögnin, finnum frávik og prófum einföldustu skýringarnar fyrst.

Af hverju er þessi flokkur til?

Tölvugögn virða ekki kaflaskipan kennslubóka. Ein mynd getur innihaldið:

  • JPEG-gögn,
  • EXIF-lýsigögn,
  • GPS-hnit,
  • athugasemd frá myndvinnsluforriti,
  • ZIP-safn aftan við myndina,
  • texta sem þarf að afkóða með Base64.

Ef verkefnið krefst smá Linux, smá Python, smá skráargreiningar og QR-lesara passar það ekki fullkomlega í einn flokk. Það er einmitt tilgangur Ýmislegs.

Létt CTF-rannsókn

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.

Þetta er góð kynning á rannsóknarhugsun, en ekki full 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

Vinnum með skrár sem fylgja verkefni, okkar eigin gögn eða vettvang sem heimilar greininguna. Ekki nota forvitnina sem afsökun til að skoða tæki, reikninga eða gögn annarra.

Lesum lýsinguna tvisvar

Verkefnalýsing er ekki bara skraut. Orðaval, heiti viðhengis og jafnvel brandari geta verið vísbendingar.

Tökum þessa lýsingu:

Það eru mörg lög á þessari gjöf.

Viðhengi: present.zip

Orðið „lög“ gæti bent til:

  • margra falinna skráa,
  • skráasafns inni í öðru safni,
  • myndlaga,
  • hljóðlags,
  • eða bara venjulegs orðalags.

Við skráum vísbendinguna en ákveðum ekki strax hvað hún þýðir.

Góðar fyrstu spurningar

  1. Hvað fékk ég nákvæmlega?
  2. Hvað segir lýsingin berum orðum?
  3. Hvaða orð gætu verið tæknilegar vísbendingar?
  4. Hvert er væntanlegt fánasnið?
  5. Þarf ég nettengingu, lykilorð eða annað sem vantar?
  6. Er heiti skrárinnar 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 fyrstu tilgátur eru skynsamlegastar?

  1. GPS-hnit gætu verið í EXIF-lýsigögnum.
  2. Staðurinn gæti sést á myndinni sjálfri.
  3. Brjóta þarf RSA-lykil úr hverjum díl.
  4. Myndin er örugglega tekin af þeim sem sendi verkefnið.
Lausn við æfingu 1

Tilgátur 1 og 2 eru skynsamlegar.

Við myndum byrja á ódýrum prófum:

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.

Tökum birgðatalningu

Áður en við opnum allt skulum við skrá hvað fylgdi verkefninu.

find verkefni -maxdepth 2 -type f -printf '%p\n'

Dæmi:

verkefni/README.txt
verkefni/gogn/mynd.jpg
verkefni/gogn/athugasemd.bin

Skoðum næst stærðir og raunveruleg skráarsnið:

find verkefni -maxdepth 2 -type f -exec file {} +

Mögulegt úttak:

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

Tvö frávik vekja athygli:

  • .jpg-skráin virðist vera PNG,
  • .bin-skráin virðist vera ZIP-safn.

Við höfum ekki leyst verkefnið, en við höfum fundið tvær prófanlegar leiðir.

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á myndir þú skoða fyrst og hvað myndir þú gera?

Lausn við æfingu 2

c.jpg sker sig úr vegna þess að file greinir hana sem ZIP-safn.

Við myndum vinna með verkefnisafritið og byrja á að skoða skráalistann án útdráttar:

unzip -l c.jpg

Við myndum ekki byrja á að tvísmella á skrána eða endurnefna allar myndirnar. Frávikið gefur okkur skýrt næsta próf.

Athugun, tilgáta og próf

Gott vinnuferli má skrifa í þremur línum:

Athugun: file greinir c.jpg sem ZIP-safn.
Tilgáta: skráin inniheldur verkefnisgögn í ZIP-sniði.
Próf: unzip -l c.jpg

Prófið þarf að geta mistekist. Ef unzip segir að safnið sé ógilt þurfum við að endurskoða tilgátuna: kannski fann file aðeins ZIP-merki inni í stærri skrá eða safnið er skemmt.

Ekki breyta ágiskun í staðreynd

Óvarfærin færsla:

Fáninn er í ZIP-skránni.

Betri færsla:

`file` fann ZIP-snið. Næst skoða ég skráalistann með `unzip -l`.

Við skráum það sem gögnin styðja núna og færum okkur síðan á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.“

Endurskrifaðu þetta sem varfærna tilgátu og nefndu próf.

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 safnið án þess að draga allt út. Ef prófið tekst styrkir það tilgátuna. Ef ekkert lykilorðsvarið safn er til er textinn kannski vísbending um eitthvað annað.

Byrjum á einföldustu skýringunni

Dularfull runa er ekki sjálfkrafa 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

Úttak:

gg{findurinn}

Ef úttakið passar við fánasniðið höfum við sterka staðfestingu. Ef það verður önnur kóðuð runa gætu fleiri lög verið til staðar.

Vissir þú?

Í CTF-verkefnum er stundum grínast með „CyberChef Magic“ — hnapp sem reynir sjálfkrafa að þekkja umbreytingar. Hann getur verið gagnleg vísbending, en besta lausnin útskýrir hvaða aðgerðir voru notaðar og hvers vegna.

Kanínuholur

Kanínuhola (e. rabbit hole) er rannsóknarleið sem verður sífellt flóknari án þess að athuganir styðji hana.

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.

Þetta er skapandi, en engin tæknileg athugun styður ferðalagið enn.

Fjögur stoppmerki

Spyrjum okkur:

  1. Hvaða athugun leiddi mig hingað?
  2. Hverju spái ég að prófið skili?
  3. Hvernig get ég sýnt að tilgátan sé röng?
  4. Hef ég prófað einfaldari skýringar?

Setjum líka tímamörk. Ef sérhæft tól hefur ekki skilað vísbendingu eftir tíu mínútur förum við aftur í birgðalistann og verkefnalýsinguna.

Æfing: kanínuhola eða góð leið?

Æfing 4

Merkjum hvert skref sem stutt af gögnum eða kanínuholu.

  1. file segir að mynd.jpg sé PNG; við skoðum PNG-hausinn með xxd.
  2. exiftool sýnir Comment: sjáðu bláu rásina; við skoðum bláu litrásina.
  3. Myndin sýnir bát; við leitum að öllum skipaskrám á internetinu.
  4. strings sýnir PK og skráarheitið flag.txt; við leitum að ZIP-gögnum.
  5. Verkefnið nefnir ekkert hljóð; við reynum samt 40 hljóðbreytingar vegna þess að myndin „lítur hávær út“.
Lausn við æfingu 4
  1. Stutt af gögnum. file og PNG-hausinn tengjast beint.
  2. Stutt af gögnum. Athugasemdin er skýr vísbending sem má prófa.
  3. Líkleg kanínuhola. Bátur einn og sér tengir myndina ekki við skipaskrár.
  4. Stutt af gögnum. ZIP-merki og skráarheiti gefa skýra tilgátu.
  5. Kanínuhola. Engin athugun styður hljóðleiðina.

Lausnadagbók, ekki réttarskýrsla

Við þurfum ekki formlega rannsóknarskýrslu fyrir hvert Misc-verkefni. Stutt Markdown-skjal dugar:

# Verkefni: Mörg lög

## Inntak
- `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{...}`

Skráðu líka misheppnaðar tilraunir ef þær útilokuðu raunhæfa tilgátu:

Prófaði Base64 á hint.txt; ógilt stafasett, svo sú leið var útilokuð.

Afritaðu nákvæma skipun

„Notaði strings“ er minna gagnlegt en strings -n 8 mynd.png. Nákvæm skipun gerir lausnina endurtakanlega og hjálpar þegar við þurfum að leiðrétta hana.

Grunnvinnuferlið

Þegar við festumst getum við farið aftur í þennan lista:

  1. Lesa: lýsing, heiti, fánasnið og viðhengi.
  2. Telja: hvaða skrár fengum við og hverjar eru stærðir þeirra?
  3. Þekkja: hvað segir file um raunveruleg snið?
  4. Skoða: lýsigögn, fyrstu bæti og læsilegar runur.
  5. Setja fram tilgátu: ein skýr skýring í einu.
  6. Prófa ódýrt: minnsta próf sem getur staðfest eða hrakið hana.
  7. Skrá: skipun, niðurstöðu og næsta skref.
  8. Sjálfvirknivæða: þegar endurtekningin verður leiðinleg eða villugjörn.
  9. Staðfesta: passar öll lausnin og fánasniðið?

Lokaverkefni: veldu fyrstu skrefin

Æ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.

Skrifaðu fyrstu fimm skrefin þín og rökstuddu röðina.

Möguleg lausn við æfingu 5
  1. Skrá viðhengin og lesa textavísbendinguna. Hún nefnir sérstaklega skráarendingu.
  2. Keyra file kaka.png uppskrift.txt. Það prófar hvort endingarnar passi við innihaldið.
  3. Skoða fyrstu bæti kaka.png með xxd -l 16. Það staðfestir mögulegt skráarauðkenni.
  4. Skoða lýsigögn með exiftool kaka.png. Mynd og „uppskrift“ gætu bent á athugasemd eða hugbúnaðarreit.
  5. Keyra strings -n 8 kaka.png og 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ð:

  • Ýmislegt sameinar litla hæfileika úr mörgum flokkum,
  • CTF-forensics er létt greining á tilbúnum verkefnisgögnum, ekki full fagleg réttarrannsókn,
  • verkefnalýsing, heiti og stærðir geta verið vísbendingar,
  • birgðatalning og file eru góð fyrstu skref,
  • 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,
  • stutt lausnadagbók hjálpar okkur að endurtaka og útskýra lausn,
  • við sjálfvirknivæðum fyrst þegar endurtekningin kallar á það.

Í næsta kafla skoðum við hvers vegna skrár segja meira en skráarendingin: skráarauðkenni, hausa, endamerki og viðbætt gögn.