Slide 1

Slide 1 text

最⾼難易度のOSINT CTF 『ReconVillage CTF』(2022) 参加報告 第22回 初⼼者のためのセキュリティ勉強会(オンライン開催) meow ( @meow_noisy) 2022/08/30(⽕) たぶん

Slide 2

Slide 2 text

背景 u 1年前 ReconVillage CTFに初参加 u →難しすぎて1問も解けなかった u 2022年もオンライン開催だったので チームを組んでリベンジすることにした https://speakerdeck.com/meow_noisy/rvctf2021- overwhelmed-me

Slide 3

Slide 3 text

おしながき u ReconVillage CTFとは u ReconVillage CTFに向けた対策 u 各チームメンバーによるCTFの解答過程の報告 u 私 u kmrrさん u okukenさん u ところてんさん u CTFふりかえり ※資料では割愛

Slide 4

Slide 4 text

ReconVillage CTFとは

Slide 5

Slide 5 text

Recon Villageとは u DEF CONのVillageの⼀つ u DEF CON u アメリカのラスベガスで毎年開催される、コンピュータや 情報セキュリティーに関係した世界最⼤規模のイベント。 u 引⽤: DEF CONとは - コトバンク u https://kotobank.jp/word/DEF+CON-1612587 u 今年は第30回。現地/オンライン 併催。 u Village u セキュリティの各トピックのコミュニティ u “XXX Village”という⾵にトピックを名に冠している u 今年のVillageリスト u https://forum.defcon.org/node/239770 u 右図は⼀例

Slide 6

Slide 6 text

Recon Villageとは u Recon u Reconnaissance; 偵察 u 標的型攻撃のサイバーキルチェーンの第⼀段階 u OSINTを⽤いて成される → Recon Villageは サイバーインテリジェンスの トピックが議論される場 画像引⽤: 標的型攻撃対策 - マクニカネットワークス https://www.macnica.net/solution/security_apt.html/

Slide 7

Slide 7 text

ReconVillage CTFとは u DEF CON期間中にReconVillageで開催されるCTF u 去年に引き続き今年もオンライン開催 u 今年の開催期間(JST) u 2022年08⽉13⽇(⼟) 02:00〜2022年08⽉14⽇(⽇)15:59 u トータル37時間59分 u チームは4名まで加⼊可能 u 参加者情報 u チーム数: (おおよそ) 140チーム https://twitter.com/OSINT_Tactical/status/1518228924030984192 4⽉の時点では現地開催の話もあった。 オンラインになってよかった。

Slide 8

Slide 8 text

去年との差分 u チームメンバ定員の減少 u 5→ 4⼈ u 1分短くなった u 例年 “12:00 AM”を昼だと勘違いする⼈が出ていた u 「あと12時間ある」と思って休憩しているうちに CTFが終了していたなんてことも u 個⼈的に良アプデ u 上位⼊賞者へ景品が出る u 現地参加者のみ。 u 4⼈チームで参加した所はどう分けるのだろう…

Slide 9

Slide 9 text

ReconVillage CTFの難易度に関して u 最⾼難易度だと思う u そう感じる理由 u フラグのあるソースを⾒つけるのが難しい u ターゲットが⾒つからない u 他のOSINT CTFだと名前を検索するだけで ⾒つかることが多いのだが… u 全く⾒当違いな調査をしてしまうことに… u 出題範囲が広い u OSINTカテゴリでは出題頻度の低い、 ペンテストや脅威インテリジェンス関係の 問題が出る u Web問に限りなく近い問題も存在 u 問題⽂が曖昧 u 普通なら「電話番号を求めよ」のように 取得すべきフラグが明⽰的に指定されている u ⼀⽅このCTFは「私のサイトをチェックしてみ て!」みたいな⽂章であり、何がフラグかわかり にくい。 体感 難易度 ReconVillage CTF Open xINT CTF Cyber Detective CTF Search Party CYBAR OSINT CTF Cyber Investigator CTF

Slide 10

Slide 10 text

ReconVillage CTFに向けた対策

Slide 11

Slide 11 text

対策⽅針 u 去年は単騎でReconVillage CTFへ突撃して 1問も解けなかった u Webサービスの調査問題が多く、私が解けるレベルなのかすら 判断不能だった u → 脆弱性診断経験のある⼈をチームに呼ぶ

