DominicBreuker / stego-toolkit

Ez a projekt egy Docker image, amely hasznos a steganográfiai kihívások megoldásához, mint amilyeneket a CTF platformokon, például a hackthebox.eu-n találsz.A kép előre telepítve van számos népszerű eszközzel (lásd az alábbi listát) és számos szűrőszkriptet tartalmaz, amelyekkel egyszerű dolgokat ellenőrizhetsz (például futtasd a check_jpg.sh image.jpg, hogy jelentést kapj egy JPG fájlról).

Docker build status

Hack The Box

Használat

Először győződj meg róla, hogy telepítve van a Docker (how to).Ezután használhatod az ebben a repóban található bin/build.sh és bin/run.sh shell szkripteket a kép elkészítéséhez és a konténer futtatásához. a konténerben egy bash shell-be kerülsz, amibe a data mappát mountoltad, amibe az elemzendő fájlokat rakhatod.

Ha nem használja a szkripteket, kövesse a következő lépéseket:

  1. Build image (docker build -t <image_name> .) vagy pull from Docker hub (docker pull dominicbreuker/stego-toolkit)
  2. Elindít egy konténert a fájljaival a /data mappába mountolva (docker run -it <image_name> -v /local/folder/with/data:/data /bin/bash)
  3. Használjon CLI eszközöket és szűrőszkripteket a fájljaira: Pl, futtassa check_jpg.sh image.jpg egy gyors jelentés elkészítéséhez, vagy futtassa brute_jpg.sh image.jpg wordlist.txt a rejtett adatok különböző eszközökkel és jelszavakkal történő kinyerésének kipróbálásához
  4. Ha GUI eszközöket szeretne futtatni, használja a következő két módszer egyikét:
  • Futtassa a start_ssh.sh-et, és csatlakozzon a konténerhez X11-továbbítással
  • Futtassa a start_vnc.sh-t, és csatlakozzon a konténer asztalához a böngészőn keresztül

Nézze meg a következő szakaszokat további információkért:

  • Milyen eszközök vannak telepítve? Menjen ide
  • Milyen szkripteket futtathatok a fájlok automatikus gyors átvizsgálásához vagy nyers erővel történő átvizsgálásához? Menj ide
  • Hogyan játszhatok különböző steganográfiai példákkal, hogy lássam, meg tudom-e törni őket? Menj ide
  • Hogyan tudok GUI eszközöket futtatni a konténeren belül? menj ide

Demo

Indítsd el a docker run -it --rm -v $(pwd)/data:/data dominicbreuker/stego-toolkit /bin/bash-t. A work dir /data-ben lévő konténer héjába kerülsz.A gazdamappád $(pwd)/data be lesz mountolva és a benne lévő képek elérhetőek lesznek.

animált demo gif

Eszközök

Sok különböző Linux és Windows eszköz van telepítve.A Windows eszközöket a Wine támogatja.Egyes eszközök parancssoron is használhatók, míg mások GUI támogatást igényelnek!

Parancssori interfész eszközök

Ezek az eszközök parancssoron is használhatók.Csak el kell indítani egy konténert, és csatlakoztatni kell az ellenőrizni kívánt steganográfiai fájlokat.

Általános szűrőeszközök

Az elején futtatandó eszközök.Lehetővé teszik, hogy átfogó képet kapjon arról, hogy mivel van dolga.

.

.

.

Szerszám leírás Hogyan kell használni
fájl Keresd meg, milyen fájlod van file stego.jpg
exiftool Médiafájlok metaadatainak ellenőrzése exiftool stego.jpg
binwalk Keresd meg, hogy más fájlok beágyazva/csatolva vannak-e binwalk stego.jpg
strings Vizsgálja meg, hogy vannak-e érdekes olvasható karakterek a fájlban strings stego.jpg
elöl Kivágja a beágyazott/csatolt fájlokat foremost stego.jpg
pngcheck Kérdezze meg egy PNG fájl részleteit (vagy derítse ki, hogy valójában valami másról van szó) pngcheck stego.png
identify GraphicMagick eszköz annak ellenőrzésére, hogy egy fájl milyen típusú kép. Ellenőrzi azt is, hogy a kép sérült-e. identify -verbose stego.jpg
ffmpeg ffmpeg használható a hangfájlok integritásának ellenőrzésére, és hagyja, hogy jelentse az infókat és hibákat ffmpeg -v info -i stego.mp3 -f null -. a fájl átkódolására és az eredmény eldobására

