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).
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:
- Build image (
docker build -t <image_name> .
) vagy pull from Docker hub (docker pull dominicbreuker/stego-toolkit
) - 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
) - 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 futtassabrute_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 - 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.
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
éscrunch
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
ésbrute_jpg.sh
(brutális futtatássteghide
,outguess
,outguess-0.13
,stegbreak
,stegoveritas.py -bruteLSB
) - PNG:
check_png.h
ésbrute_png.sh
(nyers futtatásopenstego
ésstegoveritas.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 ajohn -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átumcrunch <min-length> <max-length> <charset> <options>
, és a templating opciót használtuk. Nézd meg aless /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
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
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