Slide 12

Slide 12 text

チームメンバー u ところてん(@tokoroten0813)さん u セキュリティエンジニア(業界12年⽬) u この勉強会の主催 u CISA / CISM / CDPSE / GCP PCA u okuken (@okuken3)さん u セキュリティエンジニア u MBSD所属 u Burp Suiteの拡張機能『ISTE』の開発者 u kmrrさん u セキュリティエンジニア u 勉強会「ゼロから始めるCTF」主催 u 著書「After CTF(@技術書典8)」は良本 u 私(@meow_noisy) u ただのOSINT CTF好き 全員この勉強会グループ(Security for beginners)の関係者だったことから、 チーム名もそのようにした。

Slide 13

Slide 13 text

チーム内準備 u CTFに向けた環境準備依頼 u 過去問の共有 u チームの⽅針決定 1. ⽬標設定 u →なるべく低く 2. どういう⼿段で作業するか u → Discordのテキストチャット 3. 問題の解答の進捗共有 u → Googleスライドを使⽤

Slide 14

Slide 14 text

環境準備の依頼 u 最⾼難易度ということもあり若⼲こだわった依頼 u Chrome拡張機能 u Search by Image, Wayback Machine, Windscribe u SMS認証が必要なアカウントの作成依頼 u LinkedInのアカウント作成 u インスタのアカウント作成 u Facebookのアカウント作成

Slide 15

Slide 15 text

過去問の共有 u ReconVillage CTFの過去5年分のwrite-upをすべて⼀箇所 に集めて共有 u メンバーに問題の肌感覚を掴んでもらう https://meow-memow.hatenablog.com/entry/2022/08/12/091522

Slide 16

Slide 16 text

チーム内⽬標設定 u 次の2つ u チームで1問解く u 楽しむ u 低い⽬標に設定することで、リラックスしながら CTFに取り組めることを狙った

Slide 17

Slide 17 text

コラボレーション⽅法 u 38時間ということもありDiscordのテキストチャットで 基本的にやりとり u 雑談しながら適度に相談する u コアタイムを決めてボイチャ u とはいえお互い会話するのも数カ⽉ぶりなので雑談に華が咲く😅

Slide 18

Slide 18 text

問題の解答の進捗共有ツール u Googleスライドを使う u 準備不要で使い慣れたUIというのが選定理由 u 各⼈の調査内容をスライドで貼り付けていく u それを⼿がかりに後の⼈が引き継ぐという協⼒体制を実現 u 他⼈がスライドを編集している状況もわかるので、メンバーが⼀緒に 解いている雰囲気を感じられて良かった

Slide 19

Slide 19 text

私の回答状況

Slide 20

Slide 20 text

私の回答状況 u 起きている時間(合計26時間)はCTFに張り付いていた u 8/13(⼟): 2:00〜4:00、8:00〜24:00 u 8:14(⽇): 8:00〜16:00 u 3問フラグを提出した(≠私が解いた) u Challenge 4 (友⼈の誕⽣⽇の特定) u Challenge 16 (レビュー投稿⽇の特定) u Challenge 5 (プールパーティの開催⽇の特定) u 以下では上記の問題と解答を紹介する u 解答は簡素に書いているが、26時間分試⾏錯誤した末に掴んだ答え であることは強調しておきたい

Slide 21

Slide 21 text

Challenge 4 (友⼈の誕⽣⽇の特定) u Wanting to remain anonymous online, discreetly named 'Phonenumber' from Costa Rica has a friend who works for Facebook. When did his friend get married? (MM/DD/YYYY) u ‘Phonenumber’ という ⽬⽴ちにくい名前のコスタ リカ出⾝のユーザがいます。 u 彼には、Facebook で働く 友⼈がいます。 u 彼の友達はいつ結婚しまし たか。(MM/DD/YYYY)

Slide 22

Slide 22 text

Challenge 4 (友⼈の誕⽣⽇の特定) u Phonenumberのユーザ名検索を⾏ってみる。 u ありきたりな名前だからかさまざまなSNSがヒットしてしまう。

Slide 23

Slide 23 text

