meowの覚え書き

write to think, create to understand

スパイ養成コンテスト!! Open xINT CTF in AVTokyo 2020 write-up と 参加した感想

(私のスコアボード。ブルートフォースしすぎました...)

目次

Open xINT CTFはコンピューターセキュリティのオフラインカンファレンスイベントAVTokyo内の1イベントで、インテリジェンス能力を競うコンテストです。主催はTeam pinjaです。
今年は10月31日に開催されました。前年度に初参加してみてとてつもなく面白かったので、次回開催される日を心より待っていました。
出題ジャンルは例年は現地ならではのSIGINT問やHUMINT問がありますが、今年はAVTokyoがオンライン開催だったこともあり、全問OSINTからの出題でした。

私はチーム名test、ユーザ名emowtetでソロ参加しました。今年は3位に入賞するのが目標で、ふざけたHNが入賞していたら面白いかなと思ってこんな名前にしました。
その結果、700ptで17位(/152チーム)でした。入賞しませんでしたし、HN芸は1位の方がやってのけた感があるので、次回があるならば普通のHNで登録します。

本記事では、私が解けた問題の答案(write-up)を共有します。付録として私の事前対策と他の方々のwrite-up一覧を載せました。


スポンサードリンク

お知らせ(2021年10月23日更新)

xINT CTFのサーバが公開されました!

2021年度のOpen xINT CTFは10/23(土)に開催されます!

  • 参考: AVtokyo2021内のアナウンス
    • 2020年と同じく、参加費無料、オンライン、全てOSINT問、3人までチーム可能です。
  • 参加方法:
    • Open xINT CTFにご興味のある方は、10/23(土曜日) 9:00ごろまでに、
    • AVTokyoに参加登録(AVTokyoのDiscordサーバへ参加)し、
    • Discordに参加した後は、#xint-ctf-generalという名前のチャットルームに集まります(2021/10/21の時点ではまだチャットルームはできていません。)
    • xINT CTFのサーバにアクセスします http://133.242.156.137:2021/

なお、過去の参加報告は↓にまとめています。

meow-memow.hatenablog.com

write-up

問題は7カテゴリ23問あります。私はそのうち5問正解しました。
全問題はスコアサーバにアカウントを作成すれば閲覧、解答できます。スコアサーバのURLはavtokyoのdiscodexint-ctf-generalチャンネルのヘッダを御覧ください。サーバはおそらく11月までの稼働だと思うのでお早めに試されることを推奨します。
(2021/01/23追記)
xINT CTFの問題サーバ3年分が公開されました! 2018年: http://49.212.212.72:2018/
2019年: http://49.212.212.72:2019/
2020年: http://49.212.212.72:2020/
2021/04/04現在、サーバにアクセスできなくなっています。

それでは答案を1つずつ見ていきます1

[BUS] Easy Bus 200

とりあえず、手がかりになるものはないか画像内に映っているものをズームします。

ポールに「山形県」、看板に「ふくの湯」とかいてあるので、検索しました。
すると、場所がヒットしました。あとは、バス停を探すのですが、ふくの湯の近くをストリートビューで調べてもバス停が見つかりませんでした。したがって別の情報を使って解くしかないと判断しました。
尾花沢市のバスを調べると、尾花沢市路線バス時刻表が見つかりました。多分、ここのpdfのバス停のどれかだと踏みました。
そこで、画像内に〇〇温泉というカーペイントがされているバスがあるので、「山形県 温泉」で検索すると銀山温泉というものがあることがわかります。
あとは、銀山温泉へ行くバスを調べればよいのですが、ちょうど銀山線というものがあるようです。 あとは、pdf内のバス停名を総当りでsubmitし、答えを見つけました。

flag: 西原

余談: 解答の後の運営の方のコメント

すみません、少しでも早くポイントが欲しかったので余裕がなかったです^^;

[DarkWeb] Easy Onion 100

私のダークウェブの理解度はほぼ皆無で、耳にしたことこそあれど、実際は何なのか全くわからないレベルです。
ポイントは100ptと少なめなので、頑張れば解けるかもしれないと思い、とりあえずTorをインストールしてみました。

u6ra3igsfurmotk2.onionをTorのフォームに入力すると、一応ページが出てきます。このサーバのipアドレスを突き止めるわけですが、どうやればいいかわかりませんでした。

とりあえず見出しのBIANCO - Plateforme de dénonciation anonyme sécuriséeという単語でchromeで検索すると、大元のhttps://bianco-mg.org/というフランスのサイトが見つかります。内部告発を支援する組織のようです。そのページの中に匿名フォームを用意する主旨で上述のダークウェブへアクセスする手順の載ったページが見つかりました。
このwebサーバがそうなのではないかと思って、$ nslookup bianco-mg.orgで出てくるipをフラグとして提出しましたが不正解でした。

その後は、u6ra3igsfurmotk2.onionnslookup方法をしらべたり、Tor Circuitのipを打ち込んだりといった無知ムーブを繰り返しました。

