検索
連載

魂を奪え! 隠されたシークレット・パスワードセキュリティ・ダークナイト(2)(1/3 ページ)

ハッカー級の知恵比べ、CTFの楽しさは見ているだけでは分かりません。あなたもセキュリティ・ダークナイトからの挑戦状、受けてみませんか?(編集部)

Share
Tweet
LINE
Hatena

 前回「プレイ・ザ・ゲーム! CTFが問いかけるハックの意味」では、筆者が体験したDEFCON CTF予選の問題の2つを紹介した。今回は予告どおり、少しテクニカルな問題にチャレンジしていただこうと思う。さらに、筆者が作成したCTF的問題を出題するので、ぜひともチャレンジしていただきたい。

【編注】
本項では解答となる文字列を、クリックするまで見えないようにしております。実際にツールを使いながら、CTFにチャレンジしてみてください。

パスワードのヒントはどこ? 「Packet Madness 100」

 それでは、早速前回の続き「Packet Madness 100」の問題を紹介しよう。

問題:

Exceptions in comments make

exceptional passwords

超意訳:

コメントの中の例外は

例外的なパスワードを作りだす。


 この問題では問題文だけではなく、ダウンロード可能なファイルがあった。まずはファイルをダウンロードしなければ始まらないようである。

 早速ファイルをダウンロードしたところ、ファイル名が「a9366acd80efa0aa78c2f76d9702f033」という名前であり、そもそも何のファイルかということそのものが分からない。そのため、Linuxコマンドである「file」コマンドを実行して調べた。ちなみに、ファイル名は問題ファイルのMD5ハッシュ値である。

 ここからは、手元にLinux環境が整っている方はぜひ一緒にチャレンジしながら読み進めてほしい。どうしても環境が用意できない方も、頭を働かせながらゆっくりと読み進めていただきたい。

図1 ファイル名はファイル自体のMD5ハッシュ値だった
図1 ファイル名はファイル自体のMD5ハッシュ値だった

 下図は「file」コマンドの実行結果である。

図2 fileコマンドを実行
図2 fileコマンドを実行

 「tcpdump capture file」と表示されている。これはパケットを記録したファイルであることを示している。問題ジャンルが「Packet Madness」であるため当然といえば当然であるが、この無駄と思われる手順も無視できないのがCTFである。何がヒントになるか分からない。

 パケットを記録したファイルであることが分かったため、次にこの中身をのぞいてみよう。

 「file」コマンドの結果では、「tcpdump capture file」と表示されたが、今回は「tcpdump」では開かない。パケットの記録やちょっとした分析であれば、その手軽さからもtcpdumpは威力を発揮するが、今回はさまざまな機能があり直感的に操作しやすいGUIを備えた「Wireshark」を用いて、問題ファイルを開いた。ファイルを開いた結果は下図の通りである。

図3 WireSharkでファイルを開く
図3 WireSharkでファイルを開く

 これを見ると、自分自身に対してHTTPアクセスを行った通信の記録であろうことが一目で確認できる(問題用に書き換えているのだろうか。MACアドレスがすべてゼロになっているあたりはニクイ)。

パケットのやりとり、注目すべき点は

 それでは、問題の通信内容を見てみよう。皆さんはどのあたりに注目されただろうか。筆者は、通信内容のGETリクエストに注目した。

図4 ファイル名らしきものが存在する
図4 ファイル名らしきものが存在する

 この通信で着目すべきところは、「GET /sekritpr0n5.zip HTTP/1.0」の部分である。

 これは、HTTPのGETメソッドによるリクエストである。通常はこのリクエストのあと、Webサーバはリクエストされたファイルが存在すればレスポンスを返し、ファイルをダウンロードさせる。

 GETメソッドによるリクエストのあと、7つめのパケットを見ると、「HTTP/1.1 200 OK」と応答しているので、正常にダウンロードを開始できたパケットであろう。つまり、このパケットにはリクエストした「sekritpr0n5.zip」ファイルそのものが記録されているのではないか、と考えられるのである。

 それでは、この通信内容からダウンロードしたと思われるファイルを抽出してみよう。抽出するには問題ファイルをオープンした「Wireshark」の画面で、右クリックから「Follow TCP Stream」を選択する

図5 Follow TCP Streamをクリックする
図5 Follow TCP Streamをクリックする

 「Follow TCP Stream」をクリックすると下図の画面が表示される。

図6 パケット情報からやりとりを可視化する
図6 パケット情報からやりとりを可視化する

 これは、選択した通信の連続するパケットを抽出、結合して表示したものである。この画面から、「Save As」ボタンをクリックし、任意の場所に拡張子を「.zip」として保存してほしい。筆者は通信の内容に沿って「sekritpr0n5.zip」とした。

 問題なく保存ができたらZipファイルの展開をしてみよう。問題なく展開されるはずである。これでパケットからファイルを復元することに成功した。展開された内容を見てみよう。

Copyright © ITmedia, Inc. All Rights Reserved.

       | 次のページへ

Security & Trust 記事ランキング

  1. 中小企業の20%の経営層は「自社はサイバー攻撃に遭わない」と信じている バラクーダネットワークス調査
  2. ChatGPTやClaudeのAPIアクセスをかたってマルウェアを配布するPython用パッケージ確認 Kasperskyが注意喚起
  3. 「生成AIのサイバー攻撃への悪用」は増加する? 徳丸浩氏が予測する2025年のセキュリティ
  4. AWS、組織のセキュリティインシデント対応を支援する「AWS Security Incident Response」を発表 アラートに圧倒されるセキュリティチームをどう支援?
  5. 従業員は「最新のサイバー脅威との戦い」を強いられている セキュリティ教育に不満を持つ理由の1位は?
  6. 「このままゼロトラストへ進んでいいの?」と迷う企業やこれから入門する企業も必見、ゼロトラストの本質、始め方/進め方が分かる無料の電子書籍
  7. Google、オープンソースのセキュリティパッチ検証ツール「Vanir」を公開 多種多様なAndroidデバイスの脆弱性対応を支援するアプローチとは
  8. 商用国家安全保障アルゴリズム(CNSA)の期限となる2030年までに暗号化/キー管理サービス市場が60億ドルに達するとABI Researchが予測 急成長の要因とは?
  9. 「SQLite」のゼロデイ脆弱性、GoogleのAIエージェントが見つける AIは脆弱性調査の課題をどう解決したのか?
  10. 高度なAIでAIをテスト OpenAIが実践するAIモデルのレッドチーム演習とは
ページトップに戻る