Challenge 4 (友⼈の誕⽣⽇の特定) u Facebookでそれとなく「phonenumber Costa Rica」で検索。 u それらしき⼈がいた。

Slide 24

Slide 24 text

Challenge 4 (友⼈の誕⽣⽇の特定) u 友達にFacebookで働いている⼈がいた 友達のページ パートナーがいることを確認

Slide 25

Slide 25 text

Challenge 4 (友⼈の誕⽣⽇の特定) フラグ flag:{11/03/2007} パートナーのプロフィールを調査

Slide 26

Slide 26 text

Challenge 16 (レビュー投稿⽇の特定) u Can you locate this field on the outskirts of London in the image attached below. Once you do, what date did “⽒名” leave a review for this place? Copy the date from the review as is in the flag format. u [google訳] 添付された画像で、ロンドンの郊 外にあるこのフィールドを⾒つけ ることができますか. “⽒名” がこ の場所のクチコミを投稿した⽇付 はいつですか? フラグ形式のまま、 レビューから⽇付をコピーします。 ※⼀応ユーザ名は伏せて “⽒名”としておきます

Slide 27

Slide 27 text

Challenge 16 (レビュー投稿⽇の特定) u 撮影場所を特定するための試⾏錯誤 u EXIF → なし u 画像で検索 → ヒットせず u カラフルなグラウンドを切り取って検索→ヒットせず

Slide 28

Slide 28 text

Challenge 16 (レビュー投稿⽇の特定) u カラフルな画像に着⽬ u オープンな2階建ての建物があり、セクションに分かれている u 芝⽣をネットが囲んでいる u ゴルフの“打ちっぱなし”だと推理 u 英語だと、”Golf driving range” というらしい

Slide 29

Slide 29 text

Challenge 16 (レビュー投稿⽇の特定) u 「London Golf driving range」でgoogle mapで検索 u 候補がいくつか出てきたが、衛星写真の結果、 更地ではあるが、 形状の似た区域を発⾒ Google map お題の写真

Slide 30

Slide 30 text

Challenge 16 (レビュー投稿⽇の特定) u 打ちっぱなしの場所のレビューの中に“⽒名”⽒を発⾒ u しかし、3 weeks ago でサブミットしても不正解だった

Slide 31

Slide 31 text

Challenge 16 (レビュー投稿⽇の特定) u 正確なフラグが必要と考えて、レビューの時間を取り出す ⽅法を調査 u GCPのAPIだとunix時間をとれることがkmrrさんの調査でわかる u 私がやってみたが、APIでは先頭5件のレビューしかとれず、 試みは失敗

Slide 32

Slide 32 text

Challenge 16 (レビュー投稿⽇の特定) u レビューを⾒れないか 悪戦苦闘していると、“打ちっぱなし” の公式サイトがあることがわかった u 公式のレビュー閲覧ウィジェットからレビューを閲覧可能 u ウィジェット越しだとフルの⽇付が閲覧可能でフラグだった 公式サイトをクリック Read our 48 Reviewsをクリック 右側に Googleの レビューが ⽇付レベルで出てくる。

Slide 33

Slide 33 text

Challenge 5 (プールパーティの開催⽇の特定) u You're investigating a missing person who went missing following a party in 2019. While working through case notes you've come across the following NTIyMyBTb3V0aCBCcmFlc3 dvb2QgQm91bGV2YXJkLCBI b3VzdG9u What date was the pool party? u あなたは、次に⽰す2019 年 のパーティーの⾏⽅不明に なった⾏⽅不明者を調査して います。 u 事件を調べているときに、次 のことに気付きました: NTIyMyBTb3V0aCBCcmFlc3 dvb2QgQm91bGV2YXJkLCBI b3VzdG9u u プールパーティーは何⽇でし たか。

Slide 34

Slide 34 text

Challenge 5 (プールパーティの開催⽇の特定) u 謎の⽂字列の解明 u ところてんさんがBASE64エンコードだと気づく u NTIyMyBTb3V0aCBCcmFlc3dvb2QgQm91bGV2YXJkLCBIb3VzdG9u u → 5223 South Braeswood Boulevard, Houston u あとはヒューストンの2019年の⾏⽅不明者のうち、プール パーティーの後に⾏⽅不明になった⼈を探せば良い

Slide 35

Slide 35 text

