chickが送るBeginners CTF 2019 Dump(Misc)の解説
はじめまして、chickです。
DumpのWriteUpを書きます。
(ほぼ)ワンライナーなので参考にはなりにくいかも...
DLしたdumpファイルをWiresharkなどで開くと、こんな感じになる。
ざっと見た感じ、ICMP,TCP,HTTPのパケットしかないようなので、適当にHTTPパケットに目星をつけた。
とりあえず抽出したらWebshellでhexdumpを投げてるっぽいので、戻りパケットのHTMLファイルをエクスポート(追跡->HTTPストリーム->保存)する。
中を見たら8進数3文字区切りの文字列が出てきたので、読めるようにしていく。
cat dump_export | sed 1,17d | head -n -2 | tr " " "\n" | sed s/^/0/g | while read line; do printf %x\\n $line; done | sed /^.$/i0 | tr -d "\n" | xxd -r -p > bin_export
これでフラグが入っているファイルが復元できるので、小分けにして解説していきます。
cat dump_export
<- エクスポートしたファイルをcatする。これをしないと何も始まらない。
sed 1,17d
<- 1〜17行目がHTMLのタグとかヘッダ情報で邪魔だったので消す。
head -n -2
<- 末尾2行もタグの括りで邪魔だったので消す。
tr " " "\n"
<- 16進数に変換するときにスペース区切りだと都合が悪いので改行させる。
sed s/^/0/g
<- 3文字区切りだと16進数に変換するときに都合が悪かったので行頭に0を追加する。
while read line; do printf %x\\n $line; done
<- printfコマンドで1行ずつ16進数に変換していく。
sed /^.$/i0
<- 16進数に変換したときに先頭に0を足してくれなかったので足す。
tr -d "\n"
<- バイナリ的に改行が邪魔なので消す。
xxd -r -p > bin_export
<- 16進数のバイナリをファイルに復元する
fileコマンドで見たらgzipだったので展開したらtarアーカイブファイルが出てきたので展開
ファイルの展開まで1行で書くなら、
cat dump_export | sed 1,17d | head -n -2 | tr " " "\n" | sed s/^/0/g | while read line; do printf %x\\n $line; done | sed /^.$/i0 | tr -d "\n" | xxd -r -p > bin_export && tar -zxf bin_export
画像ファイルが出てくるので、開いてみるとFlagが出てきた。
いつかtcpdumpコマンドとsed,awkあたりでダンプファイルのエクスポートまでワンライナーで書きたい。