🦉

[40548F] HEXA OSINT CTF V3 Writeup

2024/04/21に公開

https://hexaosint.fr/

開催概要・制度

  • Jeopardy方式。
  • 問題文はすべて英語。Discordでの問い合わせは英語またはフランス語。
  • 開催時間は48時間(2024/04/12 19:00UTC - 2024/04/04 19:00 UTC)
    • 日本時間では 2024/04/13 4:00 JST - 2024/04/15 4:00 JST
  • 参加登録は約1ヶ月前からの事前申し込み制で、数日前に締め切られる。
  • 宣誓や確認などを除き、1問あたり200点。
  • 問題は複数カテゴリに分かれており、それぞれで一度に1~2問ずつ開放されていく。現時点で見えている問題が解けないと、先の問題を閲覧できない。
  • 上位5チームは6月にパリで開催される HEXA FINALE に出場できる。
  • Discordにおける運営チームとのコミュニケーションがきわめて重要。
  • 最終的には127チームが参加

なお、3回目となるHEXA OSINT CTFシリーズは今回でストーリー上の区切りを迎える。ただし、HEXAチームによる新たなCTFはその後も続く予定とされている。

V2との差異

  • 今回は HEXA{this_is_the_answer} のようなFlagフォーマットはなく、各問題ごとにそのまま答えを入れるスタイル。case insensitiveであるため、フォーマットに悩むことはあまりない。
  • 運営との連絡はDMではなく、各チームのプライベートチャンネルで行われることになった。そのため、CTFページにチームを登録するだけでなく、Discordにも参加チームを宣言することが必須となった。
  • 標準では1問あたり3回の解答回数制限がある。そのため、可能性がある選択肢を総当たりで無理やり当てる手法は封じられている。やってみると気づくが、非常に慎重にチェックしながら回答する必要があり、試行錯誤しているとすぐに使い果たしてしまう。
  • 3回の解答回数を使い果たした場合、運営に問い合わせると200点減点の上で制限をリセットできる。ただし、その問題を解答できると、再び200点が加算され、±0点となる。
  • 問題が徐々にアンロックされていく方式と解答回数制限のコンボにより、大半のチームが詰まってしまう(全く進めない)状態が発生した。そこで、開始から約24時間後にChill Modeが導入された。
    • Chill Modeでは、点数の扱いに関してはリセットと同様であるが、チームチャンネルDMで運営とやり取りしながらヒントやガイドが与えられる。そのため、後半は上位陣を除いてChill Modeを有効活用して進行するチームが多くなっていた。
    • ピーク時はChill Modeの対応待ちで30~40分待ちも発生したため、実質的に時間も削られていくというデメリットもあった。
    • もちろん、ResetやChill Modeを使うと得点が獲得できないため、上位には食い込めなくなる。Resetを使用したチームの最高順位は11位、Chill Modeを使用したチームの最高順位は14位であった。
  • 前回で終盤に登場した最終記述問題は、通常の問題を完答したチームにのみ解答権が与えられた。

結果

日本勢の結果

日本から参加したチームの結果は以下の通り(国籍表示を日本にしているチーム+SNSなどで個別に申告のあったチームを集計したものであり、抜けがある可能性もある)。

順位 チーム名 得点
39 40548F 4600
45 pinja 4400
52 A Study in Tricolore 4000
54 hack-two-ria 3800
65 :full_committer: 2800
66 seaside 2800
76 tokiwa 2600
77 SabaNoMisoni 2400
96 Ultimate Detective 1600
111 Level3 Boosted 600

前回に比べ、日本から参加したチームが増えたような気がしている。
また、4月17日に日本から参加したプレイヤー・チームに呼びかけて非公式の振り返り会を実施し、有意義な意見交換ができた。
次回以降、HEXAのCTFで日本勢がより上位に入るようになると嬉しい。

40548Fの結果

上記の通り、日本勢ではおそらく1位。全体では39位となった。
1日目はryo-a、kn1cht、Diffuseの3名、2日目はblackwasanを加えた4名で参加した。




40548Fが解答できた問題のwriteupを以下に示す。
ryo-a/kn1cht/Diffuse/blackwasanの4名が共同で執筆したものである。

Category: New case

最初に用意されているカテゴリ

Rules

Before you begin, please read the attached rules and then write the agreement to begin the CTF.

宣誓のみ。開始前にDiscordで配布されたPDFにある宣誓の文言をそのまま記入する。

Flag: I accept the rules of HEXA OSINT CTF V3

Ah shit, here we go again !

Dear agents,
Following the events about Manipar and Mastermind, Lucilhe Dumarquais was serving a sentence in jail after she had been caught in Malaysia and brought back to France. On April 10, Lucilhe Dumarquais died in prison while serving her time...
Please find attached the context about last investigations related to this one. Read carefully these elements, as they are crucial to understand what is going on here. Feel free to make your own searches if you want more detail about people that may be involved or those who can help you. When you have read these elements, please type "Let's go" in the text field below.

和訳(DeepL)

マニパールと黒幕の事件の後、ルシル・デュマルケはマレーシアで捕まり、フランスに連れ戻された後、刑務所に服役していた。4月10日、ルシル・デュマルケは服役中に獄中で死亡した。
この件に関連する過去の捜査の背景を添付します。何が起こっているのかを理解するために重要ですので、これらの要素を注意深くお読みください。関与している可能性のある人物や、あなたを助けてくれる人物についてもっと詳しく知りたい場合は、ご自由に検索してください。これらの要素を読み終えたら、下のテキストフィールドに「Let's go」と入力してください。

V1、V2を説明する、これまでの背景のPDFが添付されている(context.pdf)
確認のみの問題。

Flag: Let's go

Crime Scene (126 solves)

Dear agents, Here is the preliminary investigation report. As you may know, lab guys thinks we all are chemistry specialist... They provided an image of a molecule in this report. But as is, we cannot know if this is a relevant element or not. As you work on this, we will try to find the names of the interviewees and the name of the person she was talking to during lunch. Could you please find the molecule name so we can move forward in the investigation.

format : moleculename
example : lactose

和訳(DeepL)

親愛なる捜査官の皆さん、これが予備調査報告書です。ご存知のように、ラボの連中は我々を化学のスペシャリストだと思っている。彼らはこの報告書の中で分子の画像を提供しています。しかし、このままでは、これが関連元素かどうかわかりません。あなたが作業している間に、私たちはインタビューした人の名前と、彼女が昼食中に話していた人の名前を見つけようと思います。調査を進めるために、分子名を見つけていただけますか。

事件背景のPDFが添付されており、被害者(Lucilhe)から検出された化学物質の名前を答えよという指示がある。

ryo-aは4時の開始時間直後に待機していたが、化学がわからないので完全に敗北。今回一番焦ったのはここ。
ChatGPT先生に聞いたら「カフェイン」と言い始め、試しに放り込んだが普通にダメ(それはそう)。

どうやって探せばいいかも聞いてみると

構造式検索
最も一般的な方法は、構造式検索です。これは、以下のツールを使用して行うことができます。

とのことで、これは使えそうなのでメモに残して就寝した。

起床したkn1cht、 Diffuseが分子モデルの画像から数えてC8H8N2O2をChemSpiderで検索。ベンゼン環1個でシアノ基1個、メチル基2個っぽい構造をしばらく探すと同じものが見つかる。

https://www.chemspider.com/Chemical-Structure.10216.html?rid=c477fc33-c3fa-4440-b5e3-07660cf9e228&page_num=0

名前のところを見ていくとRicinineと書いてある。
植物由来の毒で、殺虫剤として使われるらしい(Wikipedia)。

暗殺用に使われたということだろうか。

Flag: Ricinine

Category: Business card

Crime Sceneを解くとアンロックされる。

We've recovered a crucial piece of evidence in possession of the victim: a business card among the items. We need to investigate the company's details, including its establishment date and any relevant information about its operations.

format : yyyy-mm-dd
example : 2023-04-12

和訳(DeepL)

被害者が所持していた重要な証拠品の中から名刺を回収しました。設立年月日や業務内容など、その会社の詳細を調査する必要がある。

OSINT CTFで頻出の会社情報調査問題。
fildargentという社名が記載されている。フランス語っぽい。

フランスのCTF、また名前もフランス語っぽいのでSirene(フランス企業のデータベース)で検索するも、特に出ない。
また、単純にGoogle検索すると関係なさそうな医療関係のサイトが登場するだけである。

Yandex Image Searchに放り込むと、同じ背景の画像が出てくる。
つまり、これ自体はフリー素材を加工したものの可能性が高く、画像に意味はなさそうである。

ユーザーネームの可能性もあると判断し、WhatsMyName を使用したが、特にこのロゴに結びつくアカウントは発見されなかった。

その後もフランスのビジネスSNS「Viadeo」やOpen Corporatesを探ったり、”fildargent”を含むGmailアドレスをEpieosに入れるなどしたが特に見つからず苦戦する。

そこで基本に立ち返り、Facebookを検索するとfildargentが発見された。WhatsMyNameだとFacebookが引っかからないというのは忘れていた(IDがURLに含まれないからか)。

https://www.facebook.com/profile.php?id=61557320215105

2周年の投稿が記載されているので日付から逆算するとFlagが得られる

Flag: 2022/03/15

Name it (99 solves)

Now that we uncovered information about this company, I task you with the next crucial step: identifying the individual who leads this company.

format : Firstname Name

