0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DIVER OSINT CTF 2025 Writeup

Last updated at Posted at 2025-07-16

はじめに

昨年に引き続き、「DIVER OSINT CTF」に2回目の参加をしました。

昨年のWriteupはこちら: DIVER OSINT CTF 2024 writeup - Qiita

結果

スクリーンショット 2025-06-10 3.06.44.png
スクリーンショット 2025-06-10 3.07.50.png
画像のタイムスタンプから分かる通り、今回は4時間ほどしか参加できませんでした。
そのため、手を付けられなかった問題も多く、少し不完全燃焼な結果です。

解法

Introduction

bx

画像に写っている「上野カトリック教会」を手がかりに、Google マップで座標を特定し、flagを入力しました。


finding_my_way

  1. 与えられた座標をGoogle マップで検索すると、「花海月」というホテルが見つかります。
  2. ホテルの住所(番地前まで)をOpenStreetMapに入力します。
  3. Google マップの位置と照らし合わせながら建物の位置を確認し、該当する建物を特定しました。


flight_from

  1. 機体の写真からFlyTeamの機体情報ページを発見しました。
  2. このページから、機体は「横田基地」か「東京ヘリポート」を拠点にしていると推測し、それぞれのICAOコードを入力しましたが、不正解でした。
  3. 改めて問題の地図をよく見ると、機体は立川付近で離陸しているように見えます。
  4. そこで「立川飛行場」の存在に気づき、そのICAOコードを入力したところ、正解でした。

hidden_service

diverahbwzfukwflslim73j7qtthfkesqvfh42obqk4cxrxwtajk7myd.onion
上記はOnionドメインのため、通常のブラウザではアクセスできません。
Torブラウザを公式サイトからダウンロードし、リンクを開くことでflagを発見できました。


ship

  1. 画像に写っている文字が「7JVV」に見えたため、これを手がかりにGoogle検索しました。
  2. 検索結果から、東京海洋大学の練習船「神鷹丸」のWikipediaページにたどり着きました。
  3. 基本情報欄に「IMO番号」と「MMSI番号」がありましたが、問題文からIMO番号がflagだと判断し、入力しました。
  • IMO番号: 国際海事機関(IMO)が各船舶に与えるユニークな識別番号。船の所有者や船籍が変わっても変更されない。
  • MMSI番号: 海上移動業務識別コード。無線設備に割り当てられる番号で、国籍を示す情報などが含まれる。

next_train

音声から以下の情報を聞き取りました。

  • 鉄道会社:JR東日本
  • ホーム:15番線
  • 発車時刻:14:18発
  • 行先:久里浜行き
  1. まず、久里浜行きは「JR横須賀線」であると特定しました。
  2. 次に、JR東日本の駅で15番線まであり、なおかつ横須賀線が通る駅を時刻表で探しました。
  3. この時点で答えにたどり着けるはずが見逃してしまい、途方に暮れてしまいました。
  4. 最終的に、聞き取った4つの情報をそのままChatGPTに尋ねたところ、一発で「品川駅」だと教えてくれました。

recon

00_engineer

  1. 名札に書かれた「kodai_sn」からXアカウント@kodai_sn を特定しました。
  2. Xのプロフィール欄にあるリンクから、本人の個人サイト を発見しました。
  3. サイトのCareer欄に「Magneight Software (since 2018)」という記述があったため、この会社名を検索し、会社のHP を特定しました。

01_asset

  1. 00_engineerで特定した会社のHPに記載されていたCEOの名前で、各種SNSを検索しました。
  2. Instagramでアカウントを発見。過去の投稿を調査していくと、会社の資産管理番号が写っている投稿が見つかりました。
  3. その番号をそのまま入力して正解でした。

今回私はスマホアプリから検索し、アカウントを見つけることができました。しかし、公式振り返り会で会った人に聞くと、PC版のInstagramでは検索してもヒットしなかったそうです。この挙動の違いは何なのでしょうか...。


03_ceo

  1. kodai_snのXのポストに掲載されたスライドから、本人のGitHubアカウントhttps://github.com/kodai-sn を特定しました。
  2. 別のポストに「我が社のCEOもgitハンズオンをやってくれた」とあったため、GitHub上のハンズオン用リポジトリを調査しました。
  3. fork-practiceというリポジトリのInsights → Forks を見ると、CEOと思われるアカウント (mizuki1206edelweiss) がリポジトリをforkしていることが分かりました。
  4. CEOのコミットのURL末尾に .patch を付けてアクセスすると、コミットログの詳細情報が表示されます。
    スクリーンショット 2025-07-17 1.52.40.png
  5. From: ヘッダに記載のあったGmailアドレスがflagでした。

公式Writeupや他の方の解法では、CEOのリポジトリをローカルにcloneしてgit logで確認する方法が一般的でした。しかし、リポジトリのInsightsページではclone数が確認できるため、clone行為自体が相手に察知される可能性があります。
今回のCTFのルールには、与えられたURLやファイルをスキャンする場合、可能な限りpassiveな手法を使用してください。とあったため、ブラウザ上で完結する.patchを利用する方が、より安全なアプローチだと考えられます。(この方法はChatGPTに教えてもらいました)


振り返り

4時間という限られた中では、比較的多くの問題を解くことができたかもしれません。
ただ、一番の反省点はメモが雑だったことです。後からWriteupを書くことは決めていたのに、思考の過程をあまり記録しておらず、思い出しながら書くのに苦労しました。来年はもっと丁寧な記録を心がけたいです。

公式Writeup

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?