第3回は「ダークナイトからの挑戦状」解答編です。さらなるトリッキーな問題も用意したので、もの足りないチャレンジャーも必読の記事です(編集部)
第2回「魂を奪え! 隠されたシークレット・パスワード」の最後で、筆者なりのCTF的問題を出題した。この問題にチャレンジしていただけただろうか。筆者のTwitterでヒントを出していたので正解にたどり着けた方も多いだろう。ヒント自体は、できるだけ回りくどく出したつもりなので、中には正解にたどり着けずイライラした方もいらっしゃるかと思う。
今回は、その出題した問題の解答をお届けしよう。第1回、第2回と同様、正解までの道筋を可能な限り丁寧に解説していくので、解けなかった方も、この連載記事を初めて読む方も読みながら解き進めて欲しい。「答えはこれだ!」で終了といったものにするつもりはないのでご安心を。もちろん、途中でひらめいた方は記事を読むのを止めて、問題に再チャレンジしていただきたい。
今回、解説させていただくのは、筆者なりの模範解答「例」とさせていただく。解き方は1つではないからだ。では、始めよう。
問題はこの1文だけだった。
問題ファイルには拡張子がついていないため、そもそもどういった種類のファイルであるか分からない。それを特定することから始めよう。まずは「file」コマンドによる確認を行う。
ここから、RAR形式書庫だと判断できる。ファイル名に拡張子「.rar」を付加して、実際に「WinRAR」で開いてみよう。
上図のように、問題なく開くことができた。書庫の中には「ntsuji_ctf_01」というファイルが存在している。実際に問題ファイルをコピーし、展開してみよう。展開されたファイルは初期状態の問題ファイルと同名であるため、RAR展開後、ファイル名を、「ntsuji_ctf_01_1」とした。
展開後のファイルもどういった種類のファイルか分からないため、再度、「file」コマンドを実行しよう。結果は下図の通りである。
ここから、tcpdump形式のパケットキャプチャファイルであることが分かる。確認のため、問題ファイルをtcpdumpで読み込んでみよう。下図のように問題なくパケットの内容が表示されるはずである。
しかし、この先、tcpdumpで分析し続けるのは厳しいため、問題ファイルに拡張子「.cap」を付加して、Wiresharkで開いてみよう。
さて、ここまでは前回の「Packet Madness 100」をお読みいただいている方は、楽々とたどり着けたであろう。ここから正解までの突破口を見つけ出さないといけない。
このままWireSharkを眺め、ヒントを得て、正解にたどり着くことも可能だが、今回はパケットの情報を整理しやすくするためのツールを1つ紹介しよう。
紹介するツールは「NetworkMiner」という、Windows用のネットワークフォレンジック分析ツールである。このツールはWireShark同様、パケットキャプチャソフトとしても、取得後のパケットキャプチャファイル(PCAP形式ファイル)をオフライン分析することが可能である。早速、今回の問題ファイルを「WireShark」と「NetworkMiner」で読み込んでみよう。
この結果から、問題ファイルから導き出せるポイントを整理してみよう。
まずは5.に注目してほしい。キャプチャファイルから「key.zip」をNetworkMinerを利用して方法を紹介しよう。
NetworkMinerはキャプチャファイルを読み込む過程で、自動的にパケットファイル中のファイルを抽出する機能を備えている。実際に読み込みを行った方は「NetworkMiner.exe」と同一ディレクトリの「AssembledFiles」以下に作られるディレクトリ内([Source host]ディレクトリ以下の[プロトコル - TCP/UDP Source Port]ディレクトリ)に抽出され保存されているはずである。
難なく抽出することができた「key.zip」を早速、展開してみよう。
どうやら、上図のようにパスワードが設定されているようだ。このあたりで壁にぶち当たり、行き詰まり感満載だった方も多かっただろう。筆者もTwitterで#ntsujiのハッシュタグを付けている方のつぶやきを毎日見ていたが、この段階でつまずいている方が多いように感じた。
Copyright © ITmedia, Inc. All Rights Reserved.