Steganográfiát felismerő eszközök

A fájlokban lévő steganográfia felismerésére szolgáló eszközök.Többnyire statisztikai vizsgálatokat végeznek.Csak egyszerű esetekben fedik fel a rejtett üzeneteket. azonban tippeket adhatnak, hogy mit kell keresni, ha érdekes szabálytalanságokat találnak.

Szerszám File types Description How to use
stegoVeritas Images (JPG, PNG, GIF, TIFF, BMP) Egyszerű és haladó ellenőrzések széles választéka. Nézze meg a stegoveritas.py -h. Ellenőrzi a metaadatokat, sok átalakított képet hoz létre és elmenti őket egy könyvtárba, Brute forces LSB, … stegoveritas.py stego.jpg az összes ellenőrzés lefuttatásához
zsteg Képek (PNG, BMP) Keres különböző LSB stegókat, openstego és a Camouflage eszköz is zsteg -a stego.jpg az összes ellenőrzés lefuttatásához
stegdetect Images (JPG) Statisztikai teszteket végez annak megállapítására, hogy használtak-e stego eszközt (jsteg, outguess, jphide, …). A részletekért nézze meg a man stegdetect-t. stegdetect stego.jpg
stegbreak Images (JPG) Brute force cracker JPG képekhez. Állítólag képes feltörni outguess, jphide és jsteg. stegbreak -t o -f wordlist.txt stego.jpg, használd -t o az outguess, -t p a jphide vagy -t j a jsteg

Valójában steganográfiát végző eszközök

Szerszámok, amelyekkel üzeneteket rejthetsz el és utána felfedheted őket.Némelyik titkosítja az üzeneteket, mielőtt elrejtené őket. ha mégis, akkor jelszót kérnek. ha van egy tipped, hogy milyen eszközt használtak, vagy milyen jelszó lehet a megfelelő, próbáld ki ezeket az eszközöket.Néhány eszközt támogatnak az ebben a Docker-képben elérhető brute force szkriptek.

