DominicBreuker / stego-toolkit

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).

Dockerin rakennustilanne

Hack The Box

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:

  1. Build image (docker build -t <image_name> .) tai pull from Docker hub (docker pull dominicbreuker/stego-toolkit)
  2. Starttaa kontti, jossa tiedostosi on asennettu kansioon /data (docker run -it <image_name> -v /local/folder/with/data:/data /bin/bash)
  3. Käytä CLI-työkaluja ja seulonta-skriptejä tiedostoihisi: esim, suorita check_jpg.sh image.jpg luodaksesi nopean raportin tai suorita brute_jpg.sh image.jpg wordlist.txt kokeillaksesi piilotettujen tietojen poimimista erilaisilla työkaluilla ja salasanoilla
  4. 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.

animoitu demo gif

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 listat cewl, john ja crunch, jotka pitää pitää olla pieniä).

Tukee seuraavia tiedostotyyppejä:

  • JPG: check_jpg.h ja brute_jpg.sh (brute running steghide, outguess, outguess-0.13, stegbreak, stegoveritas.py -bruteLSB)
  • PNG: check_png.h ja brute_png.sh (brute running openstego ja stegoveritas.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 on crunch <min-length> <max-length> <charset> <options> ja käytimme templating-vaihtoehtoa. Katso less /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

animated demo gif - SSH + X11

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

animoitu demo gif - Selain + VNC

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

Vastaa

Sähköpostiosoitettasi ei julkaista.