CSAW CTF Qualifiers 2012 –
Forensics 200

CSAW CTF 2012 - Forensics 200 - forensic image

Wenn man sich “version1.png” der Challenge “Forensics 200” (Part 1) im Editor anschaut fällt sofot ins Auge, dass im PNG File jede menge TextComments mit dazugehörigen Namen in folgendem Format existieren:
tExtcomment^@key{…….}

CSAW CTF 2012 - Forensics 200 - PNG text comments

Mit “strings” und “grep” wird das ganze erstmal in lesbare Form gebracht.

=> strings version1.png | grep key

CSAW CTF 2012 - Forensics 200 - extracted png comments

Da das ganze immer noch nicht übersichtlich genug ist, wird das ganze verfeinert und nur die Namen in keys{….} sortiert ausgegeben.
Die Sortierung ist dabei völlig optional und nur zum besseren Verständis gedacht.
Zusätzlich wird der Output in einer Datei “persons1.txt” gespeichert.

=> strings version1.png | grep key | sed -e ‘s/key{\(\w*\s\w*\)}.*/\1/’ | sort > persons1.txt

Wenn man sich das ganze noch einmal im Editor anguckt, stellt man fest, dass es sich um 500 Namen handelt. Nun ist die Frage was man mit diesen Erkenntnissen anfangen kann. Ehrlich gesagt? Noch nicht viel. (One Thing is not like the Other …) Somit muss man weiter graben. Hierzu eignet sich hervorragend das Tool “pnginfo”, welches im Paket “pngtools” enthalten ist.

=> pnginfo version1.png

CSAW CTF 2012 - Forensics 200 - CRC check error

Hierbei stellt man schnell fest, dass lediglich 499 Namen ausgegeben werden.
Einer von den Namen kann nicht angezeigt werden = CRC error. Mit den Tools “grep”, “sed” und “sort” speichert man auch diese Namen in eine Datei “persons2.txt”.

=> pnginfo version1.png | grep key | sed -e ‘s/    comment (tEXt uncompressed): key{\(\w*\s\w*\)}.*/\1/’ | sort > persons2.txt

Zu guter letzt vergleicht man die beiden Files mit “diff”, um den oben erwähnten (gesuchten) Namen mit CRC error zu finden.

=> diff persons1.txt persons2.txt

CSAW CTF 2012 - Forensics 200 - CRC diff

Somit ist der Key: takeuchi gregory

PS: Es gibt noch einen schnelleren Weg, indem man direkt das Tool “pngcheck” benutzt.
Dieses ist jedoch ein eigenständiges Tool, welches nicht im Paket von pngtools enthalten ist. “pngcheck” prüft ein PNG File auf CRC error, was allein ist nicht sehr nützlich ist.
Wenn man “pngcheck” allerdings mit dem Parameter -7 aufruft, werden bis zum Abbruch des CRC error jegliche tEXt Chunk Daten ausgegeben.

=> pngcheck -7 version1.png

CSAW CTF 2012 - Forensics 200 - solution

Somit ist der Key: takeuchi gregory

Leave a Reply

Your email address will not be published.