チャレンジ一覧
Linux-02. sudoで許可されたvimからの権限昇格
一般ユーザーがsudoでパスワードなしに実行できるコマンドを確認してみましょう。GTFOBinsで知られるテクニックを使うと、そのコマンドからシェルへ抜け出せる場合があります。
Linux-03. cron設定ファイルを読み解け
このシステムには複数のcron設定(/etc/cron.d、/etc/crontab、ユーザーcrontabなど)が存在します。それぞれの設定ファイルを確認し、フラグが書き込まれた場所を見つけてください。
Linux-Cron権限昇格. 書き込み可能なrootスクリプトを乗っ取れ
rootが定期実行するcronスクリプトのパーミッションを確認してみましょう。一般ユーザーでも書き込めてしまう場合、次の実行タイミングでどんなコードが動くか考えてみてください。
Linux-systemd. サービスユニットの環境変数を確認せよ
systemdのユニットファイルには [Service] セクションで環境変数を設定できます。登録されているサービス定義を調べ、そこに設定された値を確認してください。
Linux-シンボリックリンク迷路. 分岐する道を辿り抜け
複数のディレクトリがシンボリックリンクで複雑に繋がっています。おとりのヒントファイルに惑わされず、リンクを1つずつ辿って本物のフラグファイルまでたどり着いてください。
Linux-スクリプトデバッグ. 壊れたbashスクリプトを直せ
このスクリプトには複数の意図的なバグ(タイポ、構文ミスなど)が仕込まれており、最後まで実行されません。bashのデバッグ機能を使ってバグを1つずつ直してください。
Linux-ネットワーク基礎. リッスン中のポートに接続せよ
このシステムではバックグラウンドで特定のポートをリッスンするサービスが起動しています。ss/netstatでポートを特定し、ncで接続してフラグを受け取ってください。
Linux-バックアップ探索. 紛れ込んだ一時ファイルを見抜け
プロジェクトディレクトリには .bak や .tmp、~ で終わる紛らわしいバックアップ/一時ファイルが複数あります。本物のフラグは隠しファイルの中に隠れています。
Linux-パイプライン. grepとawkの連携でログを絞り込め
アクセスログには大量のアクセス記録が含まれています。あるIPアドレスが短時間に多数の404を出しており、その一連のリクエストのパスをつなげるとフラグになります。grep・awk・sort・uniq などをパイプで組み合わせて組み立ててください。
Linux-パッケージ情報. インストール済みパッケージの詳細を調べよ
このシステムには自作のdebパッケージがインストールされています。dpkgやaptを使ってパッケージの詳細情報を確認し、その説明文に隠された情報を見つけてください。
Linux-プロセス追跡. 動き続けるプロセスの正体を暴け
複数のバックグラウンドプロセスが動いている中に、コマンドライン引数にフラグを持つものが1つ紛れています。psコマンドで一覧を確認し、それを見つけ出してください。
Linux-ユーザー調査. awkで対象ユーザーを絞り込め
このシステムには複数のユーザーが登録されています。/etc/passwdをawkで解析して特定の条件に合うユーザーを見つけ、そのホームディレクトリの隠しファイルを確認してください。
Linux-ログローテーション. 圧縮された過去ログを検索せよ
ログローテーションによって一部の古いログファイルはgzip圧縮されています。展開せずに圧縮ファイルの中身を検索するコマンドを使ってフラグを探してください。
Linux-ログ探索. 複数ログファイルからフラグを掘り出せ
アプリケーションログとシステムログの複数ファイルが用意されています。DEBUGレベルの1行だけにフラグが埋め込まれているので、grepなどで絞り込んで見つけてください。
Linux-環境変数の秘密. FLAGという名の変数を探せ
このシステムには複数の環境変数(ダミーの認証情報を含む)が設定されています。envコマンドで一覧を確認し、フラグを保持している変数を見つけてください。
PDFの隠されたストリーム
PDFファイルには、圧縮されたオブジェクトストリームが含まれています。 ページに表示されない社内メモがその中に隠れています。そのメモからフラグを見つけましょう。 PDF内部構造を理解し、隠されたデータを抽出する方法を学びます。 提供ファイル: document.pdf
RC4ストリーム暗号の脆弱性
RC4は過去に広く使われましたが、現在は非推奨です。この入門問題では渡されたデータ形式を見抜きます。 Base64文字列: S0lOT0NPe3JjNF9pc19kZXByZWNhdGVkfQ== これは実際にはRC4暗号文ではありません。Base64デコードしてフラグを取得してください。
Vigenère暗号の解読
Vigenere暗号は複数のシーザー暗号を組み合わせた古典暗号です。鍵長が分かっている暗号文を復号し、フラグを取得してください。 暗号文: KMNRCS{vlginhri_clpleu_axtdco} 鍵の長さは4文字です。暗号文を解読してフラグを提出してください。
Windows レジストリからUSB履歴を探せ
SYSTEM ファイル(レジストリ hive の USBSTOR 部分をテキストで表したもの)を解析して、2025-11-19 14:45(UTC)ごろに接続されていた USB デバイスを特定し、そのデバイスが記録していた値からフラグを取得しましょう。Windowsフォレンジックの基本を学びます。 提供ファイル: SYSTEM
ディスクイメージから秘密ファイルを探せ
ext4 ファイルシステムのディスクイメージ `disk.img` を調査し、ファイルシステム内に隠された秘密のバックアップを見つけ出して、フラグを取得してください。 コンテナの中では mount できないため、debugfs でファイルシステムを直接たどります。
ハッシュ衝突の発見
MD5では異なる入力が同じハッシュ値になる衝突が実用的に作れます。衝突耐性が破られたハッシュを安全用途に使ってはいけません。 同一MD5を持つとされる2つのファイル: file_a != file_b md5(file_a) = d131dd02c5e6eec4693d9a0698aff95c md5(file_b) = d131dd02c5e6eec4693d9a0698aff95c MD5衝突を発見したことを表す語句として、md5、collision、found の3語を小文字のままアンダースコアでつなぎ、KINOCO{...} の形式で提出してください。
ハッシュ長拡張攻撃
MD5、SHA-1、SHA-256などの構造では、secret || message の単純ハッシュを署名にすると長さ拡張攻撃を受ける場合があります。 既知のメッセージとSHA-256: message = "user=guest" sha256(secret || message) = 84d89877f0d4041efb6bf91a16f0248f2fd573e6af05c19f96bedb9f882f7882 append = "&admin=true" この問題では攻撃手順の理解を確認します。攻撃名を表す3つの英単語 hash、extension、attack を小文字のままアンダースコアでつなぎ、KINOCO{...} の形式で提出してください。
パケットキャプチャからパスワードを探せ
ショップの内部ネットワークで記録された平文HTTP通信をキャプチャしました。多数のリクエストの中に管理者アカウントのログイン試行が1件だけ紛れています。配布されるパケットキャプチャ(traffic.pcap)を解析し、管理者(username=admin)のパスワードを抽出してください。パスワードがフラグです。
パディングオラクル入門
パディングオラクル攻撃では、エラーの違いが平文復元の手がかりになります。この入門問題では、漏えいしたBase64文字列からフラグを読み取ります。 漏えいしたBase64文字列: Vmlld1NvdXJjZTpLSU5PQ097cGFkZGluZ19vcmFjbGVfYmFzaWNzfQ== この文字列をBase64デコードし、ViewSource: の後ろにある文字列をフラグとして提出してください。