2012年5月7日月曜日

SECCON CTF 2012/2/18-19 Network 200?

問題:「彼の本名を答えよ」

問題とともにpcapファイルが渡されました。
192.168.1.4から192.168.1.12へ一方的に通信が行なわれてますが、ポート、Seqから考えるとこれは通常ではあり得ないTCP通信であることがわかります。
 パケットの長さも(Len)86から124と大差ありません。

次にパケットの内容を見てみます
 すると、データ部が規則的であることがわかります。
 a1e1が非常に多くてa1fcとa2a3がちらほら見えます。
ここで、これはEUCの文字コードだと閃けば、あとは簡単です。
 EUCの文字列コード表をみると
a1e1 : "="
a1fc : "●"
a2a3 : "■"
であることがわかるが、意味ある文字列ではないのでこれで何かの図形をあらわしているに違いないと疑います。
ぼくは、ScapyというPythonのpcapファイルを扱うためのライブラリ(ユーティリティ)を使ってデータ部のみ切り出して、パケット毎に改行を差し込みました。
以下はそのPythonプログラムです

from scapy.all import *
pcap = rdpcap("network200.pcap")
data = "¥n".join(map(lambda x: str(x.payload.payload.payload), pcap))
open("network200.txt", "w").write(data)

そしてこのnetwork200.txtをテキストエディタで開くとなんと!
 「赤い彗星」という文字が見えてくるので、これで確実に正解がわかった気がします。

1 件のコメント: