H4CK1T CTF 2016 Online に参加しました.私が解いた分のWrite-upです.5人制限でしたが,チームのメンバー1人と一緒に2人チームで解きました.
1週間くらい開催されてたOnline CTFだったので,色々問題が見られて楽しかったです.
ゲームボードについて
問題が表示されるゲームボードが,とても作りこまれていたのが印象的でした.
ただ,接続が安定してなくて何度も読み直さなければならなかったり,画面が小さすぎると表示できないなど少し不便な点もありました.
各国に問題が置いてあるみたいな感じの仕様で,フラグを取ると赤い△から黄色い△に変化します.面白いです.
ジャンルについて
このCTFは計12個のジャンルがありました.QUIZ, ADM1N, CRYPTO, FOreN$ICS, JOY, M1SK, N3TWORK, PPC, PWN, REVER$E, $TEGO, W3B がありました.
JOYは,何かチャットに参加したりするとフラグ貰えるとか楽しい感じのやつでした(雑な説明).ADM1Nはどういう感じだったかよくわかってないです.
解いた問題
- QUIZ系数問
- Chad – Ninja Scheme (CRYPTO 195 pts)
- India – hash?! (CRYPTO 150 pts)
- Senegal – Evil_Corps (CRYPTO 115 pts)
- United States – T3legr4m (JOY 50 pts)
- Mongolia – HellMath (PPC 100 pts)
- Paraguay – Hex0gator (PPC 250 pts)
- Mozambique – 1magePr1son ($TEGO 150 pts )
- Argentina – r34n1m4710n (N3TWORK 100 pts)
CRYPTOは250 ptsだけ解けなくて悲しみに包まれていました.
QUIZ (共通10 pts)
Venezuela – INTRUSHIELD
What is the default password for INTRUSHIELD IPS Rev. 1200/2600/4000?
h4ck1t{answer(lowercase)}
ここに書いてあった.
h4ck1t{admin123}
Colombia – Code name
Code name of CVE-2014-0160?
h4ck1t{answer(lowercase)}
かの有名な
h4ck1t{heartbleed}
Ecuador – Se@rch
What is the first search engine on the Internet?
h4ck1t{answer(lowercase)}
aが4になったり@になったりしますね.
h4ck1t{archie}
Spain – Pe0pl3
What type of attack is about to hack people, not computers?
h4ck1t{answer(two words ib lowercase)}
h4ck1t{social engineering}
Nigeria – B1ts
How many bits are used in IPv6?
h4ck1t{answer}
調べるまでもなく答えられました(相方が)
h4ck1t{128}
Tanzania – Protocol
What protocol is used for internet control message transmission ?
h4ck1t{answer(lowercase)}
h4ck1t{icmp}
Philippines – Virus-3
What name of the first computer virus?
h4ck1t{answer(lowercase)}
Elk Clonerだと思ってましたが違いました.
h4ck1t{creeper}
CRYPTO
Chad – Ninja Scheme (CRYPTO 195 pts)
オレオレ実装の暗号アルゴリズムを表している画像1枚と,そのアルゴリズムで暗号化された結果が問題として渡される.その画像が以下(オリジナルはこちら).
構造はファイステル構造.関数Fで使われているNがラウンド数であると仮定して総当たり(というかそれしか無かった).
The flag is h4ck1t{KV_F315T31_Kn0VVS_H1S_NN3Tvv0Rk_PrEttY_a1nt_B4D}
India – hash?! (CRYPTO 150 pts)
問題のサイトにアクセス.今度はオレオレハッシュアルゴリズムみたいです.画面にハッシュが表示され,60秒以内に元の文字列を答えよと言われているようです.
画面右上のGeneratorを押すと,同じアルゴリズムでハッシュを作ることができます.ここで色々試します.例えば,こんな感じにハッシュが生成されます.
a -> TiKCKWCC
b -> HxPCfbCC
ab -> TiLxHxPCfbCC
abの結果と,aとbそれぞれの結果が類似しています.ならば,全文字([a-zA-Z0-9])のハッシュを取って照合できそうです.
60秒の猶予があるので,solverを回して求めた文字列をコピペするというのを何回かやると突破できました(精度が低いため).この時は運が良く2回で突破できました.
The flag is h4ck1t{th3_b3st_h@sh_3v3r}
Senegal – Evil_Corps (CRYPTO 115 pts)
今度はオレオレアルファベット….
こちらのファイルが問題として渡されます.また,問題文には,独自のアルファベットを使っていると書いてあります.
最初に考えたことは,換字式暗号を使っており,頻度分析で解けるのではないかということでした.しかし,しばらく文字を眺めていると,独自のアルファベットというのは,単にアルファベットに似た別の文字を当てていることに気が付きました(theの部分がわかりやすい).目で見て解読していくと,l,a,gの3文字(flagのlag)が確定したので,その文字でgrepすると,
flag isとなっている部分が見つかる.(33行目くらい)
The flag is h4ck1t{massonsareeverywherelookbehindyou}
JOY
United States – T3legr4m (JOY 50 pts)
問題文は,”Join us in SUPER TOP SECRET telegram chat!!” というメッセージと,こちらのサイトでした.
Telegramを使ってチャットに参加すれば良いようです.チャットに入ると思ったより普通に会話が繰り広げられていたので,
フラグは流れていかないようなところにあるんだろうなと思いチャットのdescriptionを見たらフラグがありました.
The flag is h4ck1t{fr33_4nd_$ecur3!}
PPC
Mongolia – HellMath (PPC 100 pts)
nc ctf.com.ua 9988
繋ぐとこんな文章が.
1 2 3 4 5 6 7 8 9 10 11 12 |
$ nc ctf.com.ua 9988 Hello, stranger! In this task you must solve 100 math questions. Every task prints value C, where C = A ^ B , and you need to return A and B. Simple, isn't it? C = very_large_number |
Cはとても大きな数で,C = A^B となるようなAとBを送れば良いようです.フォーマットは”A[空白]B”とすれば良いみたいです.あまり工夫のない時間のかかる総当たりプログラムで突破.
The flag is h4ck1t{R4ND0M_1S_MY_F4V0UR1T3_W34P0N}
Paraguay – Hex0gator (PPC 250 pts)
これに似た問題,別のCTFで見たことがあるけど思い出せない….
zipファイルが渡されます.
とりあえず解凍してみるとまたzipファイルが.もっかい解凍すると今度はrarファイルが.こんな感じで,問題のファイルは何重にも圧縮されています.これを解くのがtaskのようです.圧縮形式は3種類で,zip, rar, gzip(tarアーカイブ)です.ファイル名から100回解凍すれば良いことがわかるので,solverのようなコードを書いて,問題ファイルと同じディレクトリに置いて実行.
最後にフラグの書いてあるファイルが出てきます.
The flag is h4ck1t{0W_MY_G0D_Y0U_M4D3_1T}
$TEGO (steganography)
Mozambique – 1magePr1son ($TEGO 150 pts )
これちょっと楽しかったです.以下のような画像が渡されます(オリジナルはこちら)
stringsやexifを見て特に何もないので,画像をよく見ます.良く見ると,星々の点以外に,規則正しく並んだ点が見て取れます.
この画像ではピンクの点と黒い点が見て取れます.それ以外に白っぽい点もあることが分かります.試行錯誤をしていると,ピンクの点が何か文字を作っていることが分かりますので,ピンクっぽい点を白に,それ以外全てを黒にするスクリプトを書きます.
ず,ズームすれば見えるんです…
ピンクの点周辺がはっきり見えるようにプログラムを書き換えました.
The flag is h4ck1t{SPACE_IS_THE_KEY}
N3TWORK
Argentina – r34n1m4710n (N3TWORK 100 pts)
100点なので超簡単.問題ファイルとしてpcapが渡されます(こちら).”Recover the password.”と言われているので,Wiresharkのフィルタで「tcp contains pass」として2つ目のパケットでFollow TCP Stream.
The flag is h4ck1t{i_G07_ur_f1l3s}
まとめ
相変わらずセキュリティに関係なさそうな問題ばかり解いてしまいました.自戒.でも暗号問題が解けて良かったです.
余談
SubmitボタンとRequest Hintボタンを2回ほど押し間違えるなどした(Request Hintすると-50点…orz )