$30 off During Our Annual Pro Sale. View Details »

ReconVillage CTF2022 参加報告

meow
September 11, 2022

ReconVillage CTF2022 参加報告

2022/08/30(火)に 第22回 初心者のためのセキュリティ勉強会(オンライン開催) で発表したスライドです。

https://sfb.connpass.com/event/256452/

■リンク
・ReconVillage公式
https://reconvillage.org/

meow

September 11, 2022
Tweet

More Decks by meow

Other Decks in Technology

Transcript

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

    2022/08/30(⽕) たぶん
  2. 背景 u 1年前 ReconVillage CTFに初参加 u →難しすぎて1問も解けなかった u 2022年もオンライン開催だったので チームを組んでリベンジすることにした

    https://speakerdeck.com/meow_noisy/rvctf2021- overwhelmed-me
  3. おしながき u ReconVillage CTFとは u ReconVillage CTFに向けた対策 u 各チームメンバーによるCTFの解答過程の報告 u

    私 u kmrrさん u okukenさん u ところてんさん u CTFふりかえり ※資料では割愛
  4. ReconVillage CTFとは

  5. 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 右図は⼀例
  6. Recon Villageとは u Recon u Reconnaissance; 偵察 u 標的型攻撃のサイバーキルチェーンの第⼀段階 u

    OSINTを⽤いて成される → Recon Villageは サイバーインテリジェンスの トピックが議論される場 画像引⽤: 標的型攻撃対策 - マクニカネットワークス https://www.macnica.net/solution/security_apt.html/
  7. 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⽉の時点では現地開催の話もあった。 オンラインになってよかった。
  8. 去年との差分 u チームメンバ定員の減少 u 5→ 4⼈ u 1分短くなった u 例年

    “12:00 AM”を昼だと勘違いする⼈が出ていた u 「あと12時間ある」と思って休憩しているうちに CTFが終了していたなんてことも u 個⼈的に良アプデ u 上位⼊賞者へ景品が出る u 現地参加者のみ。 u 4⼈チームで参加した所はどう分けるのだろう…
  9. 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
  10. ReconVillage CTFに向けた対策

  11. 対策⽅針 u 去年は単騎でReconVillage CTFへ突撃して 1問も解けなかった u Webサービスの調査問題が多く、私が解けるレベルなのかすら 判断不能だった u →

    脆弱性診断経験のある⼈をチームに呼ぶ
  12. チームメンバー 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)の関係者だったことから、 チーム名もそのようにした。
  13. チーム内準備 u CTFに向けた環境準備依頼 u 過去問の共有 u チームの⽅針決定 1. ⽬標設定 u

    →なるべく低く 2. どういう⼿段で作業するか u → Discordのテキストチャット 3. 問題の解答の進捗共有 u → Googleスライドを使⽤
  14. 環境準備の依頼 u 最⾼難易度ということもあり若⼲こだわった依頼 u Chrome拡張機能 u Search by Image, Wayback

    Machine, Windscribe u SMS認証が必要なアカウントの作成依頼 u LinkedInのアカウント作成 u インスタのアカウント作成 u Facebookのアカウント作成
  15. 過去問の共有 u ReconVillage CTFの過去5年分のwrite-upをすべて⼀箇所 に集めて共有 u メンバーに問題の肌感覚を掴んでもらう https://meow-memow.hatenablog.com/entry/2022/08/12/091522

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

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

  18. 問題の解答の進捗共有ツール u Googleスライドを使う u 準備不要で使い慣れたUIというのが選定理由 u 各⼈の調査内容をスライドで貼り付けていく u それを⼿がかりに後の⼈が引き継ぐという協⼒体制を実現 u

    他⼈がスライドを編集している状況もわかるので、メンバーが⼀緒に 解いている雰囲気を感じられて良かった
  19. 私の回答状況

  20. 私の回答状況 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時間分試⾏錯誤した末に掴んだ答え であることは強調しておきたい
  21. 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)
  22. Challenge 4 (友⼈の誕⽣⽇の特定) u Phonenumberのユーザ名検索を⾏ってみる。 u ありきたりな名前だからかさまざまなSNSがヒットしてしまう。

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

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

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

  26. 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訳] 添付された画像で、ロンドンの郊 外にあるこのフィールドを⾒つけ ることができますか. “⽒名” がこ の場所のクチコミを投稿した⽇付 はいつですか? フラグ形式のまま、 レビューから⽇付をコピーします。 ※⼀応ユーザ名は伏せて “⽒名”としておきます
  27. Challenge 16 (レビュー投稿⽇の特定) u 撮影場所を特定するための試⾏錯誤 u EXIF → なし u

    画像で検索 → ヒットせず u カラフルなグラウンドを切り取って検索→ヒットせず
  28. Challenge 16 (レビュー投稿⽇の特定) u カラフルな画像に着⽬ u オープンな2階建ての建物があり、セクションに分かれている u 芝⽣をネットが囲んでいる u

    ゴルフの“打ちっぱなし”だと推理 u 英語だと、”Golf driving range” というらしい
  29. Challenge 16 (レビュー投稿⽇の特定) u 「London Golf driving range」でgoogle mapで検索 u

    候補がいくつか出てきたが、衛星写真の結果、 更地ではあるが、 形状の似た区域を発⾒ Google map お題の写真
  30. Challenge 16 (レビュー投稿⽇の特定) u 打ちっぱなしの場所のレビューの中に“⽒名”⽒を発⾒ u しかし、3 weeks ago でサブミットしても不正解だった

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

    試みは失敗
  32. Challenge 16 (レビュー投稿⽇の特定) u レビューを⾒れないか 悪戦苦闘していると、“打ちっぱなし” の公式サイトがあることがわかった u 公式のレビュー閲覧ウィジェットからレビューを閲覧可能 u

    ウィジェット越しだとフルの⽇付が閲覧可能でフラグだった 公式サイトをクリック Read our 48 Reviewsをクリック 右側に Googleの レビューが ⽇付レベルで出てくる。
  33. 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 プールパーティーは何⽇でし たか。
  34. Challenge 5 (プールパーティの開催⽇の特定) u 謎の⽂字列の解明 u ところてんさんがBASE64エンコードだと気づく u NTIyMyBTb3V0aCBCcmFlc3dvb2QgQm91bGV2YXJkLCBIb3VzdG9u u

    → 5223 South Braeswood Boulevard, Houston u あとはヒューストンの2019年の⾏⽅不明者のうち、プール パーティーの後に⾏⽅不明になった⼈を探せば良い
  35. Challenge 5 (プールパーティの開催⽇の特定) u プールパーティーの⾏⽅不明者が⼀向にみつからず u Twitterで当該の住所でプールパーティーを開くものがあっ たが、4/25だとincorrect u プールパーティがあったのは2019年

    u ブルートフォースで365⽇やればみつかるはず u あとはフラグフォーマットだけわかればよい
  36. Challenge 5 (プールパーティの開催⽇の特定) u 最後の⼿段: 運営へDMで聞く u 運営からフラグフォーマットの回答が来た u フラグフォーマットがわかったのでブルートフォース開始

    u フラグも無事ゲット u flag:{04/20/2019}
  37. Challenge 5 (プールパーティの開催⽇の特定) u 正攻法 u “5223 South Braeswood Boulevard,

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

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

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

  41. [備考]上位チーム 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
  42. CTF後の私の所感[1/2] u やっぱり難しい u フラグのあるソースを当てることができなければ詰み u 問題はその探し⽅を思いつくかどうか u インスタで”vegas birthday”と検索

    u githubで”cryptorama” で検索 u …など。 u このクエリを思いつけるかどうかの運ゲーになってしまっている u ここを技術でカバーできるか分からず、OSINT CTF⼒が伸び悩んでいる u WebサーバへのOSINT問について u 今年も出た u しかし、お題のサーバを⾒つける必要があった u お題のサーバを⾒つけるのが私の役⽬なのにそれができず、脆弱性 診断のメンバーへ作業をつなぐことができなかったことが悔い
  43. CTF後の私の所感[2/2] u そろそろ、ブルートフォース&運営へゴネる⾏為で ポイントを増やすのはやめたい u この辺りはxint ctf2021からまるで成⻑していない… u まともにインテリジェンスして点を取れるようになりたい u

    上位チームとの差 u 得点的には上位チームの半分程度だが、もう1000ポイント取ると なると、とてつもない技術的な差がある u 分厚い壁が5枚くらいありそう u 特にペンテスト、脅威インテリジェンス関係も学ぶ必要がある u 1枚2年ずつかけてでも丁寧に壁を破っていきたい! 上位チームのポイント
  44. まとめ u ReconVillage CTF2022にチームで参加した u 出題された問題と解答を紹介した u 去年よりも好成績を残せたものの、平均の実⼒よりも 上に⾏くには、さらなる勉強が必要 u

    write-upも出ているのでこれを⾒ながらOSINTの勉強に励んでいく
  45. CTFチームメンバへの謝辞 u お盆シーズンかつ⻑丁場のCTFにもかかわらず、 ご都合をつけていただき、本当にありがとうございました!

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