午前7時のしなもんぶろぐ

駆け出しのセキュリティエンジニア、しなもんのぶろぐ。

Open xINT CTF 2024 Writeup

土曜日は友人たちと一緒にこちらに参加していました。

 

Open xINT CTF 2024

openxintctf.pinja.xyz

競技中はがむしゃらに解いていたので特に記録は取っていないのですが、せっかくなので解けた問題についてメモを残しておこうと思います。

 

 

参加の概要

  • OSINT 問題中心の CTF に参加するのは TsukuCTF 2023 に続き 2回目です。その際の成績は覚えていませんが、ソロで出て 70番台だったような気がします
  • xINT CTF 自体の参加歴はありません
  • 友人数人と一緒にスペースを借り切って参加しました。フラグの使い回しが起こりそうな環境ですが、実際には皆自分の問題を解くのに必死でインチキするような雰囲気はありませんでした
  • もっと和気あいあいとした感じかと思ってお菓子をいろいろ持ってきたのにそんな雰囲気だからほぼ持って帰る羽目になりました
  • AVTokyo 本会場には行っていないので、ONSITE 問題には手を出していません
  • 準備としては、軽~~く昨年の問題の Writeup に目を通す程度

 

成績

6問解答し、1200点獲得しました。

(画像では1500点になっていますが、このあたりの事情は後述)

順位は公式的には 17位、1200点を前提にすると 25位くらいです。

 

上から2問目の bus stop が問題

以降、解答した順に紹介します。

Writeup は解答時に作ったものではなく後から再現したものなので、検索順位などは競技時とは変わっていることがあります。

また、画像はいずれもオリジナルではなく、サイズが変わったり端のあたりが少しなくなったりしています。ご了承ください。

 

whois (100pts)

gov.ru の納税者番号は?

 

名前からしwhois 関係の問題だろうと判断してすぐ取り掛かりました。

まず Domaintools を用いて調べたものの目ぼしいものは見当たらず。

 

ロシアの納税者番号のフォーマットを知る必要があるかもしれないと思い、調べもしました。

これは OECD という団体がアップしている文書

次に昨年 whois コマンドだけでは解けず、レジストリのページで直接調べる必要のある問題が出ていたのを思い出し、TLDpedia を経由してレジストリの Whois ページを特定、そこで検索を行いました。

結果としてこれで正解できました。

フラグ部分は隠しています

なお、あとで友人に聞いたところ、whois コマンド一撃で解答可能だったとのこと。

悔しいのでこちらでも解いてみました。

 

 

all grean (100pts)

この店の電話番号は?
形式:国番号およびハイフンなし


外国のようですがぱっと見ではわかりそうにありません。

Google レンズにも投げてみましたが成果はありませんでした。

 

何か手がかりはないかと細部を観察すると、

hiroba.sushi?

机に貼られたシール (?) 内の検索窓に「hiroba.sushi」らしき文字列が書かれているのが目につきます。

そしてその前に、なんとなくですが Instagram のアイコンのような記号があります。

これらをもとに、Instagram で「hiroba.sushi」という名前のアカウントを持っているのではと考え検索しました。

 

 

Instagram のプロフィールには電話番号の記載がありませんが、ここから飛べる公式サイトの方には載っていました。

 

本当はこのお店が写真のお店であることをもっと慎重に確認した方が良いと思いましたが、試しに投入したフラグが通ったのであまり真剣に検討しませんでした。

(一応、提供しているコーラ系飲料がペプシなのは確認した)

 

余談ですが、写真に写りこんでいる緑色のきくらげみたいなやつが何なのか解答後もわからなかったのですが、友人によればこれはワサビだとのことでした。

お寿司屋さんだからそれはそうなんですが、あまり国内のお寿司屋さんではこのような盛り付け方は見ないような気がします。

 

art (100pts)

この作品の作者は?
Format: 姓_名

 

いかにも人目に触れそうなところに置かれたいかにも特徴のある芸術作品で、すぐ見つかるだろうと踏んだのですが、狙い違わず速攻で Google レンズに引っかかりました。

 



 

上の画像は後から再現したものなので本問の Writeup が含まれてますが、そうでなくとも特定は容易でした。