Szerszám File types Description How to hide How to recover
AudioStego Audio (MP3. / WAV) A működéséről részletesen ebben a blogbejegyzésben hideme cover.mp3 secret.txt && mv ./output.mp3 stego.mp3 hideme stego.mp3 -f && cat output.txt
jphide/jpseek Kép (JPG) Még elég régi eszköz innen. Ide az innen származó verzió van telepítve, mivel az eredeti állandóan összeomlott. Interaktívan kéri a jelszót! jphide cover.jpg stego.jpg secret.txt jpseek stego.jpg output.txt
jsteg Image (JPG) LSB stego eszköz. Nem titkosítja az üzenetet. jsteg hide cover.jpg secret.txt stego.jpg jsteg reveal cover.jpg output.txt
mp3stego Audio (MP3) Régi program. Titkosítja, majd elrejti az üzenetet (3DES titkosítás!). Wine-ban futó windowsos eszköz. WAV bemenetet igényel (bizonyos WAV fájlok esetén hibát dobhat. ami nálam működik, az pl.: ffmpeg -i audio.mp3 -flags bitexact audio.wav). Fontos: csak abszolút elérési utat használj! mp3stego-encode -E secret.txt -P password /path/to/cover.wav /path/to/stego.mp3 mp3stego-decode -X -P password /path/to/stego.mp3 /path/to/out.pcm /path/to/out.txt
openstego Képek (PNG) Változatos LSB stego algoritmusok (nézd meg ezt a blogot). Még mindig karbantartják. openstego embed -mf secret.txt -cf cover.png -p password -sf stego.png openstego extract -sf openstego.png -p abcd -xf output.txt (hagyja ki a -xf-et az eredeti nevű fájl létrehozásához!)
outguess Images (JPG) “redundáns biteket” használ az adatok elrejtéséhez. Két verzióban létezik: old=outguess-0.13 innen és new=outguess a package repos-ból. Visszaállításához a rejtéshez használtat kell használni. outguess -k password -d secret.txt cover.jpg stego.jpg outguess -r -k password stego.jpg output.txt
spectrology Audio (WAV) A hangfájl spektrogramjában egy képet kódol. TODO GUI eszköz használata sonic-visualiser
stegano Képek (PNG) Az adatokat különböző (LSB alapú) módszerekkel rejti el. Néhány átvilágítási eszközt is biztosít. stegano-lsb hide --input cover.jpg -f secret.txt -e UTF-8 --output stego.png vagy stegano-red hide --input cover.png -m "secret msg" --output stego.png vagy stegano-lsb-set hide --input cover.png -f secret.txt -e UTF-8 -g $GENERATOR --output stego.png különböző generátorokhoz (stegano-lsb-set list-generators) stegano-lsb reveal -i stego.png -e UTF-8 -o output.txt vagy stegano-red reveal -i stego.png vagy stegano-lsb-set reveal -i stego.png -e UTF-8 -g $GENERATOR -o output.txt
Steghide Képek (JPG, BMP) és hang (WAV, AU) Változatos és kiforrott eszköz adatok titkosítására és elrejtésére. steghide embed -f -ef secret.txt -cf cover.jpg -p password -sf stego.jpg steghide extract -sf stego.jpg -p password -xf output.txt
cloackedpixel Images (PNG) LSB stego. eszköz képekhez cloackedpixel hide cover.jpg secret.txt password létrehozza cover.jpg-stego.png cloackedpixel extract cover.jpg-stego.png output.txt password
LSBSteg Images (PNG, BMP, …) tömörítetlen formátumokban Egyszerű LSB eszközök nagyon szép és olvasható Python kóddal LSBSteg encode -i cover.png -o stego.png -f secret.txt LSBSteg decode -i stego.png -o output.txt
f5 Images (JPG) F5 steganográfiai algoritmus részletes információkkal a folyamatról f5 -t e -i cover.jpg -o stego.jpg -d 'secret message' f5 -t x -i stego.jpg 1> output.txt
stegpy Images (PNG, GIF, BMP, WebP) és hang (WAV) egyszerű LSB-módszeren alapuló steganográfiai program stegpy secret.jpg cover.png stegpy _cover.png

Steganográfia GUI eszközök

Az alábbi eszközök mindegyike grafikus felhasználói felülettel rendelkezik és nem használható parancssoron keresztül.A futtatásukhoz a konténeren belül elérhetővé kell tenni egy X11-kiszolgálót.Kétféleképpen támogatott:

  • futtatás start_ssh.sh egy SSH-kiszolgáló beindításához. Csatlakozzon utána X11-továbbítással. Szükség van egy X11 szerverre az állomáson!
  • run start_vnc.sh egy VNC szerver + kliens indításához. Csatlakozzon utána a böngészőjével a 6901-es portra, és egy Xfce asztalt kap. Nincs host függőség!

Alternatívaként keress más módot arra, hogy az X11 elérhetővé váljon a konténeren belül, UNIX aljzatok csatlakoztatása).

