問題文は「ハイドはどこに潜んでいるのだろう」。まずは問題ファイルを、もはやおなじみとなった「file」コマンドを実行してみよう。
結果は、上図の通り、Microsoft Wordファイルのようである。では、開いて見てみてよう。
「私はジキル」と書かれている。しかし、「file」コマンドの結果には、「Title: I am hyde」とある。問題文にもある通り、ハイドはどこかに潜んでいるのである。しかし、Wordドキュメントの関連の調査を行ってもこの問題は先に進むことはできない。いま見えているものばかりが答えにつながらないのだ。
それでは、次にファイルそのものに何か隠された文字列がないかの確認のために「strings」コマンドを実行してみよう。
文字列の最後に「Microsoft Office Excel」「Excel.Sheet.8」という文字列が見つかることだろう。何も手を加えていないWordドキュメントは下図のように、このような表示はされない。
このWordドキュメントにはExcelワークシートが隠されている可能性があるのである。ちなみに、GUIでは、「Structured Storage Viewer」を使うことでこのトリックを見破る糸口を見つけることができる。
それでは、この「.doc」としたWordドキュメントを「.xls」とリネームし、開いて見よう。問題なく、Excelドキュメントとして開くことができる。
さて、開くことは開けた。「私はハイド」と書かれているが、答えがどこにあるのかは一見分からない。ここのトリックは、分かってしまえばなんということのない、本当に古典的なトリックである。
貼り付けてある画像を移動させて、全選択(ctrl+a)をしてみて欲しい。うっすらと文字が浮かび上がっている。縦書きで「consistency」と。
この稚拙とも呼べるトリックに地道に気付く方法以外にも、この文字列を導き出すことのできるツールをこの問題にチャレンジし、正解した方にお教えいただいた。
その方法とは、ファイルの拡張子を「.xls」としてから「xdoc2txt」というツールを使って文字列抽出を行う方法である。この方法をであれば、「xls」にすることさえ気付けば一瞬で正解にたどり付くことができるだろう。
前回、前々回と筆者がチャレンジした問題を紹介し、正解への過程を解説させていただいた。そして、今回は、筆者が作成した問題にチャレンジいただき、その解答を解説させていただいた。中には、筆者が想定していない解き方で正解にたどりついた方もいるだろう。
正解にたどり付く決め手にならない方法をさまざま考え、試された方もたくさんいらっしゃるようだ。しかし、それは、単なる無駄ではなく、楽しみであり、日常触れなかったものへの学習につながったのではないだろうか。
筆者自身も、CTF09の予選に参加することで、ひと言ではいい表せないさまざまなことを学ぶことができたと強く感じた。その感覚をより多くの方々に感じて欲しいと思い、問題を作成し、出題させていただいたのである。
人は、無自覚なまま、固定観念という牢獄に自らとらわれてしまう。しかし、そんな牢獄は誰かに用意されたものではなく、知らず知らずのうちに自分自身が作り出した「枠」なのかもしれない。
日常生活、人間関係、そして、コンピュータセキュリティ。どのような分野においても自身の目に見えるもの、自身の経験から知っているものだけが物事のすべてではなくその「枠」を超えたところに「答え」と呼べるものがあるのかもしれないと筆者は考えている。
辻 伸弘(つじ のぶひろ)
セキュリティエンジニアとして、主にペネトレーション検査などに従事している。
民間企業、官公庁問わず多くの検査実績を持つ。
自宅では、趣味としてのハニーポットの運用、IDSによる監視などを行っている。
▼辻氏のブログ「(n)」: http://n.pentest.jp/
▼辻氏のTwitter: http://twitter.com/ntsuji
Copyright © ITmedia, Inc. All Rights Reserved.