おそらくですが本問は 1問も解けない参加者をなるべく出さないためのサービス問題+後続の「exhibition」「birthplace」につなげる誘導問題としてわざと簡単に作られていたのだろうと思います。

私は後続の問題に歯が立たなかったので誘導を生かせなかったわけですが。

 

top gear (200pts)

トップギア」シーズン11 エピソード4で、2人がバスに乗っているとき、映像に映りこんだバス停の名前は?

 

当該番組は観たことがないのですが、無料の範囲で解けると宣言されている以上解ける手段はあるはずだと思い、Youtube で「top gear season 11 episode 4」と検索すると、Top Gear という名前の (おそらく公式と思われる) チャンネルの動画がヒットします。

(以下、これらの動画を便宜的に「Top Gear 公式動画」と呼称します)

 

www.youtube.com

www.youtube.com

バスが出てくるのは Part2 で、この前の場面で 2人は電車を降りています。

改札口 (引用元: Top Gear 公式動画)

駅前 (引用元: Top Gear 公式動画)

その後バスに乗り込み、停車して他の客が乗車するタイミングで窓の外にバス停が現れます。

 

問題のバス停 (引用元: Top Gear 公式動画)

直後に映るバスの全体像から、「京浜急行バス」であるとわかります。

 

京浜急行バス (引用元: Top Gear 公式動画)

バスは最終的に港に着きました。2人はここでバスを降ります。

 

港 (引用元: Top Gear 公式動画)

まとめると、駅周辺から京浜急行バスに乗り、港で降りたことになります。


京浜急行バスの終点になることから最後の港は「久里浜港」であろうと当たりをつけ、ストリートビューで確認しました。

また、久里浜港行のバスは京急久里浜駅から出ているので (ほかにもあるかもしれないが)、電車からバスに乗り換えたのもこの駅であろうと当たりをつけ、駅前の施設 (具体的には臨海セミナー) の外観が一致することから確信を得ました。

 

しかし、駅前のバス停「京急久里浜駅」ではフラグが通らず。

よく考えると問題のバス停はあまり駅前のようには見えませんし、2人が乗ってから停車しているところのように見えます。

 

ということで京急久里浜から久里浜港までのバス停を1つずつストリートビューで確認していきました。

結果としてこれで正解が得られました。

 

lighthouse (400pts)

写真手前の諸島にある灯台灯台表番号/航路標識番号は?

 

手始めに Google レンズに投げ込みましたが収穫はなし。

 

灯台表番号/航路標識番号が日本国の制度であることから (外国にもあるかもしれないが未検討)、日本国内を調べれば十分と判断しました。

 

灯台の一覧などが出回ってないか探したのですが、すぐに国内の灯台の数が思っていたより多いとわかり、1個ずつ検討するのは現実的でないと考え放棄しました。

また、(岬などではなく) 島に建っている灯台だけに絞れないかも試したのですが、網羅性に乏しいと思われるものしか見つからず、空振りに終わる公算大と判断しこれもやめました。

 

背後の陸地には山とそれなりの規模の市街地が見えることから、離島ではない=4島のいずれかであろうと思われます。

しかもまあまあ特徴的な海岸線が見えることから、「北海道・本州・四国・九州の海岸線をしらみつぶしに調べればいつかは行き着く」と作戦を立て、Google マップと格闘を始めました。

 

まず本州について三浦半島から始めて (どうせ全部見るんだからどこから始めても大差なし)、時計回りに気仙沼あたりまでなめたのですが、そのあたりで方針に疑問を感じ中断しました。

 

落ち着いて画像全体を眺め、島の配置や形にも特徴があることから、これに絞ればヒットするのではと考えなおし Google レンズに投入しました。

これが当たりでした。

 

黄色い枠内が問題の島

驚いたのは、ここは先ほど自分がローラー作戦を行った際に通過したはずの地域だということです。

写真から想像していた海岸線の形と実際の形との間に大きなズレがあったのです。

 

想像していた海岸線の概略 (すぎる) 図

現実。概略図の上がこの図の右上に相当


