Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
OSINT CTFの リアル作問環境を体験してみよう!
Search
Ryusei Ishikawa
December 15, 2024
Technology
0
170
OSINT CTFの リアル作問環境を体験してみよう!
Ryusei Ishikawa
December 15, 2024
Tweet
Share
More Decks by Ryusei Ishikawa
See All by Ryusei Ishikawa
DIVER OSINT CTF を支える技術 2025
xryuseix
0
79
OSINT CTFを支える技術
xryuseix
1
740
HTTP通信を書きかえてみよう
xryuseix
0
70
Webアプリケーションのユーザ入力検証
xryuseix
3
1.3k
Privateリポジトリで 管理しているソースコードを 無料でGitHub Pagesに公開する
xryuseix
0
3.1k
CTFにおけるOSINT問題作問の難しさ
xryuseix
0
730
「Reactはビルド時にコメントが消えるから」と言ってコメントに💩を書いてはいけない
xryuseix
0
1.4k
Other Decks in Technology
See All in Technology
新アイテムをどう使っていくか?みんなであーだこーだ言ってみよう / 20250911-rpi-jam-tokyo
akkiesoft
0
260
allow_retry と Arel.sql / allow_retry and Arel.sql
euglena1215
1
170
TS-S205_昨年対比2倍以上の機能追加を実現するデータ基盤プロジェクトでのAI活用について
kaz3284
1
150
まずはマネコンでちゃちゃっと作ってから、それをCDKにしてみよか。
yamada_r
2
100
BPaaSにおける人と協働する前提のAIエージェント-AWS登壇資料
kentarofujii
0
140
Webブラウザ向け動画配信プレイヤーの 大規模リプレイスから得た知見と学び
yud0uhu
0
230
AWSで始める実践Dagster入門
kitagawaz
1
620
「何となくテストする」を卒業するためにプロダクトが動く仕組みを理解しよう
kawabeaver
0
410
DDD集約とサービスコンテキスト境界との関係性
pandayumi
3
280
MCPで変わる Amebaデザインシステム「Spindle」の開発
spindle
PRO
3
3.2k
5分でカオスエンジニアリングを分かった気になろう
pandayumi
0
240
ハードウェアとソフトウェアをつなぐ全てを内製している企業の E2E テストの作り方 / How to create E2E tests for a company that builds everything connecting hardware and software in-house
bitkey
PRO
1
130
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Context Engineering - Making Every Token Count
addyosmani
3
43
Being A Developer After 40
akosma
90
590k
A Tale of Four Properties
chriscoyier
160
23k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Producing Creativity
orderedlist
PRO
347
40k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
Building Applications with DynamoDB
mza
96
6.6k
Bash Introduction
62gerente
615
210k
Transcript
2024/12/14 xryuseix (@ryusei_ishika) OSINT CTFの リアル作問環境を体験してみよう!
本講義の概要 2 TsukuCTF、DIVER OSINT CTFの作問環境で問題を作成し、 ローカル環境でデプロイする 長いので一言でまとめると ... Backlogより
事前準備 • Docker • Docker-Compose • Git, GitHubアカウント • Python,
pip • (あると嬉しい) make, golang, pipx, 問題用の任意の写真 準備しておいてもらいたいもの (バージョンは、ある程度新しければ基本的に大丈夫です ) 3
全体の流れ 4 • OSINT問題の作成 ◦ 環境構築 ◦ 問題作成 ◦ PRの作成
• CTFサーバの起動 ◦ サーバ起動 ◦ 初期設定 • ctfcliを用いた問題のデプロイ
OSINT問題の作成 - リポジトリのダウンロードと作問ディレクトリの自動生成 5 $ 先にフォークする $ git clone https://github.com/ユーザ名/returns2024
$ cd returns2024 $ git submodule init $ git submodule update --remote $ git checkout -b "feat/xryuseix" ←被らないように設定してください $ make gen $ # または docker-compose run gen bash -c "make gen" ←フラグフォーマットは returns{.*}の形式で強制しています ← OSINTを設定してください
OSINT問題の作成 - ファイルの配置 6 • 指定したジャンルのディレクトリに作った 問題のファイルが生成されています • 各ディレクトリの説明 ◦
build…今回は使わない ◦ challenge.yaml…問題の設定ファイル ◦ flag.txt…フラグを記載 ◦ public…公開ファイルを配置 ◦ solver…今回は使わない ◦ writeup…今回は使わない • publicディレクトリに問題にする任意の写真をおいて ください ◦ なければネットから適当に拾ってきたり、写真 なしテキストだけで問題を 作っても大丈夫です
OSINT問題の作成 - 問題の作成 7 • osint/sample/challenge.ymlを参考に、ご 自身で作ったディレクトリ内の challenge.ymlを編集して、色々設定して ください •
長いけど編集しなきゃいけないのは 右の項目だけ(うちいくつかは最初から設 定されている) • 特に、公開するファイル(写真など)の パスを記載するfilesは記載ミスに注意! ◦ 注) 公開ファイルがない場合はコメン トアウトしてください
OSINT問題の作成 - フラグのテスト 8 • osint/sample/flag.txtを参考に、ご自身で作ったディレクトリ内の flag.txtを 編集します • ここではフラグのUnit
Testを行います ◦ フラグフォーマット、正規表現、複数のフラグ設定のミスを確認します • 通る想定のフラグと通らない想定のフラグを設定してください 通る→ 通らない→
OSINT問題の作成 - PRの作成 9 $ git add . $ git
commit -m "add my chall" $ git push -u origin feat/xryuseix ←さっき設定したブランチ • 終わったらPRを作成してください ◦ https://github.com/xryuseix/returns2024/pulls ◦ 例示用のPRもあります→ • PRコメントはなんでもいいです • PRを作成したらCIが走ります。少し待ってください。
OSINT問題の作成 - CIの結果確認 10 こうなってたらOK 画像が入っている場合は こんなコメントも送られてくる
OSINT問題の作成 - CIの結果確認と修正 11 • CIのエラーが出た場合、Detailsから エラーメッセージをみよう ◦ 特に多いのがyamlのインデントミス ◦
わかりにくかったらすぐに質問してくだ さい (個々のケース用のスライドを作るのが面倒 )
OSINT問題の作成 - mainブランチへのマージ & pull 12 • GitHubのPRページの下にあるマージボタンでマージしてくださ い •
終わったらシェルに戻って以下のコマンドを実行 $ git checkout main $ git pull origin main
CTFサーバの設定 - サーバの起動 13 ここから先、時間なかったら僕だけやります $ pipx install ctfcli $
# または $ pip install ctfcli $ cd .. # returns2024ディレクトリ外であればどこでもいいです $ git clone https://github.com/CTFd/CTFd $ cd CTFd # 3分くらいかかります $ docker-compose up -d
CTFサーバの設定 - CTFdの初期設定 14 http://localhost:8000/ にアクセスします ほぼ変更しなくていいです。
CTFサーバの設定 - CTFdの初期設定 15 http://localhost:8000/ にアクセスします ほぼ変更しなくていいです。
CTFサーバの設定 - アクセストークンの取得 16 設定→アクセストークンで 有効期限を設定して生成します
ctfcliを用いた問題のデプロイ 17 ctfcliをpipでインストールするとctfコマンドが使えます。 URLは画像と一緒で、アクセストークンは各自変更してください。 最初にcloneしたreturns2024ディレクトリで実行します。
ctfcliを用いた問題のデプロイ 18 mainブランチにマージしたあと、bash install.shコマンドを実行します 実行後、 http://localhost:8000/admin/challenges にアクセスするとこうなっている
(時間余ったらのコンテンツ ) みんなが作成した問題を解いてみよう! 19