[ksnctf] Zip de kure

ksnctfにチャレンジ
第19問目です。

※ksnctfは常駐型のCTFサイトです。
※問題のページはコチラです。

Zip de kure

パスワード付きZIPファイルの解凍を目指します。
ZIPパスワードの解析は

特定のソフトの乱数生成のバグなどを利用する
少ない桁であると分かっている場合は総当り
もう1つが
既知平文攻撃

です。
特定の暗号化方式で
一部の暗号文と平文が分かっている場合
他の暗号文の元の平文も求まるものがあり
ZIPではこの攻撃が有効で、CTFではよく使われます。

昔の SECCON にもあった気がします。

また、ZIPはパスワードがわからなくても中に入っている
データのリストは取得できるので
有名な .dll や データの名前が確認できた場合
この方法が有効だったりします。

さて

$ unzip -l flag.zip
Archive:  flag.zip
Hint:
- It is known that the encryption system of ZIP is weak against known-plaintext attacks.
- We employ ZIP format not for compression but for encryption.
  Length      Date    Time    Name
---------  ---------- -----   ----
      304  06-03-2012 18:14   flag.html
   255964  06-03-2012 18:10   Standard-lock-key.jpg
---------                     -------
   256268                     2 files

Hint としてもろに known-plaintext って書いてありますね。
安心して実行できます。
pkcrack を使用して

Standard-lock-key.jpg

が使えそうなデータなので検索してみると
 これ
がそうですね。

以上から

$ pkcrack -C flag.zip -c Standard-lock-key.jpg -p ./Standard-lock-key.jpg -d flag_.zip

-C : 暗号zip
-c : 暗号zip内で平文が分かるデータ
-p : 平文
-d : 出力するzip名

$ unzip flag_.zip

で無事に展開できました。

コメントする