人にもよると思いますが、景色から自分の頭で再現した地形を手がかりにするのは難しいと痛感しました。

 

mural (300pts)

この壁面装飾を描いたアーティストに手紙を出したい。私書箱番号を教えてほしい。フラグは、数字のみ記入。

 

一見外国のやばい系の問題かと思い後回しにしていたのですが、とっかかりは意外と簡単でした。

Google レンズに投げ込むと旅行系のメディアと思しき記事が出てきて、そこから地元のメディアにリンクが貼られています。

これらから、

  • この壁画は米国ユタ州南部の Kanab という街にある
  • 作者は地元のアーティスト Patti Lewis 氏である

ことがわかります。

後者の記事には Lewis 氏の名前にリンクが貼られているので遷移すると、Petti 氏と夫の Jeff 氏が主催する企業?の「Lewis Art Services」へ行き着きます。

問題の私書箱は Petti 氏というよりはこの企業?に関するものかもしれません。

 

この Web サイトには

  • ユタ州ヴァージンに所在していること
  • 電話番号
  • E メールアドレス

が記載されていますが、肝心の私書箱番号がありません。

 

Facebook のプロフィールへのリンクがあったので、投稿の内容や写真をしばらく観察しましたが、それらしきものは見つからず。

Google 検索を経て夫の Jeff 氏が LinkedIn アカウントを持っていることがわかったので登録して見てみましたがこちらにも目ぼしい情報はなし。

 

ここで結構詰まりました。

 

そのうち「正確な住所や郵便番号がわかればそこからたどれるのでは」と何となく思いつき、「”Lewis Art Services” ZIP」と検索してみました。

(ダブルクォートなしだと似た名前の無関係の Web サイトがたくさん出てくるのでくくった方がよさそう)

 

ここで上位に表れた Promatcher というサイトは、(競技中にはそこまで調べている余裕はなかったが) 客と地元の専門業者とのマッチングを行うサービスのようです。
これを見てみると、何と「po」つまり私書箱番号の記載があるではありませんか。

 

 

念のため Lewis art services のページを確認すると、確かに Patti Lewis 氏の名前があることがわかります。

このページに記載の PO 番号が正解でした。

 

 

もっとスマートに解く方法がありそうな気がしますが、競技中はこれが限界でした。

 

番外編: bus stop (300pts)

さて、本問は今確認すると (mural より前に) 解けたことになっているのですが、私は競技中フラグを通すことができなかったはず。

 

競技中にきちんと解いた友人にあとで聞いたところによれば、本問は調べて出てくるバス停の名前を入力しても正解にならず、少し表記を変更しないといけなかったそうです。

 

まったくの推測ですが、本問はこの点が作問ミスとみなされ、当初想定されていたフラグ以外に「調べて出てくるバス停の名前」をそのまま入力した人が後から正解扱いにされたのではないかと思います。

 

「調べて出てくるバス停の名前」は入力した覚えがあるので、おそらくこれをもって私は正解したとみなされたのでしょう。

 

ただ、私は本問をだいたいの地域までしか絞り込むことができず、周辺地域のバス停の名前を全部入力するという手段で強引に解こうと試みていました。

追って正解になったと思われる名前を入力したのはその時です。

 

候補すべてが外れに終わった時点で、私は「たぶん解答方針が間違っていたのだろう」と判断し、以降この問題に取り組むのを諦めました。

もし自分の得たフラグに自信があれば、少し表記を変更して提出するくらいの知恵はまわったかもしれません。それすらしなかったのは、単なる乱れ撃ちの産物で、答えに確信がまるでなかったことによります。

 

というわけで、私にとって本問は「結果的には当たりだったかもしれないが、質の低いまぐれ当たり」に過ぎません。

きちんと競技中に確証を得て解答した人とは差があると感じますので、運営の方の裁定がどうあれ、私自身は「自分の実力は 1200pts 相当だった」を結論としたいと思います。

 

感想

他の方の Writeup を見て、「もう少し粘ってれば解けたのに!」とか「このテクニックを思いついていれば……」みたいな思いがぐるぐるしています。

OSINT 系の CTF はたまにしか開催されないのですが、機会があればまた挑戦したいところです。