example : John Doe

和訳(DeepL)

この会社に関する情報が明らかになったところで、次の重要なステップ、つまりこの会社を率いる人物を特定することがあなたに課される。

先ほどのFacebookページにはazlamp19@proton.meというアドレスが記載されていた。

このユーザ名でGoogle検索すると、以下のThreadsのアカウントがヒットする。
https://www.threads.net/@azlamp19

Flag: Alíz Lamp

Around it (76 solves)

This individual who heads 'fildargent' the company affiliated with the business card found at the crime scene is a suspect. To further investigate her involvement, we need to verify her alibi.

Your task is to determine the city where this person was supposed to be during the period of the incident.

format : Cityname
example : Paris

和訳(DeepL)

現場にあった名刺の会社『フィルダージェント』を率いるこの人物が容疑者です。彼女の関与をさらに調べるには、アリバイを確認する必要がある。
あなたの仕事は、この人物が事件のあった時間帯にいたはずの都市を特定することです。

先ほどのThreadsからazlamp19のInstagramアカウントに飛ぶことができる。
https://www.instagram.com/azlamp19/

azlamp19のストーリーにカレンダーの写真がある。情報管理ガバガバすぎる。

URLにはcalendar/p/dlP45FriJ3LNeq5q/dayGridMonth/nowという文字列が写り込んでいる。

下部にはFramasoftというサービス名?社名?が写り込んでいる。

検索するとフランスのFramasoft社が提供しているFramagendaというカレンダーサービスが見つかる。

ここのカレンダーのURLフォーマットに当てはめると、以下のURLが得られる。

https://framagenda.org/apps/calendar/p/diP45FriJ3LNeq5q/dayGridMonth/now

4月4日~13日で以下のスケジュールが記載されている。

AF0328、つまりエールフランス328便(AF328)を検索すると行き先が得られる。

Flag:Ottawa

Drop it (84 solves)

It appears that the suspect has been ordering goods, which opens up a promising avenue for our investigation. Let's focus on tracing these transactions and gathering any relevant information related to the purchases made by the suspect.

format : LastTrackedCityForContainer
example : Paris

和訳(DeepL)

容疑者は商品を注文しているようで、捜査に有望な道が開けました。これらの取引を追跡し、容疑者の購入品に関連するあらゆる関連情報を収集することに集中しよう。
フォーマット: 追跡におけるコンテナの最終地点
例:パリ

azlamp19がThreadsに荷物が来ないという投稿をして、追跡画面のスクリーンショットも上げている(そんなことするな)。
https://www.threads.net/@azlamp19/post/C5AwBbqt40y

画像を拡大するとContainer ID TCNU 657202 と書かれている。

これは海運のコンテナに割り当てられるIDである。

チェックデジットを含めると TCNU6572020 となる。
いくつかのサイトでコンテナの情報を追跡することが可能で、TCN(トリトンコンテナ)の以下のページにたどり着く
https://tools.tritoncontainer.com/tritoncontainer/unitStatus/show/TCNU6572020

このコンテナは2020年5月29日にEvergreenによってhireされ、2023年6月29日にジャカルタでLease Outし、retireしたことが判明する。

azlamp19の画像によると、荷物は2023年6月27日にOut of deliveryになっているはずだが、実態はそうなっていない。中国を出てフランス方面へ向かうはずだったコンテナが、何らかの事由で途中のジャカルタにて6月29日付で引退・廃棄されたのか……?と判断した。

Flag: Jakarta

Milk it (69 solves)

Our objective is to verify whether the suspect did indeed visit the locations as planned. We need to gather evidence to confirm or refute her presence at the designated places.

Our next step is to gather information about the event she attended on April 6th. Let's delve into any available details regarding this event.

format : EventOrganizer SeatingArea
example : LFP 111A

和訳(DeepL)

私たちの目的は、容疑者が計画通りに本当にその場所を訪れたかどうかを確認することです。彼女が指定された場所にいたかどうかを確認するため、あるいは反論するための証拠を集める必要がある。

次のステップは、彼女が4月6日に参加したイベントに関する情報を集めることだ。このイベントに関して、入手可能な詳細を掘り下げてみよう。

再びカレンダーを使う。

4月6日にイベントが予約されていることがわかる。

住所として 1000 Palladium Drive, Kanata, ON K2V 1A5 が記載されている。
これをそのまま検索すると、場所はオンタリオ州のCanadian Tire Centreというスタジアムであることが判明する。

“6th April Canadian Tire Centre”でGoogle検索すると以下のURLがヒットし、Ottawa SenatorsによるFan Appreciation Nightが開催されていたことが判明する。
https://www.nhl.com/senators/news/more-than-250-000-in-prizing-and-giveaways-to-be-distributed-on-fan-appreciation-night-presented-by-canadian-tire-on-april-6

また、メモには

Suite next to ledge
west side
と記されている。

会場にはThe Ledgeと呼ばれる特別席があり、その西隣のSuiteであると言及している。
https://www.rateyourseats.com/canadian-tire-centre/seating/the-ledge

いくつかのスタジアム座席表サイトを探していると、方角が描かれたものがヒットする。
Suiteの隣で西側、方角が斜めなので微妙だが316ではないか?また、問題文の"Milt it"から、Milk Zoneと称されているこのゾーンが答えだろうと思った。


https://www.canadiantirecentre.com/plan-your-visit/arena-map/

Ottawa Senators 316 → incorrect

主催者が違う?ということでリーグがイベントのorganizerでは?と思い、
NHLでも試す。

NHL 316 → incorrect

😇

よく問題文を見るとEvent Organizer ではなく EventOrganizer と書いてあるので、スペースがあるとダメか?と思った

OttawaSenators 316 → incorrect

アッ……
無事に3回を使い果たし、これにて終了……と思われたが、運営より「同一内容をフォーマット違いで2回答えていますね。フォーマット違いで不正解になることはありません。重複した解答を削除するのでもう一度試してください」との連絡がある。HEXAチームは非常に親切である。

ということでもう1回トライできるようになった。

ここで、「そもそも座席が違うのではないか?」という気がしてくる。

よく考えると Suite next to the ledge と書いてある。
別のシートマップサイトを探ると、一般座席のみでなくSuiteが記載されているものが見つかる。

https://www.ticketmaster.ca/ottawa-senators-vs-montreal-canadiens-ottawa-ontario-04-13-2024/event/31005EF385491062

相変わらず「西」が微妙なところだが、Ledgeからコートを見たときに西側にある475Aが該当するSuiteであると判断。

Ottawa Senators 475A → incorrect

3回目の解答権を使い果たしてしまい、ちょっと手詰まりになったため、運営へChill Modeを依頼。

こちらから「わかっている情報とそれの根拠」として情報を添えた結果、公開情報からOttawa SenetorsがOrganizerと判断できるとされ、減点されることなく正解が追加された(他のチームも正解扱いになっていると思う)。

Flag: Ottawa Senators 475A

Move it (64 solves)

Our objective is to verify whether the suspect did indeed visit the locations as planned. We need to gather evidence to confirm or refute her presence at the designated places. It seems that on April 8th, there was a change in her whereabouts. Please locate a telephone number for the accommodation where she likely stayed during this time.

format : +331234567890

和訳(DeepL)

私たちの目的は、容疑者が計画通りに本当にその場所を訪れたかどうかを確認することです。彼女が指定された場所にいたことを確認するため、あるいは反論するための証拠を集める必要がある。4月8日に居場所に変化があったようです。その際に滞在したと思われる宿泊先の電話番号を教えてください。

カレンダーの4月8日に以下のような予定が記載されている。

“Moving” GC6V+39P
Framagenda share link: s/YdjE5jpFn4kwSn8

まず、共有リンクはFramagendaのこれである(Framagendaの使い方を知らなくても、推測で何通りか試すことで発見できる)。

https://framagenda.org/s/YdjE5jpFn4kwSn8

開くと2枚の画像が保存されている。


Hotelへの道案内が書かれた手書きのメモと、”Sewing Meetup”というイベントの案内画像がある。カレンダーの予定メモと、これらの画像を用いてホテルを特定することがこの問題の解法だと推測できた。

まず、GC6V+39PはGoogleのPlus Codeである。地球上の位置を統一したコードで示せる仕組みだが、与えられた7桁だけでは地球上の位置を一意に特定できない。さらに先頭にある程度の地域を表す4桁を加える必要がある。

Around itのFlagから、容疑者はオタワに滞在していたと考えられるため、まずはオタワ付近にある87Q6GC6V+39Pの位置を確認した。ただ、これは郊外の線路沿いで、このあとの解法につながるものではなかった。

ここで2枚目のSewing Meetupの画像をよく見ると、下部にLE HOUBLON D’ORという場所の名前がある。カナダ付近のLE HOUBLON D’ORをGoogle Mapsで調べると、モントリオール近くの同名のバーが見つかった。つまり、今探すべき地点はオタワではなくモントリオールにあるのではないか?と推測し、再びPlus Codeのシステムで確認すると、87Q8GC6V+39Pの地点にはChamp-de-Marsという地下鉄駅が存在した。ホテルの道案内の最初の指示は「地下鉄を出ること」であるため、正しい出発地点を把握できたことが分かる。

https://www.google.com/maps?ll=45.510207,-73.556717&z=21

さて、1枚目の画像は手書きの道案内メモだった。略語が多用されていて、慣れない表現が多かったため、画像から書き起こしたうえでChatGPTに意味を聞きながら指示を把握するようにした。