考えあぐねていましたが、chromeの翻訳機能を使いながらhttps://bianco-mg.org/ブラウジングしていた所、このページからhttps://doleances.bianco-mg.org/というページに行けることがわかりました。このページはTorで見たのと同じレイアウトをしています。

試しに、$ nslookup doleances.bianco-mg.orgした結果を打ち込んだ所、正解しました。

flag: 51.15.97.245

[BASIC] WHOIS 100

問題名の通りですが、$ whois pinja.xyzと叩けばすぐに解けます。
whoisコマンドを使う問題はいつも出題されており、xintctfにおけるwelcome問題の位置付けですね。

フラグ: 2020-10-27T03:28:00.0Z

[BASIC] Aaron 200

まず、兄弟の名前"Aaron Ruben Mordechai"で検索をします。するとBarnett finally closes on $11M Noho portfolioという記事が見つかります。これによると父親のportfolioを巡って3人が争っていたことがわかります。したがって、本名はAaron Muschelということがわかります。
続いて、詐欺事件を検索したいので、"Aaron Muschel fraud New Jersey"で検索します。
すると、Convicted Ponzi-Schemer Indicted On New Fraud And Other Chargesというのがトップに見つかります。ここでテック企業というのがFacebookだというのがわかります。このページに出てくる弁護士の名前をフラグとして提出してみましたが、どれも不正解でした。
2番目の検索結果として、同じような内容のFBIのページが見つかります。しかし、ここにも弁護士の名前は見つかりませんでした。しかし、このページの最後にThis content has been reproduced from its original source.と書いてあり、ニュージャージー州の司法省のサイトへ飛びます。ここの検索フォームで、"Aaron Muschel"と検索すると、Three Arrested, Charged In New Jersey For Multimillion-Dollar Fraud Offering Phony “pre-ipo” Facebook Sharesというページがヒットします。ページ一番下にDefense counselが載っており、そこのAaron Muschel担当の人がフラグでした。

フラグ: James T. Moriarty

[MAP] CG 100

画像リンクはこちら

画像を見た感じ、北朝鮮っぽいなと感じたのですが、URLのドメインがkpなので北朝鮮で確定です。問題は、背景に見えるパフェのような塔と、円盤のついた建物がどこか、なのですが、全く検討が付きませんでした。
とりあえず、ポータルのhttp://www.friend.com.kp/に行き、写真を紹介している場所を探しました。もとのURLからおそらく2019年7月だろうと思い画像ライブラリのバックナンバーをたどりました。その結果、このページで画像が使われていることがわかりました。"Mirae Scientists Street"というタイトルでした。
とりあえず、Mirae Scientists Streetで画像検索すると、パフェのような塔が検索に引っかかり、wikipediaから塔の名前がMirae Unha Towerという名前であることがわかります。
あとはGoogle Mapで"Mirae Unha Tower"で検索して近くの建物を探して終了と思ったのですが、北朝鮮なのでGoogle Mapにインデキシングされていません。

どうするか考えたのですが、Mirae Unha Towerのwikipediaページにはmapが記載されていました。このポイントをもとにしていけばいいと思いました。しかし位置座標のとり方がわからなかったので2wikipedia mapとGoogle Earthを左右に並べて、位置を照らし合わせる行為を行いました。

Mirae Unha Towerの位置をGoogle Earthで特定した後は、円盤のついた建物を見つけ、後は撮影されてそうな位置を総当りで試して正解しました。

フラグ: N38.995 E125.736

