Linux

Linuxを学べるCTF問題

コマンド操作、ファイル権限、プロセスなど、セキュリティ学習に必要なLinuxの基礎を実践できます。

この分野で学べること

  • 基本コマンドによる調査
  • ファイルと権限の仕組み
  • ログやプロセスから情報を探す方法

初めての方はLevel 1から始め、解けたら次の難易度へ進むのがおすすめです。

Linuxのチャレンジ

39件の問題から選べます。

Linux Level 2: ★★☆☆☆

Linux-パッケージ情報. インストール済みパッケージの詳細を調べよ

このシステムには自作のdebパッケージがインストールされています。dpkgやaptを使ってパッケージの詳細情報を確認し、その説明文に隠された情報を見つけてください。

Linux Level 2: ★★☆☆☆

Linux-プロセス追跡. 動き続けるプロセスの正体を暴け

複数のバックグラウンドプロセスが動いている中に、コマンドライン引数にフラグを持つものが1つ紛れています。psコマンドで一覧を確認し、それを見つけ出してください。

Linux Level 2: ★★☆☆☆

Linux-ユーザー調査. awkで対象ユーザーを絞り込め

このシステムには複数のユーザーが登録されています。/etc/passwdをawkで解析して特定の条件に合うユーザーを見つけ、そのホームディレクトリの隠しファイルを確認してください。

Linux Level 2: ★★☆☆☆

Linux-ログローテーション. 圧縮された過去ログを検索せよ

ログローテーションによって一部の古いログファイルはgzip圧縮されています。展開せずに圧縮ファイルの中身を検索するコマンドを使ってフラグを探してください。

Linux Level 2: ★★☆☆☆

Linux-ログ探索. 複数ログファイルからフラグを掘り出せ

アプリケーションログとシステムログの複数ファイルが用意されています。DEBUGレベルの1行だけにフラグが埋め込まれているので、grepなどで絞り込んで見つけてください。

Linux Level 2: ★★☆☆☆

Linux-環境変数の秘密. FLAGという名の変数を探せ

このシステムには複数の環境変数(ダミーの認証情報を含む)が設定されています。envコマンドで一覧を確認し、フラグを保持している変数を見つけてください。

Linux Level 3: ★★★☆☆

Linux-Capabilities. SUIDに頼らない権限昇格

このシステムでは特定のバイナリにLinux capabilitiesが付与されています。SUIDビットではなくcapabilitiesを使った権限昇格の手法を探してみましょう。

Linux Level 3: ★★★☆☆

Linux-SUID悪用. findバイナリで権限昇格せよ

このシステムにはSUIDビットが付与された find コマンドのコピーがあります。GTFOBinsで知られる手法を使い、root権限のシェルを取得してください。

Linux Level 3: ★★★☆☆

Linux-procメモリ. プロセスの環境変数を覗き見よ

バックグラウンドで動き続けるデーモンプロセスがあり、その環境変数の1つにフラグが設定されています。/procファイルシステムを使ってプロセスの情報を調べてください。

Linux Level 3: ★★★☆☆

Linux-strace. システムコールを追ってファイルを暴け

標準出力に何も表示しないバイナリが用意されています。straceでシステムコールを追跡し、どのファイルを開いて読み込んでいるのかを突き止めてください。

Linux Level 3: ★★★☆☆

Linux-競合状態. TOCTOUの隙を突いてroot権限のファイルを奪え

rootが定期的に実行するクリーンアップスクリプトには、チェックと処理の間に隙(TOCTOU)があります。シンボリックリンクをうまく使ってこの隙を悪用してみてください。

Linux Level 4: ★★★★☆

Linux-カーネルモジュール. 脆弱なドライバでroot権限を得よ

このチャレンジは、/procインターフェースを持つ脆弱なカーネルモジュールを安全なユーザー空間シミュレーションとして解析します。提供されたドライバソース断片から特別なコマンドを見つけ、シミュレーターに渡して結果を確認して...

Linux Level 4: ★★★★☆

Linux-バッファオーバーフロー. gets()の脆弱性を突け

SUIDが付与された脆弱なCバイナリが用意されています。保護機構が無効化されたこのプログラムのバッファオーバーフローを突いて、隠された関数へ制御を移してください。

Linux Level 5: ★★★★★

Linux-eBPF Rootkit. 隠されたプロセスの正体を暴け

このチャレンジは、eBPFルートキット調査を安全なオフライン証拠解析として再現します。eBPFをロードしたりホストカーネルを操作したりせず、提供されたbpftoolのスナップショットとマップダンプを調べて、隠されたファイ...

Linux Level 5: ★★★★★

Linux-カーネルエクスプロイト. Dirty COWで読み取り専用ファイルを書き換えろ

このチャレンジは、Dirty COW(CVE-2016-5195)で使われたmmap、MAP_PRIVATE、madviseという要素を、安全で決定的なユーザー空間シミュレーションとして扱います。提供されたプログラムをコ...