getting out of the sub on the av.
go north then turn ←.
up the street till' bvd. then →
walk along bvd. till' 1st street light
← on the rd.
hotel 150m OTL.

(筆者の理解)

  • 通りにある地下鉄を出る
  • 北進し左へ曲がる
  • bvd.(boulevard / 大通り)まで通りを進み右へ曲がる
  • 大通りにそって、最初の街灯まで歩く
  • 街灯は道の左にある or 道を左に曲がる
  • ホテルは150m先の左側にある

この指示通りにGoogleストリートビューを使いながら移動すればいいのだが、メモの指示を正しく理解するまで、ある程度地図とメモを行ったりきたりしながら進めていった。最終的に、画像のような経路が導かれた。

bvd.にある最初の街灯(Googleストリートビューで確認できる)の位置まではある程度確信を持てたが、次の”← on the rd.”が「道路の左側の街灯」という意味なのか「道路を左折する」という意味なのかが分からない。前者であれば、曲がらずにbvd.を150m直進した地点にあるHotel Le RobervalがFlag候補となる。後者であれば、同じくらいの距離にあるHotel St-Denisが候補である。

前者の電話番号で不正解になったあと、チームメンバーと注意深く道順を再確認し、Hotel St-Denisの電話番号を回答して正解した。

Flag: +15148494526

Jump it (52 solves)

We need to locate an individual who can provide an alibi for the suspect on the day of the crime. Please gather any potential leads or witnesses who can attest to her whereabouts during that time.

format : Date of birth (yyyy-mm-dd)

example : 2024-01-01

和訳(DeepL)

犯行当日の容疑者のアリバイを証明できる人物を探す必要があります。手がかりになりそうな人物や、その間の居場所を証言できる目撃者を集めてください。

カレンダーの4月10日にはMeetというイベントが登録されているが、特に情報はない。

前問の”Sewing Meetup”というイベントの案内画像で、会場が LA HOUBLON D’OR と記されている。前問で確認したとおり、これはモントリオールにあるバーであり、検索すると、Facebookページも確認できる。
https://www.facebook.com/BarHoublondor/?locale=fr_FR

Sawing Meetupの参加者はazlamp19に、このバーで会っているはずである。

先ほど得られた招待用の画像はファイル名がSewing Meet - Tafy Couture.pngとなっており、バーに居たとされるTafyと同一人物である可能性が浮上する。

TafyCoutureをWhatsMyNameで検索すると、Xのアカウントがヒットする。

現地時間4月10日に "Enjoying my time at #HoublonDOr" というポストが確認でき、イベントに参加していた可能性が高いと考えられる。
https://twitter.com/tafycouture/status/1778122525819416775

プロフィール欄に誕生日が記載されている。

Flag:1986-08-05

Shake it (51 solves)

We've discovered a pseudonym. Your next objective is to uncover the real name of the individual linked to this pseudonym. This information is crucial for us to establish contact and confirm the suspect alibi.
format : Firstname Name
example : John Doe

和訳(DeepL)

偽名が見つかりました。次の目標は、この偽名に関連する個人の本名を特定することです。この情報は、当該個人と連絡を取り、容疑者のアリバイを確認する上で極めて重要です。

前問より、Tafy Coutureの本名を当てる必要があると判断した。
Xアカウントのbioに “seller on Kijiji” と記載されており、Kijijiというカナダのジモティー的なサービスにヒントがありそうだと分かる。
https://www.kijiji.ca/

また、TafyのXには以下のような投稿がある。
https://twitter.com/tafycouture/status/1772215542083895499

なお、日本からKijijiにアクセスを試みると、アクセス制限の影響を受ける(カナダ以外からのアクセスはできない?)。

VPNでカナダの回線からアクセスし、ケベック州の出品者から “crimson scarf” を検索すると、以下の出品がヒットする。
https://www.kijiji.ca/v-femme-vetements-autres/shawinigan/crimson-scarf/1690018710

この出品者名がFlag。

Flag: Gaëlle Tremblay

なお、気付いた人もいると思うが、Business Cardセクションの問題名はTechnologic (Daft Punk)のオマージュになっているようだ。

Category: Lunch time

Crime Sceneを解くとアンロックされる。

Duck sauce (113 solves)

The person Lucilhe was talking to before her death is called Barbara Allandes. She was serving a 4-month prison sentence for being involved in a pyramid scam. She is a quiet person described by other inmates as "a weird artist". We discovered a portrait created by B. Allandes in Lucilhe's cell. She was interviewed but she didn't tell us anything interesting.
As she is suspicious, we would like to investigate her. Could you determine the year from which she has been drawing?
format : Year
example : 2024

和訳(DeepL)

Lucilheが死亡前に話していた相手はBarbara Allandesという。彼女はネズミ講に関わった罪で4カ月の実刑判決を受けていた。他の受刑者からは「奇妙な芸術家」と評される物静かな人物だ。私たちはLucilheの独房でB. Allandesが描いた肖像画を発見した。彼女は事情聴取を受けたが、興味深いことは何も話さなかった。
疑わしいので、調査したい。彼女がいつから絵を描いているのか特定できますか?

素直に”Barbara Allandes”という名前をヒントに検索すると、Flickrが出てくる。
https://www.flickr.com/photos/200335437@N02/

プロフィールに記載がある。

Flag:2020

Pray for me (108 solves)

Our suspect appears to be quite the traveler. We aim to interview individuals in the areas she's visited and gather evidence confirming her presence.

Let's identify the lake shown in the photo labeled "lake".

format : Lake Name
example : Tuz Gölü

和訳(DeepL)

この容疑者はかなりの旅行好きとみえる。我々は、彼女が訪れた地域の人々に聞き込みし、その存在を裏付ける証拠を集めたい。
「lake」とラベル付けされた写真の湖を特定してください。

Barbara AllandesのFlickrに投稿されている湖の名前を調べよ、という問題。
https://www.flickr.com/photos/200335437@N02/53613001455/

この画像をGoogle Lensに放り込むとLac de Servièreという湖が表示されるが、Google Mapsで確認すると周囲の様子が異なる。
もう少しLensを眺めてみると、Lac De Guéryという湖もヒットする。

残念ながら、ピッタリの角度でのストリートビューはないのだが、Lac De GuéryとFlickrの写真は周辺の建物や地面が一致しているように思われる。

全景


衛星写真から確認できる建物


画像から確認できる建物


衛星写真から確認できる地面


画像から確認できる地面

これより、この湖であると判断した。
Flag: Lac De Guéry

Bolt to be alive (81 solves)

Our suspect appears to be quite the traveler. We aim to interview individuals in the areas she's visited and gather evidence confirming her presence.

Now, let's identify the name of the road shown in the photo labeled "bridge".

format : Road Name

example : al. Jana Pawła II

和訳(DeepL)

この容疑者はかなりの旅行好きとみえる。我々は、彼女が訪れた地域の人々に聞き込みし、その存在を裏付ける証拠を集めたい。
「bridge」とラベル付けされた写真の道の名前を特定しましょう。

ヨーロッパの町並みと思われる写真が掲載されている。
https://www.flickr.com/photos/200335437@N02/53612892124/
本人が「Souvenir of the largest nearby city」とコメントしているが、特にそこから得られる情報はないと思われる。

奥に見える赤い屋根が南ヨーロッパっぽい。地中海沿いの都市を何カ所か確認してみるが、容易に一致するものが見つかりそうではなかった。
そこで画像を拡大すると、ナンバープレートが見える。

EUのナンバープレートであると分かるが、国がどれか分からなかったのでWikipediaを確認したところ、左右に青い帯があるものはフランスのものであるとわかる。

確かに、言われてみれば左端の文字も「F」に見える気がする。
写り込んでいる番号は DA-957-GZ であるが、実はこれから得られる情報はない。
地域を絞り込むには右側の青地に白の文字(数字)を読み取る必要がある。

また、Wikipediaのページによると、奥の黄色い車両は古いタイプのフランスのナンバープレートであることが分かる。この古いタイプのナンバーには地域コードが末尾に含まれている。


https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_France

解像度の問題があり、判読しづらいが、こちらのナンバーは815 ALC 83と書かれているように見える。
これを踏まえると、1枚目の新しいナンバーも右側に「83」と書いてあるように見えなくもない。

一旦、83という前提で進んでみよう。

地域コードについても、Wikipediaに一覧が存在しており、ここから83はToulon(トゥーロン)であることがわかる。


https://en.wikipedia.org/wiki/Departments_of_France#Current_departments

地形(斜面と橋)からそれっぽいところを探すと、 Av. Val Fleuri(43.136217, 5.937922付近)で写真が撮影されたとわかる。

Flag: Av. Val Fleuri

Eye of the tiger (109 solves)

Our suspect appears to be quite the traveler. We aim to interview individuals in the areas she's visited and gather evidence confirming her presence.

Now, let's identify the place shown in the photo labeled "stone".

format : Place Name

example : Piața Consiliul Europei

和訳(DeepL)

この容疑者はかなりの旅行好きとみえる。我々は、彼女が訪れた地域の人々に聞き込みし、その存在を裏付ける証拠を集めたい。
「stone」とラベル付けされた写真の場所を特定しましょう。

この投稿の写真を特定することになる。
https://www.flickr.com/photos/200335437@N02/53612550261/

