【エクマス11日目記事】CTFについて語りたい
※この記事はやきゅ氏企画のアドベントカレンダー、エクマス11日目の記事です。
技術系に興味のない方向けの裏番組
アイマスから始めるオーディオ入門 - 変態の駄文置き場
初めに
タピオカって飲み込むタイミングがわからないよね。どうもゆがぽです。
さてエクマスを開催するということは聞いていましたが、何を書くのか全く決まっていない状況で軽率に登録したからさあ大変。
そして前後はツヨイ人。
プレッシャーがとんでもないですが一応書いていきたいと思います。
今回のエクマスでは、自分が最近始めたCTFについて語っていきたいと思います
CTFとは何ぞや
CTFというのは、コンピューターを使った知恵の輪のようなスポーツです。
CTFでは、FLAGと呼ばれる特定の文字列を見つけ出し、そのFLAGを提出することで得点を得られます。
FLAGを隠し、見つける手法は数えきれないほどあります。
今日は例題を用いながら、CTFの軽い入門をしてみたいと思います。
CTFの始め方
Web上には数多くの常設CTFが用意されています。
今回例に出すのはMacnica Networks CTF、略してMNCTFというイベント開催だったCTFが常設化されたものを例題として取り扱います。
(入門なので齧る程度ですが)
それでは初めて行きましょう!
問題を解いてみる
さて、MNCTFのサイトのURLはこちらになります。
mnctf.info
このサイトの右上のボタンを押しユーザー登録をします。
パスワードとユーザー名を登録すれば、CTFを始める準備は完了です。
ログインしたら、悪意部品という問題を選びます。
そして、その問題の本文中にあるファイルをリンク先を保存します。
このファイルは一見拡張子がpngなので画像のように見えますが、これは画像ではありません。
さて、これを読んでみましょう。
バイナリエディタというツールを使います
これについてはお好みのものを使ってください。(オススメはStirling)
たぶんこうなると思います
さて、なんのこっちゃわかりませんね。
そこで出るのが次のヒントです。
問題内のリンクをクリックします。
https://blogs.jpcert.or.jp/ja/2018/05/linopid.html
さて、このリンク先のページによると
このファイルは「RC4」という暗号化形式で暗号化されており、そしてその先頭の0x20が暗号化のカギになっている…と書かれています。
ですので
43 2c c9 de 28 e2 a6 c0 52 98 41 ef bc bf a5 12 88 9e c2 3d 0a c9 10 eb 51 08 ef 49 94 e0 e9 b7
がカギになります。
そして復号していきます。
CyberChefというツールを使います。
gchq.github.io
まず、先頭の32バイトが邪魔なのでこれを取り除きます。
左側の検索ボックスに「Drop」と入力してください。
そして、DropbytesをRecipeという欄にドラッグアンドドロップします。
そして上の図のように設定します。この設定では最初の32byteを切り捨てるということになります。
次に、このままでは復号できないのでHexに変換します。
検索ボックスに「To Hex」と入力します。そして出てきたTo Hexを使います。
これも上の図と同じようにドラッグアンドドロップしますが、Drop bytesの下においてください。さて、このようになったと思います。
最後に、検索ボックスに「RC4」と入力し、RC4を一番下に配置します。
そして、Passphraseに先ほどのカギをコピペし、Input FormatをHexに、Output FormatをLatin1にしてセッティングは完了です。
そしてInputという欄に先ほどのlogo.pngをドラッグアンドドロップで読み込ませます
するとOutputはこのようになるはずです。
ここに書かれている何やら.comで終わるいかにもドメイン名っぽいのがこの問題のFLAGとなります。これを.comまでコピーして、先ほどの問題の解答欄に張り付け、回答を押せばこの問題はクリアとなります。
と、ここまで急ぎ足でやってきましたが、いかがでしたでしょうか?
難しそう、よくわからない。という人も多いと思います。
それでも最初は大丈夫です。少しずつやっていけば、大抵の簡単な問題は解けるようになってきます。
今回の記事を通して、少しでもCTFというものに興味を持ってくだされば幸いです。
明日は宮野さんの記事です。
それではまたどこかでお会いしましょう!
ゆがぽ