CTF Resources
En av de vanligste steganography triks er å skjule en fil inne i et bilde. Filen åpnes normalt som et bilde, men vil også holde skjulte filer inne, vanligvis zip, tekst og til og med andre bildefiler.
grunnen til at dette fungerer, er at når en bildefil leses, har den start – og sluttbyte som dikterer størrelsen på bildet. Bildeviser som du bruker vil bruke informasjonen mellom disse byte for å presentere et bilde til deg, ignorerer noe etter avsluttende byte.
for eksempel er avslutningsbyen FOR EN JPEG FF D9 i hex, så bruk en hex viewer (xxd er bra for linux, Eller Noe Som HxD for windows) du kan finne ut hvor bildet er ferdig. Disse bytes er noen ganger vanskelig å finne i et hav av tall skjønt, så ser på dump av hex (teksten som representerer hex bytes) kan også hjelpe deg med å finne skjult .txt eller .zip-filer.
Eksempel
en veldig enkel implementering av denne strategien brukes i eksemplet.jpg-fil i denne katalogen. Hvis du lagrer den på datamaskinen og åpner den med en bildeviser, bør du bli presentert med et enkelt jpg-bilde.
nå kan vi prøve å finne flagget. Åpne opp bildet i din favoritt hex editor og begynne å lete rundt etter noe rart (du kan finne flagget selv fra dump på dette punktet, men for å få til eksempel prøve å trekke det). Nær bunnen av filen bør du se den avsluttende byte av en jpg ffd9
:
01e17a0: 685c 7fab 8eb4 5b32 61f1 c4ff d950 4b03 h\....[2a....PK.
En annen viktig del av denne linjen er PK
nær slutten. PK
er initialene Til Phil Katz, oppfinneren av zip-filen, og indikerer at en zip-fil starter på det tidspunktet.
Ved hjelp av denne informasjonen kan vi bruke et annet praktisk linux-verktøy, dd
). Kommandoen dd
er svært allsidig og tillater kopiering og konvertering av en rekke filer. I vårt tilfelle skal vi bruke den til å pakke ut zip-filen.
Vi vet hvor plasseringen av zip-filen er, men dd
tar bare desimalverdier, så vi konverterer den heksadesimale plasseringen 0x01e17ad fra hex til desimal for å få 1972141.
Plugger dette inn i dd:
dd if=example.jpg bs=1 skip=1972141 of=foo.zip
Dette tar i bildet eksempel.jpg,’ in file ‘ hvis, leser en blokk om gangen,’ block size ‘ bs, hopper over for å blokkere 1972141, hoppe over og skriver den til ‘out file’ zip vi kaller foo.zip. Når dette er fullført, bør du ha en zip-fil du enkelt kan pakke ut for å få tilgang til tekstfilen inni.
Dette er den lange veien for å løse et enkelt steganografiproblem, men viser hvordan strategien fungerer. I Løsningsseksjonen beskrives mer konsise og effektive metoder.
Detektering
disse utfordringene presenteres vanligvis som et enkelt bilde uten andre instruksjoner, og det er opp til konkurrenten å kjøre det gjennom en hex-editor for å finne ut om det innebærer steganografi. Hvis du blir presentert med et bilde og ingen instruksjoner, er det sikreste alternativet som er har noe skjult etter den avsluttende kodene i bildet.
Løse
Selv om det er mulig og til tider praktisk å løse disse oppgavene ved hjelp av linux-verktøy som dd
, er det noen verktøy som gjør det mye enklere. Binwalk
ER et uhyre nyttig verktøy som automatisk oppdager og trekker ut filer skjult med steganography verktøy
CTF Eksempel
Steganography av denne typen er vanligvis ikke scoret veldig høyt, men er skikkelig utbredt. BackdoorCTF 2014 opprettet en som er generelt grei, ctfexample.jpg, men innebærer flere lag.
XXD
HxD
DD
Binwalk