DIVER OSINT CTF 2024 Writeup
DIVER OSINT CTF 2024(2024年6月8日12:00~2024年6月9日12:00 JST)にntomoyaとして参加しました。最終的な順位は29位でした。
- number (misc, 176 solve)
- label (misc, 62 solve)
- wumpus (misc, 61 solve)
- timestamp (misc, 50 solve)
- osprey1 (military, 203 solve)
- osprey2 (military, 114 solve)
- 246 (introduction, 143 solve)
- office (introduction, 143 solve)
- chain (introduction, 110 solve)
- dream (introduction, 255 solve)
- serial (introduction, 223 solve)
- ad_directiare (introduction, 79 solve)
- imagetrack (geo, 146 solve)
- chiban (geo, 90 sovle)
- championships (geo, 40 solve)
- power (geo, 26 solve)
- leak (crypto, 211 solve)
- promoter (history, 90 solve)
- youtuber (transportation, 86 solve)
- 感想
number (misc, 176 solve)
外交官ナンバーの車両の持ち主の電話番号を調べるという問題。「外-4906」というナンバーが書かれている。
4桁のうち、「49」の部分が国別につけられる国番号であるとのこと。「49」はクエートの国番号。
駐日クエート大使館のホームページの最下部に記載されている電話番号がフラグとなる。
label (misc, 62 solve)
下記のラベルが貼られた荷物の宛先の施設の郵便番号を調べるという問題。上の部分で一部見えているのは送り元の住所で、宛先の住所ははがれてしまっている部分に書かれていたものと思われる。
GIMPを使って回転と台形補正をして、貼られているバーコードを読み取ってみる。3つあるうちの、一番上の一次元バーコードと一番下のQRコードは読み取ると、どちらもその左に記載されている「202406081546475424」として読み取られる。この追跡番号でいくつかの運送会社の追跡サイトで検索してみるも、ヒットするものはなし。
残るは真ん中のQRコードを横長にしたようなもの。rMQRというらしい。
この部分だけ切り取り、rMQRを読み取り可能なiOSアプリ、クルクルをインストール。下記の内容を読み取ることができた。
SHIPMENT ADDRESS: Baba-cho 14-1, Tsuruoka City, Yamagata, Japan
あとは、鶴岡市馬場町の郵便番号を検索し、これがフラグとなる。
wumpus (misc, 61 solve)
画像に映るDiscordチャンネルにフラグが書かれているQRコードが貼られていると思われる。
とりあえず当該Discordサーバーに参加する必要があることから、そのサーバーを探す必要がある。DiscordのチャンネルのURLは /channels/{SERVER-ID}/{CHANNEL-ID}
となっているとのことなので、「1244302408402735114」がこのサーバーと紐づくID部分。
「1244302408402735114」で検索すると、DiscordServers上で該当するサーバーを見つけることができるので、Joinボタンを押して参加。
#general
チャンネルの投稿にあるQRコードを読み取ることでフラグを入手することができる。
timestamp (misc, 50 solve)
下記のXの投稿の画像のうち、「53」が機体に塗装されている写真の撮影日時を分単位で調べる問題。
3月12日午後、中国のY-9情報収集機1機とH-6爆撃機2機が東シナ海から飛来し、沖縄本島と宮古島の間を通過して太平洋へ、旋回飛行した後に反転して東シナ海へ飛行しました。また、これらが太平洋上で飛行している間、推定無人機1機(推定)も同一の空域で飛行していることを確認しました。#スクランブル pic.twitter.com/JoFgaxZUO6
— 防衛省統合幕僚監部 (@jointstaffpa) 2024年3月12日
ツイートの一部分「沖縄本島と宮古島の間を通過して太平洋へ、旋回飛行した後に反転して東シナ海へ飛行しました。」をコピーしてGoogleで検索すると、ツイートと同一の内容が記載された下記のPDF形式の資料が見つかる。
https://www.mod.go.jp/js/pdf/2024/p20240312_01.pdf
このPDFファイルをダウンロードしてAcrobat Readerで開いてみる。4ページ目に調査対象の機体の画像が掲載されているページがあるのでクリックすると、その画像部分だけ選択される状態になる。
Ctrl + Cでコピーをし、GIMPを開いて新規作成したキャンバスに貼り付けると、右下に隠れていた時刻部分が現れる。この時刻がフラグとなる。
osprey1 (military, 203 solve)
問題文を一部抜粋したものは下記の通り。
2023年11月29日、アメリカ軍のオスプレイ(V-22)が日本の屋久島沖で墜落した。この機体の番号と、墜落時のコールサインは何か。 Flag形式: Diver24{XX-XXXX_CALLSIGN}
「オスプレイ 屋久島 コールサイン」とGoogle検索で調べると事故機に該当すると思われる機体番号とコールサインをポストしている人がいるのを発見できる。機体番号「12-0065」、コールサイン「GUNDAM22」が答え。
屋久島空港付近に落ちたのCV-22Bオスプレイは、中継地岩国からの情報から、コールサインGUNDAM21(08-0054)、GUNDAM22(12-0065)、GUNDAM23(08-0051)のいずれかのようだ。
— 石川潤一 JunichiIshikawa (@oldconnie) 2023年11月30日
osprey2 (military, 114 solve)
以下が問題文。
2024年2月15日、ある米軍基地でこの事故に関する追悼式典が実施された。16:46:37ごろ、その式典はどこで実施されていたか。 OpenStreetMapのWay番号で答えよ。 Flag例: Diver24{123456789}
まず、追悼式典が実施された場所を特定する。自分の探し方の場合、日本語での情報が見当たらなかったため、「osprey crash japan ceremony february」と検索。下記の記事にヒットした。
さらに記事中に下記のような記述があることがわかる。
A half-hour before sunset, approximately 600 people, mostly airmen in uniform, gathered for a brief retreat ceremony on the athletic field outside Yokota’s Samurai Fitness Center.
「日の入り前に横田基地のSamurai Fitness Centerの外の競技場に集まった」という趣旨の記述から、問題文中の16:46:37に実施されていた場所は横田基地のSamurai Fitness Centerの近くであることがわかる。まず、Google Map上でSamurai Fitness Centerを探し、同時に同じ位置のマップをOpenStreetMapで開く。
OpenStreetMap上でできるだけ縮小した状態でSamurai Fitness Centerの付近を右クリックして「付近の地物」をクリックすると、「陸上競技用トラック」や「遊園地」などが候補として挙がってくる。
「遊園地」と表記されている緑色のフィールドを示すWay番号である「810021666」が今回の答え。
246 (introduction, 143 solve)
問題は下記の画像が撮影された場所から最も近い交差点名を答えるもの。
県道246号とあるが、複数の県で該当する道路があり、どの県かどうかはすぐに特定できなかった。止まっている白色の車のナンバープレートに着目する。 拡大すると、「下関」と読むことができるため、山口県の県道246号であると予想。
また、後ろに映る橋が「関門橋」と特徴が一致することから、この246号線の付近で画像の位置に関門橋が見える場所をGoogle Mapのストリートビュー機能を使って探す。
下記のリンク先が撮影場所付近であると考えられることから、ちょうど道路の進行方向付近の「前田」と記載されている交差点名がフラグ。
office (introduction, 143 solve)
問題は添付のファイルからフラグを探すというもの。odt形式のファイルがダウンロードできる。zip形式で展開できる形式なので、展開後ファイルを見てみると、 thumbnail.png
にフラグが記載されている。
$ tree . . ├── META-INF │ └── manifest.xml ├── Thumbnails │ └── thumbnail.png ├── content.xml ├── manifest.rdf ├── meta.xml ├── mimetype ├── mudai.odt ├── settings.xml └── styles.xml
chain (introduction, 110 solve)
写真の店舗の電話番号と特定する問題。
まず、鳥貴族の店舗一覧が掲載されている公式ページから探してみる。4Fと記載されていることから、店舗所在地にも「4階」や「4F」が含まれていると考え、4を全角半角に変えたもの+「F」または「階」を検索クエリとして検索。
候補が大量にあるが、「4F」で検索して出てきた「閉業」となっている「鳥貴族 広尾店」が目につくので、場所をGoogle Mapで確認する。
ビルの壁面の看板が問題の画像と一致するので、公式ホームページ上の「広尾店」のページの右上に記載されている電話番号を含めてフラグを提出すると、これが正解。
dream (introduction, 255 solve)
画像の施設の郵便番号と特定する問題。
Googleの画像検索で下図のように範囲を調整して検索すると、似たような特徴を持つ画像の場所が「ポップタウン住道オペラパーク」として紹介されている。
施設の公式ホームページにアクセスすると、一番下に郵便番号が記載されており、これが答えとなる。
serial (introduction, 223 solve)
問題文は次の通り。リンク先はANA公式のTikTokの動画投稿で背景に「JA222A」と塗装された航空機が映っている。
これらの動画の背景に映っている航空機のシリアル番号は何か? シリアル番号が123456の場合、Flagは Diver24{123456} となる。 What is the serial number of the aircraft in the background of these videos? If the serial number is 123456, the flag will be Diver24{123456}. https://www.tiktok.com/@ana_allnipponairways/video/7318648417620741377 https://www.tiktok.com/@ana_allnipponairways/video/7338422699301145857
「JA222A」で検索すると、下記のページに製造番号として「9580」の記載がある。これが正解となるシリアル番号。
https://flyteam.jp/registration/JA222A
ad_directiare (introduction, 79 solve)
問題文は下記の通り。
この名刺の人物が、東京出張時に食べた昼ご飯の値段を答えよ。 Flag形式: Diver24{値段} 1000円の場合、Flagは Diver24{1000} となります。
写っている名刺には、ニックネームや住所、事務所の名前が記載されているので検索してみるが、特に該当する情報はない。
メールアドレス yone.jun.0727@gmail.com
に関連した情報を調査する。 下記のサイトでGHunt(https://github.com/mxrch/GHunt)というGoogleアカウントに関するOSINT調査を実行するツールを使った結果を取得できる。
https://gmail-osint.activetk.jp/yone.jun.0727
結果から、Googleアカウントに紐づくユーザーがGoogle Map上で行ったレビュー投稿を閲覧できるので、アクセスをすると、1件該当する投稿があり、4400円のうな重を食べたという投稿がされていることがわかる。よってこの4400がフラグ。
🗺️ Maps data Profile page : https://www.google.com/maps/contrib/104607974422086075165/reviews
imagetrack (geo, 146 solve)
添付画像が撮影された郷土料理屋の店名を答えるという問題。EXIFに位置情報が含まれているので、Windows 11標準のフォトアプリで開いて情報を確認すると、撮影場所と思われる位置情報がマップ上に表示される。
Google Map上で神戸三宮駅付近を表示し、「郷土料理」で検索すると下記の店舗が該当する位置に存在するので正解は「郷土料理からす」となる。
chiban (geo, 90 sovle)
問題文は下記の通り。
画像の中央に写っている道路の地番は何か。 たとえば住所が 仙台市宮城野区二十人町 303-8 の場合、Flagは Diver24{303-8} となる。 また、地番には数字だけでなく漢字が含まれることもある。その場合は漢字表記のまま解答せよ。
画像の中央に写る道路の地番を答えるというもの。
まずは場所と特定する。一番目につくサンディの「7号店」で調べてみるが情報を見つけることはできなかった。
次に左側に駐車されている車両に記載されている文字に着目する。手前の車に「岡田歯科医院」、その1つ奥の車には電話番号の下4桁が書かれており、「8241」と読むことができる。Google検索で「岡田歯科医院 8241」で調べる。検索結果に茨木市の歯科医院を見つけることができる。
その付近をGoogle Map上で見てみると、撮影場所を特定できる。
次に中央の道路の地番を調査する必要がある。下記のWebサイト上で先ほどの茨城市駅付近を表示すると該当する道路の地番は「筆界未定地-6」であることがわかる。(「筆界未定地」も含めて地番らしい・・・)
championships (geo, 40 solve)
問題文は次の通り。
2010年10月、この場所には大会の広告が貼られていた。その大会の優勝者のニックネームを答えよ。 Flag形式: Diver24{優勝者のニックネーム}
画像に写る光華商場は台湾の台北にある商業ビルとのこと。
画像に写る入り口の位置が非常に分かりにくいが、Google Map上の複数の画像から下記のストリートビューの縦に「光華商場」と書かれた部分の下が画像の撮影場所。
左上の「他の日付を見る」ボタンをクリックすると、ちょうど問題文に記載されている2010年10月のストリートビューがあるので、切り替えして入口付近に目を凝らす。
「GIGABYTE」「OC」という文字がかろうじて読み取れるので、「GIGABYTE go oc 2010 taiwan」でGoogle検索すると、大会の結果が記載されており、1位の人物のニックネーム、「Matose」が正解。
power (geo, 26 solve)
問題文は次の通り。
写真右側に写っている送電線の運用容量値(単位: MW) はいくつだろうか。整数で答えよ。 なお、この写真は2024年に撮影されたものである。 Flag形式: Diver24{100}
まずは画像の場所を特定する。何度か範囲を絞ってGoogleの画像検索を繰り返していくと、右側の何かの施設の門に範囲を絞って検索したときに、それらしき画像を掲載したブログが検索結果に出てくる。
JR桂川駅の南が撮影場所だと思われる。
次にこの送電線の運用容量値を調査する必要がある。「関西電力 送電線 運用容量値」とGoogle検索をすると、下記のページが出てくる。
系統連結系制約(154kV未満)→ マッピング(154kV未満)→ 京都府→京都市 とたどると次のPDFファイルが開かれる。
https://www.kansai-td.co.jp/interchange/takusou/pdf/154kv_less_mapping_08.pdf
2ページ目の送電線の位置をGoogle Mapのものと比較すると、「北172」という名前の送電線が画像中の送電線であると思われる。
また、系統連結系制約(154kV未満)→ 空容量一覧(154kV未満) で開かれるPDFファイルを見ると送電線ごとの運用容量値が記載されている。「北172」は「84」MWと記載されているので、「84」が答え。
https://www.kansai-td.co.jp/interchange/takusou/pdf/154kv_less_space.pdf
leak (crypto, 211 solve)
問題文は次の通り。5/31に起きたBTCの流出事件のことを指していると思われる。
先月、日本の会社で大規模なBTCの不正流出が起きた。 流出先となっているウォレットアドレスを答えよ。
BTCの資金の大規模移動をアラートするXのアカウントから5/31でリポスト数の多いものを探す。
https://twitter.com/whale_alert
次のポストが今回の回答に該当するトランザクション。
🚨 🚨 🚨 🚨 🚨 🚨 🚨 🚨 🚨 🚨 4,502 #BTC (308,948,771 USD) transferred from unknown wallet to unknown new wallethttps://t.co/2B5Y6dVP7z
— Whale Alert (@whale_alert) 2024年5月31日
1B6rJRfjTXwEy36SCs5zofGMmdv2kdZw7P
が受け取りアドレスであることから、これがフラグとなる。
promoter (history, 90 solve)
問題文は次の通り。
画像に写っている池沼を開拓した発起人の父親の命日を答えよ。 Flag形式: Diver24{yyyy/MM/dd}
まずはこの池沼の場所を特定する必要がある。Google画像検索をすると、該当する池沼がの写真が掲載されているブログにヒットする
ブログの明治村付近の、愛知県犬山市にある「入鹿池」がこの池の名前。
Wikipediaを見ると、発起人の名前が「江崎善左衛門宗度」であることがわかる。ただし、没年は記載されているが、没日は記載されていない。
この名前でGoogle検索をすると下記のPDFにヒットする。一番最後のページに「江崎善左衛門宗度」の没年と日付は、1627年11月13日であることが記載されており、これが答え。
https://www.jsidre.or.jp/wordpress/wp-content/uploads/2016/03/49-7.pdf
youtuber (transportation, 86 solve)
問題文は次の通り。
2023年、あるYouTuberが日本で無賃乗車や無銭飲食を行い、その様子を投稿したことで問題となった。 彼は日本である列車に無賃乗車をしていたところ、九州地方のある駅で一度捕まったが、そのまま逃走して別の列車に再び無賃乗車をした。 彼が捕まった駅と、乗り継いだ列車の列車番号を教えてほしい。なお、列車番号は時刻表に掲載されている形式で回答せよ。 Flag形式: Diver24{駅名_列車番号} 例えば、折尾駅で捕まり、456Mという列車に乗り換えた場合、Diver24{折尾_456M} となる。
問題の投稿は下記のニュースで取り上げられているもの。記事中の記述から動画のタイトルは「I Travelled Across Japan For Free」であることがわかる。
「I Travelled Across Japan For Free」でGoogle検索をすると、該当する転載動画がでてくる。
問題文中の一度捕まって別の列車に乗って逃走した様子は、動画の3:33付近だと思われる。さらに逃走して乗り込んだ別の列車が4:21付近に映っている。
列車の行先表示を見ると「さくら572」「つぎは博多」と読み取ることができる。「さくら572」の時刻表から停車駅を調べると、博多の前の駅は「新鳥栖」であることがわかる。
さらに「さくら572号」の列車番号を検索してみると、下記のページに「572A」と記載されている。よってフラグは「新鳥栖_572A」となる。
感想
地図を眺めるのが好きな性格もあってか楽しみながら問題を解くことができました。Solve数少ない問題があまり解けなかったので、ほかの人がどういったツールやWebサイトを使っているのかを見て復習したいと思います。
作問・運営本当にお疲れさまでした!また次回も開催されたら参加したいです!