Tool File types Description How to start
Steg Images (JPG, TIFF, PNG, BMP) Sokféle fájltípust kezel és különböző módszereket valósít meg steg
Steganabara (Az eredeti link törött) Képek (???) Interaktívan átalakíthat képeket, amíg nem talál valamit steganabara
Stegsolve Images (????) Interaktívan átalakíthat képeket, külön-külön megtekintheti a színsémákat, … stegsolve
SonicVisualiser Audio (???) Audio fájlok hullámformában való megjelenítése, spektrogramok megjelenítése, … sonic-visualiser
Stegosuite Képek (JPG, GIF, BMP) Képekben titkosíthatja és elrejtheti az adatokat. Aktívan fejlesztik. stegosuite
OpenPuff Képek, hang, videó (sok formátum) Kidolgozott eszköz hosszú múlttal. Még mindig karbantartott. Windows eszköz, amely wine-ban fut. openpuff
DeepSound Audio (MP3, WAV) Audio stego eszköz, amelyben maga Mr. Robot is megbízik. Wine-ban futó Windows eszköz (nagyon hacky, VNC-t igényel és virtuális asztalon fut, MP3 törött a hiányzó DLL miatt!) deepsound csak VNC munkamenetben
cloackedpixel-analyse Images (PNG) LSB stego vizualizáció PNG-khez – gyanúsan véletlenszerű LSB értékek felderítésére használható a képeken (0-hoz közeli értékek.5 jelezheti, hogy titkosított adatok vannak beágyazva) cloackedpixel-analyse image.png

Szűrőszkriptek

A fenti eszközök közül sok nem igényel GUI-val való interakciót.Ezért könnyen automatizálhat néhány munkafolyamatot a potenciálisan rejtett üzeneteket tartalmazó fájlok alapvető átvizsgálásához.Mivel az alkalmazható eszközök fájltípusonként eltérőek, minden fájltípushoz más-más szkriptek tartoznak.

Minden fájltípushoz kétféle szkript létezik:

  • XXX_check.sh <stego-file>: futtatja az alapvető átvilágító eszközöket és létrehoz egy jelentést (+ esetleg egy könyvtárat a jelentésekkel a fájlokban)
  • XXX_brute.sh <stego-file> <wordlist>: megpróbálja kivonni a rejtett üzenetet a stego fájlból különböző eszközökkel egy szólista segítségével (cewl, john és crunch telepítve van a listák létrehozásához – tartsa őket kicsiben).

A következő fájltípusok támogatottak:

  • JPG: check_jpg.h és brute_jpg.sh (brutális futtatás steghide, outguess, outguess-0.13, stegbreak, stegoveritas.py -bruteLSB)
  • PNG: check_png.h és brute_png.sh (nyers futtatás openstego és stegoveritas.py -bruteLSB)

Szólista generálás

A fenti nyers kényszerítő szkripteknek szólistákra van szükségük.Imho nagyon valószínű, hogy nem fog segíteni, ha hatalmas standard szólistákat használsz, mint a rockyou.A szkriptek túl lassúak ehhez, és úgy tűnik, a stego kihívásokat nem erre tervezték.Valószínűbb forgatókönyv, hogy van egy sejtésed, mi lehet a jelszó, de nem tudod pontosan.

Ezekre az esetekre több szólistákat generáló eszköz is van:

  • john: a John the Ripper közösségi fejlesztésű verziója képes bővíteni a szólistákat. Létrehozhat egy alap szólistát néhány jelölt jelszóval, és a john segítségével számos változatot hozhat létre belőlük. Használd a john -wordlist:/path/to/your/wordlist -rules:Single -stdout > /path/to/expanded/wordlist-t kiterjedt szabályok alkalmazásához (~x1000) john -wordlist:/path/to/your/wordlist -rules:Wordlist -stdout > /path/to/expanded/wordlist egy csökkentett szabálykészlethez (~x50).
  • crunch: képes kis szólistákat generálni, ha van egy minta a fejedben. Például, ha tudjuk, hogy a jelszavak 1984-re végződnek és 6 betű hosszúak, a crunch 6 6 abcdefghijklmnopqrstuvwxyz -t @@1984 használatával 26 * 26 = 676 jelszót generálhatunk aa1984, ab1984, … egészen zz1984-ig. A formátum crunch <min-length> <max-length> <charset> <options>, és a templating opciót használtuk. Nézd meg a less /usr/share/crunch/charset.lst-t, hogy megnézd, milyen karakterkészletekkel szállítja a crunch.
  • CeWL: képes szólistákat generálni, ha tudod, hogy egy weboldal kapcsolódik egy jelszóhoz. Futtassa például a cewl -d 0 -m 8 https://en.wikipedia.org/wiki/Donald_Trump parancsot, ha azt gyanítja, hogy egy Donald Trumpról készült kép titkosított rejtett üzenetet tartalmaz. A parancs lekaparja a webhelyet, és legalább 8 karakter hosszúságú karakterláncokat von ki.