写真をGoogle Lensに放り込むと、イギリスの三角点であるとわかる。

また、与えられた写真を拡大すると OS BM S6956 と刻印されている。

素直に “triangulation station uk search” とGoogle検索すると、専用の検索サイトがヒットする。
https://www.ordnancesurvey.co.uk/gps/legacy-control-information/triangulation-stations

Flush Bracket Number に “S6956” と入力して検索する。

すると、BEN LEDI という三角点が表示される。

この名前を用い、“ben ledi triangulation station” でGoogle検索すると、以下の画像がヒットする。
https://www.flickr.com/photos/13460108@N06/8098096847/

与えられた画像と一致していることが確認できる。

Flag: Ben Ledi

When I see you again (92 solves)

Our suspect appears to be quite the traveler. We aim to interview individuals in the areas she's visited and gather evidence confirming her presence.

Now, let's determine the location from which the photo labeled "snow" was captured.

format : Place Name Country
example : Rosenborg Slot Denmark

和訳(DeepL)

この容疑者はかなりの旅行好きとみえる。我々は、彼女が訪れた地域の人々に聞き込みし、その存在を裏付ける証拠を集めたい。
「雪」とラベル付けされた写真が撮られた場所を特定しましょう。

以下の画像の撮影地を特定することになる。
https://www.flickr.com/photos/200335437@N02/53612550551/

まずは写り込んでいる道路標識を拡大する。

←Quebec 100
?? →
Alma→ ?24

看板から断片的に読み取れる情報より、カナダのケベック州で撮影されたものではないかと推定できる。

左に見える「175」も州道か何かの番号だと判断し、検索すると同じ標識がヒットする。
https://en.wikipedia.org/wiki/Quebec_Route_175

その下に見えるSUDとは何だろうか :thinking_face: (絶望的なフランス語力のなさ)

ということでストリートビューで現地を見る。
ケベック州道175号は全長が243kmもあるため、全部を見ているわけにはいかない。

看板を読み取った通り、州道175号においてケベックシティから約100kmほどの地点を見てみる。

D'accord!
どうやらSUDはNORDの対義語で、この標識はフランス語で「南(sud) /北 (nord)」を示していることがわかる。

これより、与えられた画像の左側が南、右側が北であると判断できる。

ケベックシティから100km近辺で絞る作戦は有効で、付近から交差点がある場所を探していると 47.560898, -71.230883 がすぐに見つかる。

ただ、ここで少し手こずってしまい、隣にある

  • Lac Jacques-Cartier Canada
  • Hébergement des employés de l'Étape Canada

などの誤答を重ねてしまった。

再確認の上、上記のパーキングエリアが撮影位置であるとわかった。
ストリートビューからも同じ標識が確認できる。

国名は言うまでもなくカナダであるため

Flag: L'Étape Rest Stop Canada

Drop it like it's hot (102 solves)

Our suspect appears to be quite the traveler. We aim to interview individuals in the areas she's visited and gather evidence confirming her presence.

Now, let's determine the location from which the photo labeled "sea" was captured.

format : Place Name City
example : Rosenborg Slot Copenhagen

和訳(DeepL)

この容疑者はかなりの旅行好きとみえる。我々は、彼女が訪れた地域の人々に聞き込みし、その存在を裏付ける証拠を集めたい。
「sea」とラベル付けされた写真が撮られた場所を特定しましょう。

以下の画像の撮影位置を特定する。
https://www.flickr.com/photos/200335437@N02/53612934780/

Google Lensに画像を放り込み、下半分を選択するとLe Jardin Exotiqueがヒットする。

画像を確認してもそれっぽい
https://www.encirclephotos.com/image/jardin-exotique-garden-mediterranean-view-from-in-eze-france/

ストリートビューでも似た画角がヒットする。

Flag: Le Jardin Exotique Èze

Welcome to the jungle (84 solves)

Our suspect appears to be quite the traveler. We aim to interview individuals in the areas she's visited and gather evidence confirming her presence.

Now, let's determine the location from which the photo labeled "kangaroo" was captured.

format : Place Name City
example : Rosenborg Slot Copenhagen

和訳(DeepL)

この容疑者はかなりの旅行好きとみえる。我々は、彼女が訪れた地域の人々に聞き込みし、その存在を裏付ける証拠を集めたい。
「kangaroo」とラベル付けされた写真が撮られた場所を特定しましょう。

カンガルーの写真から撮影地を特定する問題。カンガルーの写真はインターネット上に大量に存在し、画像検索ですぐに場所を特定することは非常に難しい。チームメイトがGoogle Lensのトリミング位置を変えるなど様々な試行錯誤を行ったものの、手がかりには至っていなかった。

日本のCTFプレイヤーの間では、Googleアカウントの言語設定に応じてGoogle Lensの結果が変化する(例えば日本語のアカウントには、日本の写真が優先的に表示される)ことから、海外のCTFに参加する際には言語設定を英語にするというテクニックが共有されている。

https://meow-memow.hatenablog.com/entry/2022/08/06/111747

本大会は運営者がフランスを拠点にしており、フランスの場所に関連する設問が多いことから、Googleアカウントをフランス語の設定に変更してから再度Google Lensを使用してみた。すると、カンガルーと後ろの特徴的な柵が写ったFacebookの投稿を発見した。

この画像を投稿したアカウントは、”Une rencontre pleine de rebondissements🦘🦘🦘 Toute l'aventure sur instagram (IDが続く)”と書いており、instagramにこの写真の詳細情報があることを示唆していた。そこで、instagramでIDを検索して見に行くと、同一の写真が投稿されていた。親切にも、投稿者がコメント欄で”le jardin des kangourous à La Possonniere dans le 49”と場所を教えてくれている。Google Mapsなどで施設名と都市名を確認し、繋ぎ合わせればFlag。

Flag: Le Jardin des Kangourous La Possonnière

Santiano (59 solves)

Our suspect appears to be quite the traveler. We aim to interview individuals in the areas she's visited and gather evidence confirming her presence.

Now, let's determine the location described by the poem. It seems that the words have been chosen carefully. If we pay close attention, we may uncover something of interest.

format : Name of the nearest bus stop
example : Gare Saint-Roch - République
Note : 5 tries

和訳(DeepL)

この容疑者はかなりの旅行好きとみえる。我々は、彼女が訪れた地域の人々に聞き込みし、その存在を裏付ける証拠を集めたい。
さて、詩の場所を特定しよう。慎重に言葉が選ばれているようだ。注意深く見ていけば、何か興味深いものを発見できるかもしれない。

フォーマット:最寄りのバス停の名前
例: Gare Saint-Roch - République
この問題は5回まで回答可能

Flickrに以下の内容の詩が投稿されている。

Paris Sleeping

Great southern network
I was there to work

My map is in my hand
Headlamp through unknown land

chilling sanctuary
sprawling ossuary

Noon you go
Well you know

South is the way
Irons on the way

Left when its due
Danger left no clue

詩の和訳(DeepLによる訳を一部修正)

広大な南部のネットワーク
私は働くためにそこにいた

地図は手の中にある
未知の土地をヘッドランプで照らす

凍える聖域
広大な納骨堂

正午、君は行く
よく知っている

南が道
アイアンズ・オン・ザ・ウェイ

左へ左へ
危険は手がかりを残さなかった

この問題が一番つらかった(振り返り会で、日本からの他の参加者も同じことを言っていた)。

パリを題材として “Great southern network”、そしてossuary(納骨堂)などに言及していることから、テーマはパリ南部の地下に張り巡らされたカタコンベ(Catacombes de Paris)ではないかと想像できる。

しかし ”Noon you go” や “Irons on the way” が分からない。
とりあえず、カタコンベの最寄りバス停はDenfert-Rochereauであるが、これは不正解らしい。
周辺のバス停や、カタコンベ観光コースの出口付近のバス停も試したが、それでも不正解が続いてAttemptが減っていく。

“Noon” はもしかして正午にバスが出るという意味?南に向かう?などと悩んでいたが、この詩の題材は「カタコンベ」ではないのではないかと気付いた。

さて、この問題を解こうとするには、少しだけパリの歴史を知る必要があるかもしれない。

セーヌ川の左岸、つまりパリの南側の地下には良質な石灰岩が存在しており、12世紀から採掘が行われていた。これはパリの地下採石場(Carrières souterraines de Paris)と呼ばれている。
パリには石造の建築物が多く存在するが、それらはこの採石場に由来するものである。

採掘が進んでいくにつれて、この採石場はパリの地下に広大な空間を形作ることになる。それと同時に、長らく放置された地下採石場は地盤の崩落などの諸問題を引き起こした。これを受け、18世紀には地下空間の調査が命じられ、管理も開始された。この調査・管理の過程において、複数の採石場は追加の通路で接続され、結果的にGrand réseau sud(GRS、これこそが”Great southern network”である)と呼ばれるようになった。なお、現在も公的な管理は続いており、Inspection générale des carrières(IGC)と呼ばれる組織がこれを担っている。

この広大な地下空間は度々様々な用途に転用されてきた。代表例が18世紀に設けられた納骨堂である。
だが、なぜ地下に納骨堂が設けられたのだろうか。

