SWIMMER OSINT CTF Writeup
初心者向けのOSINT CTFであるSUMMER OSINT CTFにチームHSF(ソロ)で参加しました。全問解くことができましたが、時間がかかり最終61位でした。
OSINTに関しては入門者ですが、楽しく参加することが出来ました。
以下はWriteupです。
tgt_rain
rain_01_social
rainのXのスクリーンショットが渡される。ユーザー名は隠れているが、Xでメッセージを検索することでrainのXのアカウントID(@bruto_rain)を特定した。
さらにXのプロフィールからrainのブログ (https://brutorain.wordpress.com )を特定した。今後の問題ではこれに関する調査を行なっていくことになる。
rain_04_source2
問題文で言われている2番目に作成した偽記事というのは**「誰も知らない真実を発見**」というタイトルの記事のこと。
Google画像検索でこの画像が乗っている記事を見つけ、その出典が”議院建築意匠設計競技図集”となっていることから、10.11501/967480 と特定した。
rain_06_ai
ブログから東京駅の画像をダウンロードする。URLのクエリに w=1024とついており加工されていそうだったので、それを外してダウンロードしたところ生の tokyo_0003.jpeg がダウンロードできた。
❯ exiftool tokyo_0003.jpeg
...
User Comment : {"aigc_info":{"aigc_label_type":0,"source_info":"dreamina"},"data":{"os":"web","product":"dreamina","exportType":"generation","pictureId":"0"},"trace_info":{"originItemId":"7590949739743448328"}}
...
Exif情報を見てみるとDreaminaで生成されていることがコメントに残っていた。
rain_05_date
画像の看板を抽出して画像検索すると類似した画像として、”SUNTORY 10000 freude”の看板が出てくる。色こそ違うが文字が同じだろうということでSUNTORY 10000 freudeが2025年に大阪城で行なわれた日付を調べたところ、2025/12/07と特定できた。
rain_03_source1
ありがとうChatGPT https://chatgpt.com/share/696c962f-4ff0-8000-a3f2-1782e1f34c55
rain_02_region
気合。keihan-2.pngがsetouchi.pngということまで絞った上で両方試すつもりでまずkeihan-2.pngの星ヶ丘駅を入れて正解となった。
hankyu-1.png: PNG image data, 1408 x 768, 8-bit/color RGB, non-interlaced # AI 阪急梅田駅なんてない
hiroshima-1.png: PNG image data, 1024 x 660, 8-bit/color RGB, non-interlaced # 車両が特定できず
hokkaido.png: PNG image data, 1024 x 786, 8-bit/color RGB, non-interlaced # よく分からん。送電線に違和感
kansai.png: PNG image data, 868 x 658, 8-bit/color RGB, non-interlaced # 車両か特定できず。行き先表示が光っていない
keihan-2.png: PNG image data, 1920 x 1080, 8-bit/color RGBA, non-interlaced 矛盾なし。電話番号などが正しいことから実写。 星ヶ丘駅
kyushu.png: PNG image data, 2816 x 1536, 8-bit/color RGB, non-interlaced # AI 左上にJR九州とはかかない Imagenのサイズ
kyushu2.png: PNG image data, 1920 x 1080, 8-bit/color RGBA, non-interlaced # 違和感がある。鼻がおかしい
oimachi.png: PNG image data, 2400 x 1620, 8-bit/color RGB, non-interlaced # 行き先表示が変
okayama.png: PNG image data, 1288 x 703, 8-bit/color RGB, non-interlaced # 225は岡山には来ていない
sannnomiya-1.png: PNG image data, 1408 x 768, 8-bit/color RGB, non-interlaced # AIっぽい
setouchi.png: PNG image data, 1224 x 768, 8-bit/color RGB, non-interlaced # 115系 あまり違和感はない
sotobo.png: PNG image data, 2178 x 1188, 8-bit/color RGB, non-interlaced # 関東なので無視
suigun.png: PNG image data, 2816 x 1360, 8-bit/color RGB, non-interlaced # 関東。ラッピングがおかしい
tobu_line.png: PNG image data, 2393 x 1306, 8-bit/color RGB, non-interlaced # 関東。下板板駅なんてない
tohoku-1.png: PNG image data, 2432 x 1327, 8-bit/color RGB, non-interlaced # AI。隣駅がおかしい
tokai-2.png: PNG image data, 2412 x 1315, 8-bit/color RGB, non-interlacedl #AIっぽい、形式が書かれていない。窓の分割数が多いなどの差異
yokosuka.png: PNG image data, 2646 x 1536, 8-bit/color RGB, non-interlaced # 関東
tgt_debeyohiru
debeyohiru_01_social
debeyohiru で検索したらBlueskyのアカウントを発見した。その時にNoteのスクリーンショットを上げており、そのIDがfuraigo5であった。
debeyohiru_02_profile
furaigo5で検索したら、Github Pages (https://furaigo5.github.io/profile/ )を発見した。
debeyohiru_03_email
Profileページにメールアドレスが含まれていた。(furaigo5.onionsoup@gmail.com )
debeyohiru_05_hidden1
Javascriptのソースコードのコメントに名前が含まれていた。
debeyohiru_06_hidden2
Webサイトの履歴を探したところ、archive.md に古いウェブサイトが保存されていて特定できた。 検索のキャッシュにgithub.com/furaigo5/profileが残っていたので、それを使うのかなと思ったり、Wayback Machineと魚拓しか調べていなかったりで時間がかかってしまった。
debeyohiru_04_meal
Blueskyを見ると、12/28に早めの夕食としてポムの樹の画像を上げている。それに対するリプライとして、1/10の17:04に単品を頼んだという内容の投稿をしている。
ポムの樹であることは分かったので、次に場所を推定することとした。 プロフィールに渋谷在住を書かれていることや、Blueskyのアップロードされている画像の大半が渋谷のものであることからポムの樹 渋谷スペイン坂店を推定した。
ここで詰まってしまう。食べログやホットペッパーグルメを見たが1/10の画像は上がっていなかった。数時間ぐらいしてたまたまGoogle Mapで 渋谷スペイン坂店を見たら”ふらいご5”さんが1/10画像を上げていることに気づいて、食事の写真を得ることができた。
ポムの樹はメニューを公式サイトで公開していないのだが、ChatGPTに聞いたら「豚肉とリンゴの ホタテトマトクリームオムライス」と特定してくれた。
tgt_lilica
lilica_01_social
黄昏ブロッサムリリカで検索することで、Xアカウント @twilight_lilica を発見した。
lilica_04_domain
Xから個人サイト twilight-lilica.com を特定。whoisコマンドから2025-10-05にドメインを取得したことが分かった。
lilica_05_hosting
twilight-lilica.com のIPアドレスをwhoisすることで、VultrのIPであることが判明。Vultrのabuseメールアドレスを調べて送信した。
lilica_03_virtual_world
11/09の投稿の画像から #VRC_ナギサというハッシュタグがあることが分かる。ハッシュタグを調べることで、NAGiSAというワールドであることが分かり、検索でWorld IDも特定できた。
lilica_02_virtual_identity
VRChatにログインし、黄昏ブロッサムリリカでユーザー検索することで、ユーザーID usr_b103fac6-8341-4b89-a606-920092e75e43を特定した。
lilica_06_name
Xにヘアピンのfbxファイルを上げているのを見つけた。このファイルをstringsで見てみたところ、C:\Users\shiharu_nanaogi\Documents\modeling\vrc_test\hair_pin\simple_hair_pin.fbx という文字列が見つかったことから、本名をshiharu_nagaogiと推定した。
lilica_07_work
ヒントから、伏せているつもりの情報を使うことがわかる。それは名前だろうと推定していろいろなSNS(Facebook, Instagram, Linkedin, Mixi2, Mixi, Threads)などを検索するがユーザーを見つけられず。
最後のヒントのタイミングで、方針があっていることが分かったので、再度SNSを検索したところInstagramにユーザーを発見した。最初の検索では、名字だけだったために見つけられなかったらしい。
Instagramのタグに中目黒がついていることから、それを解として送信した。
ops_swimmer
まず、lilicaが上げている画像がデニーズであり、それが3人での食事の写真でそのうち1人の選んだメニューがrainの上げている画像と一致することから、店舗はデニーズと推定した。
次に日付だが、debeyohiruは年末に人とあうと言っていること、lilicaはコミケ前といっていること、そしてrainが12/30 21:40に”さっき解散した! 何か新しいことが始まりそう予感” と呟いていることから、12/30と推定した。
場所は、rainが12/30の16:47の大井町駅の入場券の画像を上げていることや、解散時の写真が品川区のものであることからデニーズ大井町駅前店とした。
最後に時間だが、debeyohiruのGoogle Calendarを見たところ18:30に集会という予定があったため、18:30と特定できた。
research_2025
全てChatGPTが解いた。凄い…。