Steganográfiai példák

A kép egy-egy mintaképet és hangfájlt tartalmaz különböző formátumokban:

  • /examples/ORIGINAL.jpg
  • /examples/ORIGINAL.png
  • /examples/ORIGINAL.mp3
  • /examples/ORIGINAL.wav

Ez tartalmaz egy szkriptet is /examples/create_examples.sh, amelyet lefuttathatsz egy rejtett üzenet beágyazásához (“Ez egy nagyon titkos üzenet!”) ezekbe a fájlokba többféle módszerrel. a szkript futtatása után ezeket a fájlokat a /examples/stego-files-ban találod, a nevükkel együtt, hogy melyik eszközt használtad az üzenet beágyazásához.Az átvilágító szkripteket futtathatod, hogy megnézd, találnak-e rajtuk valamit, vagy megpróbálhatod más módon feltörni őket.

GUI és konténerek

Alapértelmezés szerint egy Docker konténerben nem futtathatóak GUI eszközök, mivel nem áll rendelkezésre X11 szerver. ezek futtatásához ezt meg kell változtatnod.Hogy mi szükséges ehhez, az a gazdagéptől függ.Ha:

  • Linuxon fut, akkor valószínűleg X11
  • Mac OS-en fut, akkor Xquartz (brew install Xquartz)
  • Windowson fut, akkor gond van

Használj X11-továbbítást SSH-n keresztül, ha ezt az utat akarod választani. Futtasd start_ssh a konténeren belül a szerver indításához, győződj meg róla, hogy a 22-es portot exponálod a konténer indításakor: docker run -p 127.0.0.1:22:22 ..., majd a csatlakozáskor használd a ssh -X ...-ot (a szkript kiírja a jelszót).

Hogy ne függjön az X11-től, a képhez tartozik egy TigerVNC szerver és egy noVNC kliens.Ezzel HTML5 VNC munkamenetet nyithatsz a böngésződdel, hogy csatlakozz a konténer Xfce asztalához. Ehhez futtassa a start_vnc.sh a konténeren belül a szerver és a kliens indításához, győződjön meg róla, hogy a konténer indításakor docker run -p 127.0.0.1:6901:6901 ... feltárja a 6901-es portot, és menjen a localhost:6901/?password=<the_password>-re (a szkript kiírja a jelszót).

SSH használata X11-es továbbítással

animált demo gif - SSH + X11

A GIF-ben lévő parancsok a másoláshoz & beillesztéshez:

# in 1st host shelldocker run -it --rm -p 127.0.0.1:22:22 dominicbreuker/stego-toolkit /bin/bash# inside container shellstart_ssh.sh# in 2nd host shell (use it to launch GUI apps afterwards)ssh -X -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no root@localhost

Böngésző és VNC használata

animált demo gif - Böngésző + VNC

A GIF-ben lévő parancsok a másoláshoz & beillesztéshez:

# in 1st host shelldocker run -it --rm -p 127.0.0.1:6901:6901 dominicbreuker/stego-toolkit /bin/bash# inside container shellstart_vnc.sh# in browser, connect with: http://localhost:6901/?password=<password_from_start_vnc>

Linkgyűjtemény

Ez egy gyűjtemény hasznos szteganográfiai linkekből:

  • A kódokat fel kell tudni ismerni. Nézd meg ezt a puskát Eric Harshbarger-től, amely sok különböző kódot tartalmaz.
  • Cheat sheet, amely leírja a munkafolyamatokat, a keresendő dolgokat és a gyakori eszközöket: click
  • Forensics CTF guide with lots of ideas for stego challenges: click
  • File format descriptions as beautiful posters: click

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.