長くにわたってパリ市内の教会で行われてきた土葬は限界を迎えていた。たとえば、遺体が自然に分解される速度に埋葬のペースが追いつかなかった上、井戸水が腐敗した物質によって汚染されるといった衛生上の問題が発生していたのである。
この状況は16世紀ごろから問題視されるようになったものの、対応はなかなか進まなかった。最終的には18世紀に墓地周辺のワイン貯蔵庫が、埋葬された遺体の圧力で崩壊するという事件が発生し、これを契機にパリ市内の墓地閉鎖が決定した。

この改葬先こそがGrand réseau sud(GRS)であり、後にその一部の区画がCatacombes de Parisと呼ばれるようになったのである。
改葬直後の数年間は純然たる「遺骨の保管場所」に過ぎなかったのだが、IGCの2代目総監であるLouis-Étienne Héricart de Thuryが骨を整然と並べた装飾を命じ、いまのCatacombes de Parisを形作ったとされている。

もちろん、GRSの全域が納骨堂になったわけではない。
“Catacombes de Paris”として公式に観光可能なエリア以外はGRSのごく一部にすぎない。大半のエリアは現在もそのまま存在しており、安全性の観点から立ち入りは禁止されているのだが、Cataphilieと呼ばれる違法な探索活動(侵入)が行われているという。

話をCTFに戻そう。
これを踏まえて、Web上を検索するとGrand réseau sudの全体を記したマップがいくつか見つかる。
Redditに英語版が転がっていた。
https://www.reddit.com/media?url=https%3A%2F%2Fi.redd.it%2Fc81bc5exd4o21.jpg

元バージョンと思われるフランス語版も見つかった。
https://www.flickr.com/photos/29539055@N05/3446980389

この地図を見ると、凡例部分に “Iron gate” や “Ossuary” などが見つかる。

また、地下鉄工事で影響を受けたエリアなども見つかり、ここに “Iron gate”が多数あることから、ここがエリアなのではないかと考えた。

そしてMontparnasseと答えるも、残念ながら不正解となってしまった。
ウーーーン?

回答制限を使い果たし、どうしようもなくなったため、Chill Modeを発動する。

Santiano - Chill Mode

HEXAの運営チームに対して、現時点でわかっていることとして以下の内容を伝えた。

  • Great southern networkはパリの地下通路・カタコンベのこと
  • 地図を見つけた
  • 2つの可能性があると思っているが、どちらも詩の内容と合致しなくて困っている
    • 1つは観光コースとしてのカタコンベ
    • もう1つはカタコンベ以外のGreat southern networkのどこか

すると、「Great southern networkの理解は合っている。そして、非常に興味深い地図を見つけている。」「第3パラグラフ(chilling sanctuary…)は開始地点を示しており、そこから詩の内容に従って道を進んでいく。」「英語版の地図でもいくつかの文字はフランス語で書かれているため、機械翻訳が必要になるかもしれない。」とのヒントをもらう。

以下、Chill Mode中のログを画像付きで日本語訳して記す(Chill Modeの雰囲気を把握することに役立ててほしい)。

40548F: “chilling sanctuary, sprawling ossuary”ってことは、納骨堂があるここですよね?

HEXA: (納骨堂は)そこだけじゃないですよ。

40548F: おっ……?探してみます。

完全に見落としていたが、もう一カ所納骨堂があったのである。

40548F: "OSSUARY CROSSROAD"がそれっぽいですね……

このエリアをよく見ると “well” や “midi”(”noon”のフランス語訳)がたくさん見つかる。
つまり、詩のテーマになっている納骨堂は観光地化されたカタコンベではなく、この違法エリアにある"違法カタコンベ"を指していたのであった。

chilling sanctuary
sprawling ossuary

Noon you go
Well you know

South is the way
Irons on the way

40548F: いまのところ、ossuary crossroadを出て”midi”に向かい、”well”に向かい、南に向かうと理解しています。

HEXA:いいスタートです。

Left when its due
Danger left no clue

40548F: で、次は左に曲がり続けるのではないかと。

HEXA: ちょっと違うね

40548F: おっと

HEXA: 左に曲がって、”Danger left no clue” ですよ。

40548F: そこが一番難しいんすよねえ……

ここでよく見直すと、Dangerous crawlという場所が見つかる。

40548F: Dangerous crawlを見つけました

HEXA: 正解!

40548F: ここから地上に出られます?メンテナンスに使われるWellの記号はあるようですが。

HEXA: 出なくていいですよ。一番近いバス停を探してください。

ということで道路の形からDangerous crawlの場所をGoogle Mapsで探し、一番近いバス停を見つけた。

Flag: Denfert-Rochereau - Froidevaux

"OSSUARY CROSSROAD"に気付けていればChill Modeを使わずにクリアできたのではないか……という気持ちもあり、悔しさが残る。

Category: Phone

Crime Sceneを解くとアンロックされる。

Supply… (68 solves)

The recovery of Lucilhe's encrypted phone marks a pivotal breakthrough in our investigation. Our dedicated technicians are tirelessly working to extract vital data from it. Thus far, we have successfully retrieved screenshots from a conversation. Herein lies the first segment of this crucial exchange. Try to find the SIRET number of the company mentioned in the message.
format : 12345678901234
(Hint)
Our sources indicate that the society is based in Loire Atlantique, that means the company siege is in Loire atlantique, and the company is not a subsidiary company.

和訳(DeepL)

Lucilheの暗号化された電話の復旧は捜査において突破口となった。技術者たちが重要なデータを抽出するために働いている。会話のスクリーンショットの回収に成功した。この重要なやりとりの最初のセグメントをここに示す。メッセージで言及されている企業のSIRET番号を見つけよ。

(ヒント)我々の情報源によれば、この企業はロワール・アトランティックに本拠を置いており、つまり勢力圏がロワール・アトランティックにある。同社は子会社ではない。

メッセージングアプリのスクリーンショットが渡され、話題になっている企業を特定しようという問題。まずは、メッセージを書き起こして日本語訳すると次のようになった。

Lucilhe「こんにちは、私はintelbenderです。bruised rogue(筆者注:前回HEXA OSINT v2の事件)をMM(MasterMind)に依頼したグループを調査しています。彼らは私を雇おうとする一方で殺そうともしていて意味不明です。報酬の払いがいいということだけは分かっています。2021年に行おうとしたデューデリジェンスを再開してくれませんか。」
K, 「分かったことをお伝えします。彼らはいくつかの技術的発明を取得しようとしてます。1つは2013年より前に”Loire Atlantique”にある会社によって作られたhoneycomb(ハニカム)に関する技術的物品です。PDF以外は見つかりませんでした。」