参加しての所感

  • 競争の激化
    • 前年度までは、CTFの参加条件がAVTokyo参加者だったこともあり、オンサイト(@渋谷)かつ入場料7,000円という参入障壁がありました。それに加えて、会場のwifiが繋がりにくかったり、パソコンの充電が切れないようにという心配をしながら解く必要がありました。また、オンサイトでアーカイブが残るかわからない中だと、メインホールの講演を聞きながら解かざるを得ず、パフォーマンスを思う以上に挙げられないということもありました。そのため、競争はxINT CTF専門で参加した方たち内の戦いだった気がします。
    • 一方今回は誰でも参加することができ、解くデバイスも用意し放題、また講演もweb配信なのでキャプチャなど使えば保存できることもあり、自分のリソースをCTFに十分に割くことができた方が多かったのではないかと思います。
    • そういう公平な条件でOSINT力が試されるので、必然的に上級者の方々が続々と上位に登られました。特にDarkWebカテゴリは顕著だったと思います。結果として当初楽観的に3位以内に入れると見込んでいた当てが外れました。
  • write-upが充実
    • 競争が激化した反面、競技人口が増えたメリットとしてwrite-upが大量に増えました。
      • 答案の共有があることで、参加者は他人の解答から学ぶことができ、スキルアップに繋げることができます。
    • 過去のxintctfのwrite-upは実はそれほどは多くみつかりません(付録の「事前対策」の項目参照)。したがって、問題の中には解き方はおろか答えすらわからないものもあります。一方今年は、多様な解答が数多く共有されていてOSINTの理解を広げることができました。
    • Discodeで振り返りの時間があったことも大きかったと思います3。テキストチャットに答えが続々投下されました。
  • チームを組んでみたかった
    • 今回はチーム参加が可能だったのですが、総ユーザ数は165で、総チーム数は152だったそうです。1.09人/チームなのでほぼソロ戦ですね。
      • 私はせっかくなので、ツイッターでメンバーをFF内外問わず募集してみましたが、うまくいきませんでした。
    • 各ユーザの回答状況を見てみると、解き方や解くジャンルがバラけていることがわかるので、組むと大きなインパクトがありそうだと思いました。
    • 今回は確かにソロが多かったですが、次回があるならば、オンサイトでの開催であったとしてもチーム参加OKであってほしいと思いました。
  • 問題数が多い
    • 去年は10問だったのですが、チームOKだったからか今年は倍以上になりました。1人では解ききれないと思いますが、問題が多い分だけ解ける問題も増えました。
  • バス問題ガチ勢の存在感
    • 去年もそうでしたが、獲得ポイント最高(故に最難の)バス問題を解くことを至上命題とするかのような猛者が大勢参加されたように見受けられます。時間内に解けた人が9人もいました。他の問題でも3人くらいしか解答できていないのですが...戦慄しました。
  • 総評
    • 初心者でも楽しめて、かつ技術介入度も高く順当に(=変にまぐれ当たりで上位にくることはない)順位が決まるので、よく練られた問題設計だなぁと感じました。
    • 私はセキュリティの専門ではないですが、そのような者から見てxINT CTFは知識無しでもとっつきやすいと思っています。他のCTFジャンルだと前提知識(例えばweb問はwebサーバーの知識、binaryはアセンブリ言語)と問題を解くための知識運用力を身につける必要があり、実際のコンテストで問題が解けるまでに修練を要します。一方で、xINT CTFは検索さえできれば始めることができます。
    • もちろん、「OSINT技術を知っていないと絶対に解けないだろう」という問題もありますが、一方で頑張ればこじ開けられる問題もあるので「難しい、けど解ける。だから楽しい。」といった成功体験を得やすいです。
    • 誰にでも門戸が開かれつつ、強い人のwrite-upを見てOSINTの奥の深さを学べるので、説明文にある"スパイ養成コンテスト"は言い得て妙だと思いました。

改めて運営チームの方々に今年も開催していただけたことを感謝申し上げます。次回の開催を願ってOSINTのスキルアップに励みます!

付録

事前対策

①まず、過去問を見直しました

②また、運営メンバーはTwitterでときどきヒントのようなつぶやきを非公式にあげるので、下記の方々からなるTwitterのリストを用意しました。

③加えて、開催の数週間前に、luminさんがSecurity Days2020にて"ビジネスOSINTでわかる様々なこと"という題で講演されていたので、そちらも視聴しました。

④あと、今年の時事問題が来るかなと予想し、Twitter裏アカウント特定問題が来た時にどうするかのイメトレをしていました。

2020年度の他の方々のwrite-up

私が確認できた範囲でwrite-upを書かれている記事を紹介します。見づらくすみません。o印は記事内で扱われている問題。discodeのチャンネルにも解答が投下されているので併せてご覧いただければと思います。

HN(敬称略) 記事URL
Easy Bus INSIDE BUS Easy Onion 🍳Kyoto-Cool #1 🍳Kyoto-Cool #2 🍳Kyoto-Cool #3 RAMEN DATETIME SUN No.1 No.2 No.3 No.4 No.5 WHOIS Need WiFi Speed Lover Super Easy Aaron Speed Lover Newbie made a mistake CG Star Gazer GATE
solve count→ 69 9 27 5 3 3 3 0 2 6 1 0 0 1 107 4 2 3 2 3 40 1 2
point→ 200 500 100 300 400 400 300 200 300 100 100 200 200 300 100 200 200 200 300 300 100 200 200
o o o o o
chappie https://chapp1e.hatenablog.com/entry/2020/10/31/233739 o o o o o o o
ak1t0 https://medium.com/@ak1t0/open-xint-ctf-2020-darkweb-write-up-17969075228e o o o
_(:3」∠)_ https://st98.github.io/diary/posts/2020-11-01-open-xint-ctf-2020.html o o o o o o o o o
Cyber_ken https://oniyan.hatenablog.com/entry/2020/11/01/085354 o o o o
taru https://github.com/tarugrimoire/Open-xInt-CTF-2020-Writeups o o
f0reachARR https://qiita.com/f0reachARR/items/1044d92b9a071ad564e8 o

同じ問題でも解き方が異なっていて面白いですね。


・『Open xINT CTF 関連ページ 非公式まとめ』へ戻る


  1. 答案だけ見るとスマートに答えを割り出しているように見えますが、裏では試行錯誤を繰り返した末にたどり着いていることを補足します。

  2. 記事を書いている時に気づいたが、普通に右下の"External maps"ボタンから座標を取得できる。

  3. ただ、私はDiscodeの使い勝手がわかっていなかったため、ずっとミュートになっていたようで、気がつけば音声チャンネルでの運営の方々による振り返りが終わっていたのが惜しい所でした。