CTF Resources
az egyik leggyakoribb szteganográfiai trükk a fájl elrejtése a kép belsejében. A fájl általában képként nyílik meg, de rejtett fájlokat is tartalmaz, általában zip, szöveg, sőt más képfájlokat is.
ez azért működik, mert amikor egy képfájlt olvas, a kép méretét meghatározó kezdő és befejező bájtokkal rendelkezik. Az Ön által használt képnézegető a bájtok közötti információkat arra használja, hogy képet jelenítsen meg Önnek, figyelmen kívül hagyva semmit a végződő bájt után.
például a JPEG végződő bájtja hex-ben FF D9, tehát hex-megjelenítő használatával (az xxd jó Linuxhoz, vagy valami hasonló HxD windows-hoz) megtudhatja, hol fejeződik be a kép. Ezeket a bájtokat néha nehéz megtalálni a számok tengerében, így a hex (a hex bájtokat képviselő szöveg) lerakása is segíthet megtalálni a rejtettet .txt vagy .zip fájlok.
példa
ennek a stratégiának egy nagyon egyszerű megvalósítását használjuk a példában.jpg fájl ebben a könyvtárban. Ha elmenti a számítógépére, és megnyitja egy képnézegetővel, akkor egy egyszerű jpg képet kell bemutatnia.
most próbáljuk megtalálni a zászlót. Nyissa meg a képet a kedvenc hexadecimális szerkesztőjében, és kezdjen el körülnézni valami furcsa után (ezen a ponton megtalálhatja magát a zászlót a dump-ból, de a példa kedvéért próbálja meg kibontani). A fájl alján látható a JPG végződő bájtjaffd9
:
01e17a0: 685c 7fab 8eb4 5b32 61f1 c4ff d950 4b03 h\....[2a....PK.
ennek a sornak egy másik fontos része a végéhez közeli PK
. PK
Phil Katz, a zip fájl feltalálójának kezdőbetűi jelzik, hogy a zip fájl ezen a ponton kezdődik.
ezen információk felhasználásával használhatunk egy másik praktikus linux eszközt, dd
). A dd
parancs nagyon sokoldalú, és lehetővé teszi a fájlok sokaságának másolását és konvertálását. A mi esetünkben a zip fájl kibontására fogjuk használni.
tudjuk, hol van a zip fájl helye, de dd
csak tizedes értékeket vesz fel, ezért a 0x01e17ad hexadecimális helyet hexadecimálisról tizedesre konvertáljuk, hogy 1972141-et kapjunk.
ezt a dd-be dugva:
dd if=example.jpg bs=1 skip=1972141 of=foo.zip
ez a kép példáját veszi fel.a jpg, az’ in file ‘if, egyszerre egy blokkot olvas, a ‘block size’ bs, átugrik a block 1972141-re, átugrik, és kiírja a’ out file ‘ zip-be, amit foo-nak hívunk.zip. Amikor ez befejeződik, rendelkeznie kell egy zip fájllal, amelyet könnyen kibonthat, hogy hozzáférjen a benne lévő szöveges fájlhoz.
ez egy egyszerű szteganográfiai probléma megoldásának hosszú útja, de megmutatja a stratégia működését. A megoldás részben tömörebb és hatékonyabb módszereket ismertetünk.
észlelés
ezeket a kihívásokat általában egyszerű képként mutatják be, más utasítások nélkül, és a versenytárs feladata, hogy egy hexaszerkesztőn keresztül futtassa, hogy megtudja, tartalmaz-e szteganográfiát. Ha egy kép jelenik meg, és nincs utasítás, a legbiztonságosabb fogadás az, hogy van valami rejtett a kép záró címkéi után.
megoldása bár lehetséges és időnként praktikus ezeket a feladatokat linux eszközökkel megoldani, mint például a dd
, vannak olyan eszközök, amelyek sokkal könnyebbé teszik. Binwalk
rendkívül hasznos eszköz, amely automatikusan felismeri és kivonja a steganográfiai eszközökkel rejtett fájlokat
CTF példa
az ilyen típusú Szteganográfiát általában nem nagyon értékelik, de tisztességesen elterjedt. BackdoorCTF 2014 létrehozott egy, ami általában egyértelmű, ctfexample.jpg, de több réteget tartalmaz.
XXD
HxD
DD
Binwalk