2013年より前にhoneycombに関する技術的を発明した”Loire Atlantique”にある会社を見つける必要がある。なお、Loire Atlantiqueはフランスの大西洋岸の県で、県庁はナント。
発明ということで、特許が発表されているのではないかと考えてフランスの特許データベース(https://data.inpi.fr/ )を開き、”honeycomb”や”nid d'abeille(フランス語でのハニカム)”をキーワードに検索するが、かなり数が多く有望な情報は得られなかった。

次に、地域の情報が与えられていることに着目して"Loire Atlantique" "honeycomb" "patented"などのキーワードでGoogle検索を繰り返したところ、いくつか条件に合いそうな企業が浮上し2回submitしたものの、不正解となってしまった。
また、Loire Atlantiqueに本社がある大企業の一覧から製造業などの業種のものを1つずつ調べてみたが、ピッタリ合う企業はなかなか見つからない。

https://industrie.usinenouvelle.com/classement/departement-45
https://www.verif.com/top/revenue-r0/france-rcoun/pays-de-la-loire-rreg/loire-atlantique-rdep/

解けているチームが少ないのか運営チームからヒントが公開されたものの、Flagにたどり着く方針が立たないまま2日目に突入していた。大会中に追加されたルール”Chill Mode”を使って減点と引き換えに先へ進んだほうがいいのではないかという意見がチームでまとまり、運営チームに解説を依頼した。以降は、そのとき教えていただいた解法を簡単に紹介する。

Supply - Chill Mode

メッセージで言及された情報(Loire Atlantique, honeycomb, before 2013, PDF)をそのまま使ってGoogle検索する。
クエリ例:"Loire Atlantique" "honeycomb" filetype:pdf before:2013-01-01

filetype:pdf before:2013-01-01
https://www.google.com/search?q="Loire+Atlantique"+"honeycomb"+filetype%3Apdf+before%3A2013-01-01

ただし、我々が検索したときにはこれでは正解のファイルに到達しなかったので、最終的に"Loire Atlantique"のキーワードを使わないことで検索の最上位に”Comparison between Honeycomb and Fin Heat Exchangers”という論文が出現した。

https://www.google.com/search?q="honeycomb"+filetype%3Apdf+before%3A2013-01-01

この論文の第一著者の所属はSAS SYNGASで、熱交換器にハニカム構造を用いることについて検証したものだった。また、SAS SYNGASの所在地Saint-ViaudはLoire Atlantiqueにある。

SAS SYNGAS本社のSIRET番号(フランスにおいて事業所を識別する番号)を調べるとFlagが得られる。
https://annuaire-entreprises.data.gouv.fr/entreprise/sas-syngas-453668105

Flag: 45366810500027

検索の重要性を実感させる問題だったと考えられるが、"Loire Atlantique"というキーワードを入れて検索しても答えにたどり着けるようになっているとスムーズに解答できたのではないかと感じた。

なお、before:2013-01-01 でなく、 before:2013 でも絞り込めるとのことである(thanks, Onelots.-san!)

...her (97 solves)

The recovery of Lucilhe's encrypted phone marks a pivotal breakthrough in our investigation. Our dedicated technicians are tirelessly working to extract vital data from it. Thus far, we have successfully retrieved screenshots from a conversation. Herein lies the second segment of this crucial exchange. Your task: unveil the identity of the patent filer, a pivotal piece in this intricate puzzle.
format : COMPLETE NAME
example : JEAN MICHEL DUPONT

和訳(DeepL)

Lucilheの暗号化された電話の復旧は操作において突破口となった。技術者たちが重要なデータを抽出するために働いている。会話のスクリーンショットの回収に成功した。この重要なやりとりの2つめのセグメントをここに示す。君の課題:この複雑なパズルの鍵となる特許申請者の身元を明らかにすること。

メッセージを書き起こすと次のようになる。

Wiretapped one of their member communications and got: "Blue queen found patent GB1468526 that may be interesting. We must send someone to discuss with the target about how this device works". 09:43

Awaiting further instructions… 09:46

GB1468256とは英国の国コードが付いた特許の番号のこと。Google Patentを“GB1468526” で検索すると簡単にヒットするが、申請者の名前が出ていない(と思っていたが、今Abstractを読み返したらB R PALUCHと書いてあるのを発見した……)。
https://patents.google.com/patent/GB1468526A/en?oq=GB1468526

タイトルの"Respiratory or breathing device with means for absorbing carbon dioxide" で検索すると、Google Booksがヒット。ここにはPaluch BRという人名がでている。
https://books.google.co.jp/books?id=4puBvs02sQwC&pg=PA396&lpg=PA396&dq="Respiratory+or+breathing+device+with+means+for+absorbing+carbon+dioxide"&source=bl&ots=Du6I2iEUFN&sig=ACfU3U1-OHuJPXdAnfPyUkuqOupDUZVDeg&hl=ja&sa=X&ved=2ahUKEwi9kZ7Dk76FAxXlbPUHHYYzDP8Q6AF6BAgIEAM#v=onepage&q="Respiratory or breathing device with means for absorbing carbon dioxide"&f=false

検索していると、Bernard Paluch、Paluch Bernard Rなどの人名が浮上する。この人は他にも二酸化炭素関連の特許を持っているため、フルネームを突き止めればそれが答えであろう。formatでCOMPLETE NAMEを要求されているので、ミドルネームを略さずに書いた資料を発見する必要がある。
https://patentscope2.wipo.int/search/en/detail.jsf?docId=US36718729&_cid=JP1-LUXHOP-10919-1
https://www.atsjournals.org/doi/abs/10.1164/arrd.1984.130.3.532?journalCode=arrd

最終的に、Google Booksを人名で検索して出てきた資料にBernard Richard Paluchの名前が見つかる。発明の内容、年代が合っていることから、この人がFlagと確信し提出したところ正解だった。
https://books.google.com/books?id=ki5RAQAAMAAJ&pg=PA4725&lpg=PA4725&dq="Bernard+Richard+Paluch"&source=bl&ots=PBO0_2HKm5&sig=ACfU3U0u6rJFvYO_hmFbbcuUS3OJ53bJ-A&hl=en&sa=X&ved=2ahUKEwiPidf8nb6FAxVFEDQIHfI_ByQQ6AF6BAgJEAM#v=onepage&q="Bernard Richard Paluch"&f=false

Flag: Bernard Richard Paluch

Paint her (62 solves)

After rigorous effort and intricate analysis, the forensics team successfully decrypted the notes stored within the telephone. Here's one of the notes we discovered:

Here is what I found about them : They think art is a waste, but can be useful to make money. Here is their next target, they want to steal it and sell it on black market

Your assistance is crucial in our investigation. We rely on you to uncover the name of that painting, as it holds crucial significance in identifying their targets.

format : Painting Name
example : La Joconde

和訳(DeepL)

厳密な努力と緻密な分析の結果、鑑識チームは電話機に保存されていたメモの解読に成功した。これがそのメモのひとつである:

彼らは芸術を無駄だと考えているが、金儲けには役に立つ。彼らの次のターゲットは、これを盗んでブラックマーケットで売ることだ。

私たちの捜査には、皆さんの協力が不可欠です。その絵画の名前を明らかにすることが、彼らのターゲットを特定する上で重要な意味を持つからです。

添付の画像のタイトルを答える問題。Googleレンズで検索すると、絵の主題は“(The Fall of)Christ on the Way to Calvary” という新約聖書の場面で間違いない様子。
絵から情報を取り出そうとするが、あまり特徴のない保守的な絵なので年代も地域もうまく絞れなかった。一度「The Fall of Christ on the Road to Calvary」を試すもIncorrect。
17世紀イタリアくらいかな?とあたりをつけてオークションサイトでキリスト教絵画を検索する等していたが、Googleレンズがデフォルトで提供している「画像の意味内容の推定」モードではなく、画素の一致度で検索するオプションを有効にするとニュース記事が2件出てきた。

実際に盗難された方の線はあまり考えていなかった…。
https://www.telegraph.co.uk/culture/art/10267122/Sacred-art-stolen-from-Andean-churches.html

Flag: Jesus con la Cruz a Cuesta

枠がトリミングされていたが、人の配置などの構図をよく見ると、すぐ外に枠がある=見えている部分がほぼ作品の総体であることがわかったかもしれない。

Connect her (60 solves)

After rigorous effort and intricate analysis, the forensics team successfully decrypted the notes stored within the telephone. Here's one of the notes we discovered:

  • Address: 263 Rue de Châteaugiron, 35000 Rennes, France
  • Use: Datacenter/communications
  • Responsible: Marine Scout
  • Affiliation: Indigo

The described facility seems important because of its intended use. We require it to establish a means of surveillance. Find the OSM node of the fiber concentration point linked to this place.

example : 1553917944

和訳(DeepL)

厳密な努力と緻密な分析の結果、フォレンジックスチームは携帯電話に保存されていたメモの解読に成功した。発見されたメモのひとつを紹介しよう:

  • 住所 263 Rue de Châteaugiron, 35000 Rennes, France.
  • 用途 データセンター/通信
  • 責任者 マリンスカウト
  • 所属 インディゴ

説明されている施設は、その使用目的からして重要だと思われる。監視手段を確立するために必要だ。この場所にリンクしている光ファイバー集中ポイントのOSMノードを探してください。

素直に示された住所を見に行くと、確かに建物がある一方で、名称などの情報はGoogle Mapsでは確認できない。

https://maps.app.goo.gl/51b287K3qScdBWEa8

「OSMノード」とは、OpenStreetMap(OSM)のNodeのことだと推測できる。Fiber concentration point(光ファイバーが集約されている場所)の調べ方は思いつかないが、最終的にOSMの情報を使って回答するということは、OSMから自動で情報を抽出できるOverpass API(のWebツールであるOverpass Turbo)を活用するのではないかと推測できる。

※ Overpass Turboは、前回のHEXA OSINT CTF v2でも終盤の問題 "Final Countdown"を解くのに有効だった

https://overpass-turbo.eu/

そこで、Overpassで光ファイバーの情報を見つけられないのか検索すると、telecom:medium=fibreなるタグがあることが分かった。国によっては、道路にある光ファイバー機器の位置がOSMに掲載されているようである(日本にはなさそう)。

https://wiki.openstreetmap.org/wiki/Tag:telecom:medium%3Dfibre

そこで、下のようなクエリを作って問題文の住所付近を対象に問い合わせると、2つのNodeが地図上にマークされた。

[out:json][timeout:25];
nwr["telecom:medium"="fibre"]({{bbox}});
out geom;

このうち、問題の建物に近いのはNode 6376633470 の方。リンクしているかどうかは定かでないが、最寄りということでFlagの可能性が高いと判断し、提出したところ正解だった。

https://www.openstreetmap.org/node/6376633470#map=19/48.09364/-1.63455

なお、この地点の光ファイバー機器はGoogleストリートビューを見に行けば写真でも存在が確認できる。

Flag: 6376633470

Propel her (56 solves)

After rigorous effort and intricate analysis, the forensics team successfully decrypted the notes stored within the telephone. Here's one of the notes we discovered:

I've recognized a military aircraft equipped with dual propellers, three landing gears, with one positioned beneath the nose, wings affixed to the fuselage midpoint, a horizontal stabilizer attached to the rear fuselage and a unique vertical stabilizer. It's quite sizable, measuring over 30 meters in length.

todo : identify plane

It appears that they possess considerable resources.

Please identify the airplane type. We would like to question the owners of such an airplane.

format : Airplane type
example : Airbus A380

和訳(DeepL)

厳密な努力と緻密な分析の結果、フォレンジックスチームは携帯電話に保存されていたメモの解読に成功した。発見されたメモのひとつを紹介しよう:

二重プロペラ、3つの着陸装置(1つは機首の下に位置する)、胴体の中間部に固定された主翼、後部胴体に取り付けられた水平安定板、ユニークな垂直安定板を備えた軍用機であることがわかった。全長は30メートルを超える。

任務:機体の特定

かなりの資源を保有しているようだ。

飛行機の種類を特定してください。このような飛行機の所有者を尋問したい。

この問題も苦戦してしまった。
dual propellersというと二重反転プロペラのことだろうか……?二重反転プロペラの軍用機というと、旧ソ連の航空機が思い浮かぶ。Tu-95はその代表格だが、これはソ連やロシアが用いる巡航ミサイルや核爆弾による攻撃を行う戦略爆撃機であり、フィクションであっても犯罪組織が保有しているとは思えない。

ということで、犯罪組織が保有していそうな二重反転プロペラの軍用機として真っ先に思い浮かんだAntonov An-22(輸送機)を自信満々で答えるもincorrect。投げやりでTu-95を答えるも続いてincorrect。

運営に「Flagが通らないのは誤りではないか」と問い合わせるも、それらは4発であって"dual propellers"ではないとのことだった。つまり、双発の航空機でないとFlagの条件を満たさないようであった(二重反転プロペラを意味していたわけではない)。

その後、条件に合う軍用機を探すも見つからず途方に暮れ、Chill Modeに突入する。

Propel her - Chill Mode

問題文の "Please identify the airplane type."が鍵であるという。

“identify aircraft”とシンプルにGoogle検索して見つかる航空機検索サイト "Aircraft Recognition Guide" で絞ることを想定しているとされた。
https://www.aircraftrecognitionguide.com/

双発で、機首に降着装置があるといった条件で絞り、機体全長が30mを超えるものを探すと、フランス製の対潜哨戒機 ""Bréguet Atlantic" がヒットし、これがFlagとなる。

Flag: Bréguet Atlantic

今回は航空オタク(ryo-a)が深読みしすぎて失敗してしまった感じがある。
しかし、犯罪組織がなぜ対潜哨戒機を保有しているんですかね……?敵対組織に潜水艦があるんでしょうか……?

Drive her (53 solves)

Our forensic team has achieved a new breakthrough, successfully extracting a video from the phone. To ascertain the identity of the individual speaking in the video, we aim to reach out to potential witnesses who might have encountered him.

Please find the phone number of a location where this person is likely to have passed through.

format : +331234567890

和訳(DeepL)

我々の科学捜査チームは、携帯電話からビデオを抽出することに成功し、新たな突破口を開いた。ビデオで話している人物の身元を確認するため、その人物に遭遇した可能性のある目撃者に接触することを目指しています。

この人物が通りそうな場所の電話番号を探してください。

https://www.youtube.com/watch?v=03U5sGV8LoI

運転中に“私はとてもお腹がすいています。次の休憩所に立ち寄ってみましょう”と完璧な日本語で喋っている動画が出てくる。
ちなみにBGMはHEXA OSINT CTF V2で登場したLEMONADE (bonobos)である。

読み取れる標識には「A20 357」と書かれている。

福岡県出身者で固められたチーム内では「西鉄バスのバス停みたいなやつ」という声が上がる(当然そんなはずはない)。
https://pixta.jp/photo/95551206

すんなりと国を判断できないでいたところ、Google Lensを用いて冒頭に写り込むトラックがフランスのTeam da Silvaのものであると特定された。
http://elsassroutman68.centerblog.net/115600-team-da-silva

これよりフランスであると推測され、”A20 Autoroute” で検索すると似たようなキロポストの画像がヒットすることで確信に至る。

先ほどの「A20 357」は、A20 Motorwayの起点から357km地点を意味していることがわかる。

英語版Wikipediaの記事には各インターチェンジのキロポストが書いてある。これを参考にすると、「A20 357」は348km地点のCahors-Nordと371km地点のCahors-Sudに存在すると判断できる。

Cahors-Nordから南下すると、 44.484316, 1.500444 付近が動画の撮影位置であると分かる。
また、周囲の景色から、動画は北に向かってドライブしていることも判断できる。

さて、“私はとてもお腹がすいています。次の休憩所に立ち寄ってみましょう”という発言を考えると、この地点から北に向かって一番最初にあるサービスエリアのレストランの電話番号が答えになると推測される。

フランス語版Wikipediaで確認すると、Aire de service Jardin des Causses du Lotが最寄りのサービスエリアだとわかる。

だが、そのサービスエリアには4店舗以上の複数の飲食店が入っている。
https://www.vinci-autoroutes.com/fr/aires-et-services/a20/aire-de-jardin-des-causses-du-lot/

ドライバーが「肉が食べたい」とか言っていれば良かったのだが、「お腹がすいた」としか言っていない。つまり、食品が販売されている店をすべて考慮する必要があるのではないか。そうなると、3回の解答回数制限を使い果たしてしまう。

しかし、ある店舗に割り当てられている+33565300222という番号はこのサービスエリアにある他の店の情報でもヒットすることが分かった。
https://www.tripadvisor.in/Restaurant_Review-g1080513-d24975152-Reviews-L_authentique_Steak_n_Shake-Labastide_Murat_Lot_Occitanie.html
https://www.truckfly.com/fr/poi-details/avia-aire-jardins-des-causses-du-lot/11264/

おそらく店舗間で共有されている番号ではないかと判断して解答したところ、無事正解であった。

Flag: +33565300222

Sum her (53 Solves)

The technicians have successfully retrieved a photo from the phone. It seems to be about a location. please attempt to locate this place.

format : Place Name
example : Central Park West Hostel

和訳(DeepL)

技術者が携帯から写真を取り出しました。ある場所に関係しているようです。特定してみてください。

地図の画像がそのまま渡されたが、地名が書かれていないため、まずはどの場所なのか特定する必要がある。blackwasanによって十数分でスペインのバルセロナ地方の地図であることが突き止められた。すごい。

(blackwasan補足)
海岸線は有限です。今回は舞台がフランスなので、まずはフランスの地中海沿岸を探しました。結果見つからなかったので、モナコ周辺へ移動→見つからないのでそのままスペインへ移動して探していたら見つかりました。海岸線が北東から南西へ伸びていることと、道路のネットワークからして、ある程度縮尺が小さい地図なので、世界地図レベルの解像度で当たりが付けられました。

次に、地図に書いてある内容が手がかりとなる。原文はスペイン語なので、英語に機械翻訳して内容を確認した。

(原文)Hotel
Entre el mar a 150m Y la muerte a 60m
Espere al objetivo en el apartado de correos a 10 metros de distancia

(English) Hotel
Between the sea at 150m and death at 60m
Wait for the target at the post office box 10 meters away

(日本語に意訳)ホテル
海と死の間で、海から150m、死から60m
10メートル先の郵便ポストでターゲットを待て

海と郵便ポストは理解しやすいが、“muerte”がなんの場所を示すのかすぐには不明であった。
チームメンバー間では、

  • muerteという名前、あるいはmuerteを名前の一部に含む場所
  • 死に関係する場所、例えば葬儀場や墓地

と複数の意見が出たが、決定打に欠けるため他の情報から探すことにした。海岸線や郵便ポストからの距離で絞り込むというのが課題なので、Connect herに続いてOverpass Turboを活用する。

様々なクエリを試し、最終的には次のようなコードで3つの候補地点が得られた。これは海岸線から150m以内にあるホテルを抽出し、さらにそのホテルから100以内にある郵便ポストを抽出する(問題文では10mだが、結果が0件だったため距離の制約を広めにした)。

[out:json][timeout:25];
way["natural"="coastline"]({{bbox}});
node(around:150)[tourism=hotel];
node(around:100)[amenity=post_box];
out body;
>;
out skel qt;

このうち、南西側にある場所を拡大していくと、すぐ北側にCementeri(墓地)のあるホテルを見つけた。muerteとは墓地のことを示唆しているのではないか? 距離を計測できるサービスで確認すると、墓地の入口から約60mであることも確認できる。

https://maps.app.goo.gl/xoTSKdHGHzSsrknQ7

また、Googleストリートビューや航空写真から、ポストがホテルの建物から10mほどの場所にあることも見て取れる。そこで、このホテルの名前を回答して正解した。

Flag: Hotel RH Corona del Mar

Category: The entity

Business card, Lunch time, Phone をすべて解くとこのカテゴリが出現する。

Kermit (32 Solves)

Thank you for your efforts. Here's what we've uncovered thus far: Alíz Lamp has an alibi, which we confirmed with your assistance. She was not present on the day of the crime. Based on the information found, it doesn't appear worthwhile to proceed with the investigation concerning her. Conversely, based on the evidence we've gathered, Barbara appears to be the prime suspect. However, we lack concrete proof. Additionally, you have found relevant information about the sponsors of the Bruised Rogue mission. Tsuzune Yokoyama appears to be part of a significant organization.

Regrettably, we haven't been able to use this information effectively thus far. One of our contact had information about them, but even if it may be possible, on our end, we haven't managed to reach him.

Fortunately, an unidentified source has just sent us this message:

"My name is Kermit and I might have some information you could use. It seems that we are investigating the same group. I'm highly convinced they're responsible for Lucilhe's murder. I have tracked individuals affiliated with this organization to the coordinates: 50.095239, 6.7509299. A football association seems to have been based here, but that has changed. I believe you will know how to use this information effectively."

Could you identify an organization situated at these coordinates?

format : OrganizationName LegalStatus
example : Carrefour S.A.

和訳(DeepL)

ご苦労様でした。これまでに判明したことは以下の通りです: アリーズ・ランプには アリバイがあり それを確認しました 犯行当日 彼女はいなかった これらの情報から、彼女に関する捜査を進める価値はないと思われます。逆に我々が集めた証拠からバーバラが第一容疑者のようだ。しかし、具体的な証拠が不足しています。さらに、"Bruised Rogue "ミッションのスポンサーに関する関連情報を発見した。ツヅネ・ヨコヤマは重要な組織の一員であるようだ。

残念なことに、我々はこれまでこの情報を有効に利用することができなかった。我々のコンタクト先の一人は彼らに関する情報を持っていたが、可能性があるとしても、我々の方では彼と連絡を取ることができなかった。

幸い、正体不明の情報源からこんなメッセージが届いた:

「私はカーミットと申します。我々は同じグループを調査しているようだ。ルシルエ殺害は彼らの仕業だと確信している。この組織の関係者を追跡した結果...座標は..: 50.095239, 6.7509299. サッカー協会がここに拠点を置いていたようだが、今は変わっている。あなたならこの情報の有効な使い方がわかると思います」。

この座標に位置する組織を特定できますか?

フォーマット:組織名 法的地位
例:Carrefour S.A.

座標をGoogle Mapsで確認するも、ストリートビューがない。
住所がAuf'm Stamp 9, 54531 Meerfeldであることを確認し、現地の登記簿などを確認するも特に得られるものはなかった。
https://www.handelsregister.de/rp_web/erweitertesuche.xhtml

また、その住所に関連する人物の名前や、以前住んでいたと思われる故人のお悔やみに関する情報などがヒットするも、特に得られるものはなかった。

この問題に到達した時点で残り3時間程度であり、ここで詰まってしまうと進めないのでChill Modeに突入した。

Kermit - Chill Mode

HEXAチームから「このようなケースでは、デジタルフットプリントを確認するとよい。WiGLEなどを使うと得られる情報がある。」というヒントが与えられた。

ということでWiGLEを確認すると、確かにbioregened europeというSSIDがヒットする。
ここからbioregened.euというドメインを連想し、そのサイトにアクセスするというのが想定ルートらしい。

https://bioregened.eu/ にアクセスすると、ページ下部に組織名が表示されている。
ちなみに e. V. は登録社団を意味するドイツ語である。

Flag: Bioregened e. V.

This is where the fun begins (28 Solves)

You've done well. It's time to examine the activities of this association. Could you confirm the accuracy of the information shared on the blog?

For each article, tell us if it contains false information or not.

format : F for Fake or A for Accurate, in chronological order of the articles (first letter for the oldest article)
example : FFFFA
Warning : Only 2 tries

和訳(DeepL)

よくやった。この組織の活動を検証する時が来た。ブログで共有されている情報の正確性を確認していただけますか?

それぞれの記事について、誤った情報が含まれているかどうかを教えてください。

フォーマット 記事の時系列順に、Fake(偽)またはAccurate(正確)を表す。

例 FFFFA

警告 : 試行は2回のみ

上記Kermitを解くと、この問題がアンロックされる。
Bioregenedのブログに掲載されている記事5本をファクトチェックせよという興味深い内容である。
https://bioregened.eu/index.php/blog/

ただ、我々がこの問題にたどり着いたのが月曜の深夜2時台ということもあり、起床しているのはryo-aの1人だけという状況であった。

1人で眠気と戦いながら残りの問題を処理することも鑑みると荷が重く、時間を短縮するために一旦記事をChatGPTに放り込み、怪しい部分を手動で洗うという戦略を取った。
以下に分析結果を示す。

  • 記事「The origins and essence of Ecology」
    • 正しい(フェイクはない)
  • 記事「The Resilient Spirit of Greenpeace」
    • 誤り
    • ChatGPTが、「環境保護団体Greenpeaceのボランティア数」に関する記述は確認が必要と指摘
    • 手動で確認したところ、https://www.greenpeace.org/international/ の記載内容と齟齬がある。
  • 記事「The Dangers of Methane Emissions」
  • 記事「Unveiling the Plight of Seabird Endangerment」
    • 誤り?
    • 「シャーク・ベイにおいて絶滅の危機にある海鳥は7種類あるとWWFが報告している」と記述があったが、WWFのソースが見つけられなかった
  • 記事「China’s CO2 Emissions: A Ticking Time Bomb for Global Climate Catastrophe」

最初、Greenpeaceの人数を見落としていたので AAFFF でFlagを提出したが通らず、それを修正して AFFFF としたが、Flagが通らずに詰まってしまい、Chill Modeを要請する羽目になった。

This is where the fun begins - Chill Mode

WWFによるソースがあるとのこと。
https://globil-panda.opendata.arcgis.com/datasets/a9b0aa932cc543178729259ebfea8843_16/explore?location=-26.320463%2C137.046950%2C5.22

それ以外は正解だった模様。惜しかった……。

Flag: AFAFF

No. I'm your father (20 Solves)

Thanks to your work, we have the feeling that this association is hiding something. Despite conducting further investigation on our side, it has led to no valuable insights. To proceed, we need to gather more information through a complementary technical analysis (stay passive) on their website, and thus, we aim to identify another individual holding responsibilities within this association.

format : Pseudonym
example : Darth Vader
Note : 5 tries

和訳(DeepL)

あなた方の仕事のおかげで、この協会が何かを隠しているような気がしてきた。私たちの側でさらに調査を進めたにもかかわらず、貴重な洞察は得られなかった。今後、この協会のウェブサイトを補足的にテクニカル分析(passiveな手法に留めること)することにより、より多くの情報を収集し、この協会内で責任を担っている別の個人を特定する必要がある。

BioregenedのサイトはWordPressで作成されている。

WordPressということで、sitemapや投稿者のIDなどから意図せず情報が漏洩していないか確認したり、Whoisの履歴を確認したり、Wayback MachineやArchive.todayを確認したり、一通りの手法は色々試してみたが手掛かりが見つからなかった。

ここで何か試してない手法やツールはないだろうかと再確認していたところ、OSINTツール一覧からurlscan.ioの存在を思い出した。

この結果はpublicになるという点に注意が必要である。
つまり、スキャンを実施したURLの記録は一般に公開される。そのため、機密を含むURL(クレデンシャルを含んでいたり、外部に露出してはいけないものなど)をスキャンしてはならない。
実際に、スキャン記録から機密が漏洩しているケースも存在する。
https://gigazine.net/news/20240308-publicly-access-private-secure-links/

公開されているスキャン記録は検索ページから確認できる。
https://urlscan.io/search/#bioregened.eu

すると、その中に “combo.bioregened.eu” という見慣れない(BioregenedのWebサイトにはリンクされていない)サブドメインが確認できる。"Despite conducting further investigation on our side"という問題文を鑑みると、何らかの調査が先立って実施されていたということだろうか。

ここにアクセスすると、組織に関する詳細情報が書かれたページが見つかった。

問題文で"it has led to no valuable insights"と言われているので身構えるが、この中に名前らしいものは1つしかない上、試行回数が5回もあるのでダメ元で試してみると、これが答えだった。

Flag: Azure Scout

ページが判明すると一瞬でわかる(5回も試行する必要がない)ため、もしかすると想定ルートは別だったのかもしれない。

The discovery you've made is quite intriguing. It might be worthwhile to attempt contacting them for further information. please start by finding a way to reach out.

format : e-mail address
example : mail@example.com
Note : 5 tries

和訳(DeepL)

あなたが発見したことは非常に興味深い。さらに詳しい情報を得るために、彼らにコンタクトしてみる価値はあるかもしれない。

メールアドレスを探せという問題。

Archive.todayからBioregenedの過去のバージョンを参照する。
https://archive.md/https://bioregened.eu/

ここのcontact usのリンクが最新のページでは無効になっているが、4月9日に記録されたバージョンでは join892849@bioregened.eu というメールアドレスが確認できる。

実は前問のNo. I'm your fatherを探る段階でアーカイブを探索していたため、この問題がアンロックされてから即座に解答できた。

Flag: join892849@bioregened.eu

これも答えが明瞭にも関わらず、試行回数が5回になっている。理由はわからない。

ここで時間切れを迎えてしまった。
この後にはHUMINT問題が続いており、メールを通じて接触することで情報が得られるというものだったらしい。

所感など

(ryo-a)

まず、週末まるごと費やす48時間のハードなCTFに2年連続で参加してくれたチームメンバーに感謝を申し上げたいです。自分には思いつかない解法や手法を続々と出してくれたチームメンバーがいたからこそ、楽しみながら日本勢としての上位を達成できたと思います。(もし1人だと、冗談抜きに1問目の分子モデルの画像で詰んでいた可能性が高いです)。

他方、自分の戦略や時間配分ミスや力不足が目立ってしまった部分もあり(航空機問題で時間を費やしてしまったり、Chill Modeを使うタイミングが遅くなったなど)、前回の7位と比べると順位が落ちてしまったことは非常に悔しいと感じています。引き続き、楽しみながらトレーニングを積み重ね、またフランス勢と互角に戦えるようになりたいと思っています。

また、開催中は常に順位表をチェックしていたのですが、前回に比べて日本勢が増えていたように感じています。中にはOSINT CTF初参加の方もいらっしゃったようで、非常に嬉しく思っています。さらに、終了後に皆さんとオンライン振り返り会を実施でき、日本のOSINT CTFプレイヤーのコミュニティが今回のHEXA OSINT CTFを通じて、より強固になったのではないかと思っています。今後も切磋琢磨し、日本のOSINT CTFコミュニティが世界で存在感を示せるとよいですよね。

最後に、素晴らしいCTFを運営してくださったHEXAのお三方(ALSさん、IWHさん、TheBaboonさん)にお礼を申し上げたいと思います。
Merci du fond du coeur, HEXA Team!

Discussion