resurse CTF

una dintre cele mai comune trucuri steganography este de a ascunde un fișier în interiorul unei imagini. Fișierul se va deschide în mod normal ca imagine, dar va conține și fișiere ascunse în interior, de obicei zip, text și chiar alte fișiere imagine.

motivul pentru care funcționează este că atunci când un fișier imagine este citit, acesta are octeți de început și de sfârșit care dictează dimensiunea imaginii. Vizualizatorul de imagini pe care îl utilizați va utiliza informațiile dintre acești octeți pentru a vă prezenta o imagine, ignorând orice după octetul de terminare.

de exemplu, octetul de terminare pentru un JPEG este FF D9 în hex, deci folosind un vizualizator hex (xxd este bun pentru linux sau ceva de genul HxD pentru windows) puteți afla unde se termină imaginea. Totuși, acești octeți sunt uneori greu de găsit într-o mare de numere, așa că privirea la groapa de hex (textul reprezentând octeții hex) vă poate ajuta, de asemenea, să găsiți ascuns .txt sau .fișiere zip.

exemplu

o implementare foarte simplă a acestei strategii este utilizată în exemplu.fișier jpg în acest director. Dacă îl salvați pe computer și îl deschideți cu un vizualizator de imagini, ar trebui să vi se prezinte o imagine jpg simplă.

acum să încercăm să găsim steagul. Deschideți imaginea în editorul hex preferat și începeți să căutați în jur ceva ciudat (puteți găsi steagul în sine din dump în acest moment, dar, de exemplu, încercați să îl extrageți). În partea de jos a fișierului ar trebui să vedeți octetul de încheiere al unui jpg ffd9:

01e17a0: 685c 7fab 8eb4 5b32 61f1 c4ff d950 4b03 h\....[2a....PK.

o altă parte importantă a acestei linii este PK aproape de sfârșit. PK sunt inițialele lui Phil Katz, inventatorul fișierului zip și indică faptul că un fișier zip începe în acel moment.

folosind aceste informații putem folosi un alt instrument linux la îndemână, dd). Comanda dd este foarte versatilă și permite copierea și conversia unei multitudini de fișiere. În cazul nostru, îl vom folosi pentru a extrage fișierul zip.

știm unde este locația fișierului zip, dar dd ia doar valori zecimale, așa că convertim locația hexazecimală 0x01e17ad de la hex la zecimal pentru a obține 1972141.

conectarea acestuia la dd:

dd if=example.jpg bs=1 skip=1972141 of=foo.zip

acest lucru ia în exemplul de imagine.jpg,’ în fișier ‘ dacă, citește un bloc la un moment dat,’ dimensiune bloc ‘bs, sare pentru a bloca 1972141, sări, și scrie-l la’ Out file ‘ zip noi numim foo.zip. Când se termină acest lucru, ar trebui să aveți un fișier zip pe care îl puteți dezarhiva cu ușurință pentru a accesa fișierul text din interior.

acesta este calea lungă de rezolvare a unei probleme simple de steganografie, dar arată cum funcționează strategia. În secțiunea de rezolvare sunt descrise metode mai concise și mai eficiente.

detectarea

aceste provocări sunt de obicei prezentate ca o imagine simplă fără alte instrucțiuni și depinde de concurent să o ruleze printr-un editor hex pentru a afla dacă implică steganografie. Dacă vi se prezintă o imagine și nu există instrucțiuni, cel mai sigur pariu este că are ceva ascuns după etichetele de închidere ale imaginii.

rezolvarea

deși este posibil și uneori practic să rezolvați aceste sarcini folosind instrumente linux precum dd, există câteva instrumente care o fac mult mai ușoară. Binwalk este un instrument extrem de util care detectează și extrage automat fișierele ascunse cu instrumente de steganografie

CTF exemplu

steganografia de acest tip nu este de obicei marcată foarte mult, dar este larg răspândită. BackdoorCTF 2014 a creat unul care este, în general, simplu, ctfexample.jpg, dar implică mai multe straturi.

XXD

HxD

ZZ

Binwalk

Leave a Reply

Adresa ta de email nu va fi publicată.