(私のスコアボード。ブルートフォースしすぎました...)
目次
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のサーバが公開されました!
Open xINT CTF、参加登録開始しました。ゲームは10時スタート。奮って登録お願いいたします! http://133.242.156.137:2021/ #avtokyo
— pinja (@pinja_xyz) 2021年10月23日
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/
なお、過去の参加報告は↓にまとめています。
write-up
問題は7カテゴリ23問あります。私はそのうち5問正解しました。
全問題はスコアサーバにアカウントを作成すれば閲覧、解答できます。スコアサーバのURLはavtokyoのdiscodeのxint-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: 西原
余談: 解答の後の運営の方のコメント
たぶんね、ブルートフォースするよりも、検索を楽しんだ方が旅情感あると思うし、効率もいいと思うんだけどw
— awamori (@awamori_tt) 2020年10月31日
すみません、少しでも早くポイントが欲しかったので余裕がなかったです^^;
[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.onion
のnslookup
方法をしらべたり、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が記載されていました。このポイントをもとにしていけばいいと思いました。しかし位置座標のとり方がわからなかったので2、wikipedia 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が充実
- チームを組んでみたかった
- 問題数が多い
- 去年は10問だったのですが、チームOKだったからか今年は倍以上になりました。1人では解ききれないと思いますが、問題が多い分だけ解ける問題も増えました。
- バス問題ガチ勢の存在感
- 去年もそうでしたが、獲得ポイント最高(故に最難の)バス問題を解くことを至上命題とするかのような猛者が大勢参加されたように見受けられます。時間内に解けた人が9人もいました。他の問題でも3人くらいしか解答できていないのですが...戦慄しました。
- 総評
- 初心者でも楽しめて、かつ技術介入度も高く順当に(=変にまぐれ当たりで上位にくることはない)順位が決まるので、よく練られた問題設計だなぁと感じました。
- 私はセキュリティの専門ではないですが、そのような者から見てxINT CTFは知識無しでもとっつきやすいと思っています。他のCTFジャンルだと前提知識(例えばweb問はwebサーバーの知識、binaryはアセンブリ言語)と問題を解くための知識運用力を身につける必要があり、実際のコンテストで問題が解けるまでに修練を要します。一方で、xINT CTFは検索さえできれば始めることができます。
- もちろん、「OSINT技術を知っていないと絶対に解けないだろう」という問題もありますが、一方で頑張ればこじ開けられる問題もあるので「難しい、けど解ける。だから楽しい。」といった成功体験を得やすいです。
- 誰にでも門戸が開かれつつ、強い人のwrite-upを見てOSINTの奥の深さを学べるので、説明文にある"スパイ養成コンテスト"は言い得て妙だと思いました。
改めて運営チームの方々に今年も開催していただけたことを感謝申し上げます。次回の開催を願ってOSINTのスキルアップに励みます!
付録
事前対策
①まず、過去問を見直しました
- 2016
- 2018
- 2019
②また、運営メンバーはTwitterでときどきヒントのようなつぶやきを非公式にあげるので、下記の方々からなるTwitterのリストを用意しました。
- pinjaさん (@pinja_xyz)
- luminさん (@lumin)
- awamoriさん (@awamori_tt)
- ykameさん (@YuhoKameda)
- mage(まげ)さん (@mage_1868)
- seraphさん (@Seraph39)
③加えて、開催の数週間前に、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 |
同じ問題でも解き方が異なっていて面白いですね。