Challenge 5 (プールパーティの開催⽇の特定) u プールパーティーの⾏⽅不明者が⼀向にみつからず u Twitterで当該の住所でプールパーティーを開くものがあっ たが、4/25だとincorrect u プールパーティがあったのは2019年 u ブルートフォースで365⽇やればみつかるはず u あとはフラグフォーマットだけわかればよい

Slide 36

Slide 36 text

Challenge 5 (プールパーティの開催⽇の特定) u 最後の⼿段: 運営へDMで聞く u 運営からフラグフォーマットの回答が来た u フラグフォーマットがわかったのでブルートフォース開始 u フラグも無事ゲット u flag:{04/20/2019}

Slide 37

Slide 37 text

Challenge 5 (プールパーティの開催⽇の特定) u 正攻法 u “5223 South Braeswood Boulevard, Houston”とクオートでくくれば pastebinが⾒つかったらしい u そのpastebin内にプールパーティーの開催⽇が書かれていた u つまり問題⽂の⾏⽅不明者は全く関係なかった u 参加者の5分の4はこの問題を解いていた u 何で他チームは解けるのかと思っていたらあまりにも簡単なことだった u クォートでくくらずに調べたのが 悪⼿だった

Slide 38

Slide 38 text

CTFのふりかえり

Slide 39

Slide 39 text

最終順位 u 6問正解し9位でフィニッシュ u ⽖痕を残せたのではないかと思う

Slide 40

Slide 40 text

9位(1,100ポイント)という成績の⾃⼰評価 u 「解ける問題を全て拾った」という実⼒ u 先に1,100ポイントに達していたチームは結構いた印象だが、 それらのチームがヒント閲覧でポイントを消費したことにより、 我々の順位が相対的に上がった u チーム⽬標が1問正解だったことを考えると 上出来すぎる結果である

Slide 41

Slide 41 text

[備考]上位チーム u 1位: alligator hunters u Google、Amazon、Pinterest等のエンジニア集団 u write-up: https://andrew.cloud/blog/dc30-writeup/ u 2位: pinja u おなじみ。今回はコアメンバーのみ。 u 3位: Delaware u おそらくフランスのチーム u HEXA OSINT CTFの運営の⽅がチームの代表(右図) https://twitter.com/_IWHere

Slide 42

Slide 42 text

CTF後の私の所感[1/2] u やっぱり難しい u フラグのあるソースを当てることができなければ詰み u 問題はその探し⽅を思いつくかどうか u インスタで”vegas birthday”と検索 u githubで”cryptorama” で検索 u …など。 u このクエリを思いつけるかどうかの運ゲーになってしまっている u ここを技術でカバーできるか分からず、OSINT CTF⼒が伸び悩んでいる u WebサーバへのOSINT問について u 今年も出た u しかし、お題のサーバを⾒つける必要があった u お題のサーバを⾒つけるのが私の役⽬なのにそれができず、脆弱性 診断のメンバーへ作業をつなぐことができなかったことが悔い

Slide 43

Slide 43 text

CTF後の私の所感[2/2] u そろそろ、ブルートフォース&運営へゴネる⾏為で ポイントを増やすのはやめたい u この辺りはxint ctf2021からまるで成⻑していない… u まともにインテリジェンスして点を取れるようになりたい u 上位チームとの差 u 得点的には上位チームの半分程度だが、もう1000ポイント取ると なると、とてつもない技術的な差がある u 分厚い壁が5枚くらいありそう u 特にペンテスト、脅威インテリジェンス関係も学ぶ必要がある u 1枚2年ずつかけてでも丁寧に壁を破っていきたい! 上位チームのポイント

Slide 44

Slide 44 text

まとめ u ReconVillage CTF2022にチームで参加した u 出題された問題と解答を紹介した u 去年よりも好成績を残せたものの、平均の実⼒よりも 上に⾏くには、さらなる勉強が必要 u write-upも出ているのでこれを⾒ながらOSINTの勉強に励んでいく

Slide 45

Slide 45 text

CTFチームメンバへの謝辞 u お盆シーズンかつ⻑丁場のCTFにもかかわらず、 ご都合をつけていただき、本当にありがとうございました!

Slide 46

Slide 46 text

ご清聴ありがとうございました @meow_noisy