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
- Hvað fékk ég nákvæmlega?
- Hvað segir lýsingin berum orðum?
- Hvaða orð gætu verið tæknilegar vísbendingar?
- Hvert er væntanlegt fánasnið?
- Þarf ég nettengingu, lykilorð eða annað sem vantar?
- 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?
- 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 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:
- Hvaða athugun leiddi mig hingað?
- Hverju spái ég að prófið skili?
- Hvernig get ég sýnt að tilgátan sé röng?
- 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.
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 bát; við leitum að öllum skipaskrám á internetinu.
stringssýnirPKog skráarheitiðflag.txt; við leitum að ZIP-gögnum.- Verkefnið nefnir ekkert hljóð; við reynum samt 40 hljóðbreytingar vegna þess að myndin „lítur hávær út“.
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.
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:
- Lesa: lýsing, heiti, fánasnið og viðhengi.
- Telja: hvaða skrár fengum við og hverjar eru stærðir þeirra?
- Þekkja: hvað segir
fileum raunveruleg snið? - Skoða: lýsigögn, fyrstu bæti og læsilegar runur.
- Setja fram tilgátu: ein skýr skýring í einu.
- Prófa ódýrt: minnsta próf sem getur staðfest eða hrakið hana.
- Skrá: skipun, niðurstöðu og næsta skref.
- Sjálfvirknivæða: þegar endurtekningin verður leiðinleg eða villugjörn.
- 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
- 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ð:
- Ý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
fileeru 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.