STEM CTF: Cyber Challenge 2019 | Warm Up

#STEMCTF2019

https://ctftime.org/task/7657

Everyone says that PGP is hard to use. Show ‘em how it’s done.

warm-up.zipが渡される

中身は flag.html.enc, key.enc, mitre-ctf-2019-private.asc passpharase.txt。flag.html.encは openssl en'd data with salted password らしくて、 mitre...ascはPGP PRIVATE KEYってかいてあるけど、世の中ではasc拡張子を持っているファイルは暗号化されているものを指す。key.encはgpgで復号しようとすると情報が得られてgpg: encrypted with RSA key, ID 2D312D1F87BA2B5E らしい

とりあえず mitre...ascはPGPの鍵らしいので gpg --import する。するとpassphraseが求められるけどここで必要なのが多分 passphrase.txtの中身。ちなみに中身は just use ctfd

これで鍵がimportできたので、多分key.encが復号できる。 gpg -o key -d key.enc とする。keyはよくわからないバイナリデータになったけど復号はできたので多分OK。これがflag.html.encの鍵になっているはず。

opensslでは暗号化方式がわからないと復号できないけどこれは全部試せばよいということかな。

次のスクリプトを書いて全部試す。

https://gist.github.com/theoremoon/edb18da90ed1644c866c6731438f1d71

こんな感じで動かす python3 try-all-openssl.py -in flag.html.enc -pass file:./key

いろいろ成功してるように見えるけど file コマンドとかにかけて HTML なのはaes-256-cbc_md5だった。

フラグは MCA{0p3n55l_c0mm4nd_l1ne_ch4ll3ng3_fl4g} あるいは MCA{66b2f50cd2d6b9622c6be902ee2b0976badb4684}

カテゴリ一覧