Tämä projekti on Docker-kuva, joka on hyödyllinen steganografiahaasteiden ratkaisemiseen, kuten ne, joita löytyy CTF-alustoilta kuten hackthebox.eu.Kuvassa on esiasennettuna monia suosittuja työkaluja (katso lista alla) ja useita seulontaskriptejä, joita voit käyttää yksinkertaisten asioiden tarkistamiseen (esimerkiksi suorita check_jpg.sh image.jpg
saadaksesi raportin JPG-tiedostosta).
Käyttötarkoitus
Varmista ensin, että sinulla on Docker asennettuna (how to).Sitten voit käyttää tässä repossa olevia komentosarjakomentosarjoja bin/build.sh
ja bin/run.sh
rakentaaksesi imagen ja käynnistääksesi kontin.pääset kontin sisällä olevaan bash-komentosuorittimeen.sinne on asennettu data
-kansio, johon voit laittaa analysoitavat tiedostot.
Jos et käytä skriptejä, noudata seuraavia vaiheita:
- Build image (
docker build -t <image_name> .
) tai pull from Docker hub (docker pull dominicbreuker/stego-toolkit
) - Starttaa kontti, jossa tiedostosi on asennettu kansioon
/data
(docker run -it <image_name> -v /local/folder/with/data:/data /bin/bash
) - Käytä CLI-työkaluja ja seulonta-skriptejä tiedostoihisi: esim, suorita
check_jpg.sh image.jpg
luodaksesi nopean raportin tai suoritabrute_jpg.sh image.jpg wordlist.txt
kokeillaksesi piilotettujen tietojen poimimista erilaisilla työkaluilla ja salasanoilla - Jos haluat käyttää GUI-työkaluja, käytä jompaakumpaa näistä kahdesta tavasta:
- Ajoita
start_ssh.sh
ja muodosta yhteys konttiisi X11-tiedonsiirron avulla - Ajoita
start_vnc.sh
ja muodosta yhteys kontin työpöydälle selaimen kautta
Lisätietoa saat seuraavista osioista:
- Mitä työkaluja on asennettu? Siirry tästä
- Mitä skriptejä voin suorittaa tiedostojen nopeaan automaattiseen seulontaan tai raa’an pakottamiseen? Mene tänne
- Miten voin leikkiä erilaisilla steganografiaesimerkeillä nähdäkseni, pystynkö murtamaan ne? Mene tänne
- Miten voin ajaa GUI-työkaluja kontin sisällä? mene tänne
Demo
Aloita komennolla docker run -it --rm -v $(pwd)/data:/data dominicbreuker/stego-toolkit /bin/bash
.Pudotut kontin komentorakennukseen work dir /data
.Isäntäkansiosi $(pwd)/data
mountataan ja sen sisällä oleviin kuviin pääsee käsiksi.
Työkalut
Monet erilaiset Linux- ja Windows-työkalut on asennettu.Windows-työkaluja tuetaan Winen kanssa.Joitakin työkaluja voi käyttää komentorivillä, kun taas toiset vaativat GUI-tuen!
Komentorivin käyttöliittymätyökalut
Nämä työkaluja voi käyttää komentorivillä.Sinun tarvitsee vain käynnistää kontti ja liittää steganografiatiedostot, jotka haluat tarkistaa.
Yleiset seulontatyökalut
Työkalut, jotka kannattaa ajaa aluksi.Sallivat sinun saada karkean yleiskäsityksen siitä, mitä olet tekemässä.
Työkalu | Kuvaus | Käyttökohteet |
---|---|---|
tiedosto | Tarkista, minkälainen tiedosto sinulla on | file stego.jpg |
exiftool | Tarkistaa mediatiedostojen metatiedot | exiftool stego.jpg |
binwalk | Tarkistaa, ovatko muut tiedostot upotettuja/lisättyjä | binwalk stego.jpg |
strings | Tarkista, onko tiedostossa mielenkiintoisia luettavia merkkejä | strings stego.jpg |
esimerkkejä | Karsia sulautetut/lisätyt tiedostot | foremost stego.jpg |
pngcheck | Saa tietoja PNG-tiedostosta (tai saa selville, onko se itse asiassa jotain muuta) | pngcheck stego.png |
identify | GraphicMagick-työkalu, jolla voi tarkistaa, millainen kuva tiedosto on. Tarkistaa myös, onko kuva vioittunut. | identify -verbose stego.jpg |
ffmpeg | ffmpegillä voi tarkistaa äänitiedostojen eheyden ja antaa sen raportoida tiedot ja virheet | ffmpeg -v info -i stego.mp3 -f null - . koodata tiedosto uudelleen ja heittää tuloksen pois |
Steganografiaa havaitsevat työkalut
Työkalut, jotka on suunniteltu havaitsemaan steganografiaa tiedostoissa.Suorittavat useimmiten tilastollisia testejä.Ne paljastavat piilotetut viestit vain yksinkertaisissa tapauksissa. ne voivat kuitenkin antaa vihjeitä siitä, mitä etsiä, jos ne löytävät mielenkiintoisia väärinkäytöksiä.
Työkalu | Tiedostotyypit | Kuvaus | Käyttötapa |
---|---|---|---|
stegoVeritas | Kuvat (JPG, PNG, GIF, TIFF, BMP) | Laaja valikoima yksinkertaisia ja kehittyneitä tarkistuksia. Tarkista stegoveritas.py -h . Tarkistaa metatiedot, luo monia muunnettuja kuvia ja tallentaa ne hakemistoon, Brute forces LSB, … |
stegoveritas.py stego.jpg suorittaa kaikki tarkistukset |
zsteg | Kuvat (PNG, BMP) | Havaitsee erilaiset LSB-stegot, myös openstego ja Camouflage-työkalu | zsteg -a stego.jpg suorittaa kaikki tarkistukset |
stegdetect | Kuvat (JPG) | Toteuttaa tilastollisia testejä selvittääkseen, onko stegotyökalua käytetty (jsteg, outguess, jphide, …). Katso lisätietoja kohdasta man stegdetect . |
stegdetect stego.jpg |
stegbreak | Images (JPG) | Brute force cracker for JPG images. Väittää pystyvänsä murtamaan outguess , jphide ja jsteg . |
stegbreak -t o -f wordlist.txt stego.jpg , käytä -t o outguess, -t p jphide tai -t j jsteg |
Työkalut, jotka oikeasti tekevät steganografiaa
Työkalut, joita voit käyttää viestien kätkemiseen ja paljastamiseen jälkeenpäin.Jotkut salaavat viestit ennen niiden piilottamista.jos ne tekevät niin, ne vaativat salasanan.jos sinulla on vihje siitä, millaista työkalua on käytetty tai mikä salasana voisi olla oikea, kokeile näitä työkaluja.Joitakin työkaluja tukevat tässä Docker-kuvassa olevat brute force -skriptit.
Työkalu | Tiedostotyypit | Kuvaus | Kätkeminen | Palauttaminen |
---|---|---|---|---|
AudioStego | Audio (MP3… / WAV) | Tietoja sen toiminnasta on tässä blogikirjoituksessa | hideme cover.mp3 secret.txt && mv ./output.mp3 stego.mp3 |
hideme stego.mp3 -f && cat output.txt |
jphide/jpseek | Kuva (JPG) | Aika vanha työkalu täältä. Tänne on asennettu versio täältä, koska alkuperäinen kaatui koko ajan. Se kysyy salasanaa interaktiivisesti! | jphide cover.jpg stego.jpg secret.txt |
jpseek stego.jpg output.txt |
jsteg | Kuva (JPG) | LSB stego tool. Ei salaa viestiä. | jsteg hide cover.jpg secret.txt stego.jpg |
jsteg reveal cover.jpg output.txt |
mp3stego | Audio (MP3) | Vanha ohjelma. Salaa ja sitten piilottaa viestin (3DES-salaus!). Windows-työkalu, joka toimii Wine:ssa. Vaatii WAV-syötteen (saattaa heittää virheitä tietyille WAV-tiedostoille. minulla toimii esim: ffmpeg -i audio.mp3 -flags bitexact audio.wav ). Tärkeää: käytä vain absoluuttista polkua! |
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 | Kuvat (PNG) | Vaihtelevia LSB-stego-algoritmeja (katso tämä blogi). Ylläpidetään edelleen. | openstego embed -mf secret.txt -cf cover.png -p password -sf stego.png |
openstego extract -sf openstego.png -p abcd -xf output.txt (jätä -xf pois luodaksesi tiedoston alkuperäisellä nimellä!) |
outguess | Kuvat (JPG) | Käyttää ”redundanttia bittiä” piilottaakseen tietoa. Tulee kahtena versiona: old=outguess-0.13 otettu täältä ja new=outguess pakettireposista. Jos haluat palauttaa, sinun on käytettävä piilottamiseen käytettyä. |
outguess -k password -d secret.txt cover.jpg stego.jpg |
outguess -r -k password stego.jpg output.txt |
spectrology | Audio (WAV) | Koodaa kuvan äänitiedoston spektrogrammista. | TODO |
Käyttää GUI-työkalua sonic-visualiser |
stegano | Kuvat (PNG) | Kätkee dataa erilaisilla (LSB-pohjaisilla) menetelmillä. Tarjoaa myös joitakin seulontatyökaluja. | stegano-lsb hide --input cover.jpg -f secret.txt -e UTF-8 --output stego.png tai stegano-red hide --input cover.png -m "secret msg" --output stego.png tai stegano-lsb-set hide --input cover.png -f secret.txt -e UTF-8 -g $GENERATOR --output stego.png erilaisille generaattoreille (stegano-lsb-set list-generators ) |
stegano-lsb reveal -i stego.png -e UTF-8 -o output.txt tai stegano-red reveal -i stego.png tai stegano-lsb-set reveal -i stego.png -e UTF-8 -g $GENERATOR -o output.txt |
Steghide | Kuvat (JPG, BMP) ja ääniformaatit (WAV, AU) | Versiileä ja monipuolinen ja pitkälle kehitetty työkalu tietojen salaamiseen ja piilottamiseen. | 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 | Kuvat (PNG) | LSB stego… työkalu kuville | cloackedpixel hide cover.jpg secret.txt password luo cover.jpg-stego.png |
cloackedpixel extract cover.jpg-stego.png output.txt password |
LSBSteg | Images (PNG, BMP, …) pakkaamattomissa muodoissa | Yksinkertaiset LSB-työkalut erittäin hienolla ja luettavalla Python-koodilla | LSBSteg encode -i cover.png -o stego.png -f secret.txt |
LSBSteg decode -i stego.png -o output.txt |
f5 | Images (JPG) | F5 steganografinen algoritmi ja yksityiskohtaista tietoa prosessista | 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) ja ääni (WAV) | Yksinkertainen LSB-menetelmään perustuva steganografiaohjelma | stegpy secret.jpg cover.png |
stegpy _cover.png |
Steganografian GUI-työkalut
Kaikilla alla olevilla työkaluilla on graafinen käyttöliittymä, eikä niitä voi käyttää komentorivin kautta.Niiden käyttäminen edellyttää, että kontin sisällä on käytettävissä X11-palvelin. tuetaan kahta tapaa:
- run
start_ssh.sh
käynnistää SSH-palvelin. Yhdistä sen jälkeen X11-tiedonsiirrolla. Vaatii X11-palvelimen isännälläsi! - run
start_vnc.sh
käynnistääksesi VNC-palvelimen + asiakkaan. Yhdistä sen jälkeen selaimella porttiin 6901 ja saat Xfce-työpöydän. Ei isäntäriippuvuuksia!
Vaihtoehtoisesti etsi muita tapoja saada X11 käyttöön kontin sisällä.Monet eri tavat ovat mahdollisia (esim, UNIX-sockettien liittäminen).
Työkalu | Tiedostotyypit | Kuvaus | How to start |
---|---|---|---|
Steg | Kuvat (JPG, TIFF, PNG, BMP) | Käsittelee monia tiedostotyyppejä ja toteuttaa erilaisia menetelmiä | steg |
Steganabara (Alkuperäinen linkki on rikki) | Images (???) | Transformoi kuvia vuorovaikutteisesti, kunnes löydät jotain | steganabara |
Stegsolve | Kuvat (???) | Transformoi kuvia vuorovaikutteisesti, katsele värimaailmaa erikseen, … | stegsolve |
SonicVisualiser | Audio (???) | Visualisoi äänitiedostoja aaltomuodossa, näytä spektrogrammit, … | sonic-visualiser |
Stegosuite | Kuvat (JPG, GIF, BMP) | Voi salata ja piilottaa tietoja kuviin. Kehitetään aktiivisesti. | stegosuite |
OpenPuff | Kuvat, ääni, video (monet formaatit) | Hienostunut työkalu, jolla on pitkä historia. Ylläpidetään edelleen. Windows-työkalu, joka toimii viinissä. | openpuff |
DeepSound | Audio (MP3, WAV) | Audio stego-työkalu, johon itse Mr. Robot luottaa. Windows-työkalu, joka toimii viinissä (hyvin hakkeroitu, vaatii VNC:n ja toimii virtuaalisessa työpöydässä, MP3 rikki puuttuvan DLL:n takia!) | deepsound vain VNC-istunnossa |
cloackedpixel-analyysi | Kuvat (PNG) | LSB-stego-visualisointi PNG-kuville – käytä sitä havaitsemaan epäilyttävät satunnaiset LSB-arvot kuvissa (arvot lähelle arvoa 0.5 voivat viitata siihen, että salattua dataa on upotettu) | cloackedpixel-analyse image.png |
Seulontaskriptit
Monet edellä mainitut työkalut eivät vaadi vuorovaikutusta GUI:n kanssa.Siksi voit helposti automatisoida joitakin työnkulkuja, joiden avulla voit tehdä piilotettuja viestejä mahdollisesti sisältävien tiedostojen perusseulonnan.Koska sovellettavat työkalut vaihtelevat tiedostotyypeittäin, jokaiselle tiedostotyypille on omat skriptinsä.
Kullekin tiedostotyypille on kahdenlaisia skriptejä:
-
XXX_check.sh <stego-file>
: ajaa perusseulontatyökalut ja luo raportin (+ mahdollisesti hakemiston, jossa on raportteja tiedostoissa) -
XXX_brute.sh <stego-file> <wordlist>
: yrittää poimia piilotetun viestin stegotiedostosta erilaisilla työkaluilla käyttäen sanalistaa (listojen luomiseksi asennetaan listatcewl
,john
jacrunch
, jotka pitää pitää olla pieniä).
Tukee seuraavia tiedostotyyppejä:
- JPG:
check_jpg.h
jabrute_jpg.sh
(brute runningsteghide
,outguess
,outguess-0.13
,stegbreak
,stegoveritas.py -bruteLSB
) - PNG:
check_png.h
jabrute_png.sh
(brute runningopenstego
jastegoveritas.py -bruteLSB
)
Sanalistan generointi
Yllä olevat brute forcing -skriptit tarvitsevat sanalistoja.Imho ei todennäköisesti auta käyttää valtavia standardisanalistoja kuten rockyou.Skriptit ovat liian hitaita siihen ja stego-haasteita ei tunnu olevan suunniteltu tähän.Todennäköisempi skenaario on, että sinulla on aavistus siitä, mikä salasana voisi olla, mutta et tiedä sitä tarkalleen.
Tällaisia tapauksia varten on useita työkaluja, joilla voi generoida sanalistoja:
- john: John the Ripper -ohjelman yhteisöllisesti parannettu versio voi laajentaa sanalistoja. Luo perussanalista, jossa on muutama salasanaehdokas, ja käytä
john
luodaksesi niistä monia muunnelmia. Käytäjohn -wordlist:/path/to/your/wordlist -rules:Single -stdout > /path/to/expanded/wordlist
soveltaaksesi laajoja sääntöjä (~x1000)john -wordlist:/path/to/your/wordlist -rules:Wordlist -stdout > /path/to/expanded/wordlist
suppeampaan sääntöjoukkoon (~x50). - crunch: voi luoda pieniä sanalistoja, jos sinulla on jokin malli mielessäsi. Jos esimerkiksi tiedät, että salasanat päättyvät 1984:ään ja ovat 6 kirjainta pitkiä, käytä
crunch 6 6 abcdefghijklmnopqrstuvwxyz -t @@1984
tuottaa 26 * 26 = 676 salasanaa aa1984, ab1984, … aina zz1984:ään asti. Muoto oncrunch <min-length> <max-length> <charset> <options>
ja käytimme templating-vaihtoehtoa. Katsoless /usr/share/crunch/charset.lst
nähdäksesi char setit, joiden kanssa crunch toimitetaan. - CeWL: voi luoda sanalistoja, jos tiedät, että jokin verkkosivusto liittyy salasanaan. Suorita esimerkiksi
cewl -d 0 -m 8 https://en.wikipedia.org/wiki/Donald_Trump
, jos epäilet Donald Trumpin kuvan sisältävän salatun piiloviestin. Komento raaputtaa sivuston ja poimii vähintään 8 merkkiä pitkät merkkijonot.
Steganografiaesimerkkejä
Kuva sisältää esimerkkikuvan ja äänitiedoston kumpikin eri muodoissa:
/examples/ORIGINAL.jpg
/examples/ORIGINAL.png
/examples/ORIGINAL.mp3
/examples/ORIGINAL.wav
Sisältää myös skriptin /examples/create_examples.sh
, jonka voit ajaa upottaaksesi piilotetun viestin (”Tämä on hyvin salainen viesti!”) näihin tiedostoihin monilla eri menetelmillä.Kun olet ajanut tämän skriptin, löydät nämä tiedostot /examples/stego-files
:stä ja niiden nimet osoittavat, mitä työkalua käytettiin viestin upottamiseen.Voit ajaa seulontaskriptit nähdäksesi, löytävätkö ne niistä mitään tai yrittää rikkoa ne muuten.
GUI ja kontit
Oletusarvoisesti mitään GUI-työkaluja ei voi ajaa Docker-kontissa, koska X11-palvelinta ei ole käytettävissä.Jos haluat ajaa niitä, sinun on muutettava tämä.Se, mitä siihen tarvitaan, riippuu isäntäkoneestasi.jos:
- juokset Linuxissa, sinulla on luultavasti X11
- juokset Mac OS:ssä, tarvitset Xquartzia (
brew install Xquartz
) - juokset Windowsissa, sinulla on ongelma
Käyttäkää X11-tiedonsiirtoa SSH:n välityksellä, jos haluatte kulkea tätä kautta. Suorita start_ssh
kontin sisällä käynnistääksesi palvelimen, varmista, että avaat portin 22, kun käynnistät kontin: docker run -p 127.0.0.1:22:22 ...
, käytä sitten ssh -X ...
, kun muodostat yhteyden (skripti tulostaa salasanan).
Jotta et olisi riippuvainen X11:stä, kuvan mukana tulee TigerVNC-palvelin ja noVNC-asiakasohjelma. voit käyttää sitä avataksesi HTML5 VNC-istunnon selaimellasi muodostaaksesi yhteyden kontin Xfce-työpöytään. Sitä varten suorita start_vnc.sh
kontin sisällä käynnistääksesi palvelimen ja asiakkaan, varmista, että paljastat portin 6901, kun käynnistät kontin docker run -p 127.0.0.1:6901:6901 ...
ja siirry osoitteeseen localhost:6901/?password=<the_password>
(skripti tulostaa salasanan).
SSH:n käyttäminen X11-tiedonsiirrolla
Komennot GIF:ssä kopiointia varten & liittämistä varten:
# 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
Selaimen ja VNC:n käyttäminen
GIF:ssä olevat komennot kopiointia & liittämistä varten:
# 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>
Linkkikokoelma
Tämä on kokoelma hyödyllisiä steganografia-linkkejä:
- Pitäisi osata huomata koodit. Tutustu tähän Eric Harshbargerin huijauslomakkeeseen, joka sisältää monia erilaisia koodeja.
- Huijauslomake, jossa kuvataan työnkulkuja, etsittäviä asioita ja yleisiä työkaluja: klikkaa
- Forensics CTF -opas, jossa on paljon ideoita stego-haasteisiin: klikkaa
- Tiedostomuodon kuvaukset kauniina julisteina: klikkaa