ホーム » スタッフ » 斉藤徹 » Linux初心者向けCTF

2019年12月
1234567
891011121314
15161718192021
22232425262728
293031  

最近の投稿(電子情報)

アーカイブ

カテゴリー

Linux初心者向けCTF

オペレーティンス・システムの授業の中でちょっとしたLinux演習を授業中に行うことになった。

Linux 環境は、さくらクラウドの上に準備した。学校の教室にてBYODパソコンを用いて行いたいので、WSL や VMplayer などを各自でインストールして演習を行うことも考えたが、環境が違うと演習が行いづらいので、さくらクラウドを用いることとした。

演習サーバへの接続

教室は http, https での接続しかできないように設定してあるので、通常の方法ではクラウドに接続させるのは困難。そこで、さくらクラウドのサーバは、この演習専用とし、https(443)ポートを ssh に割り当て接続させる。

(( Windows 10 ならば cmd.exe にて ))
C:..> ssh -p 443 演習室ID@演習サーバ
Password: 演習室のパスワード
  -- この段階で20秒ほどかかる --
[~]$ 

CTF形式の演習

簡単に cd , ls , cat や ページャ(more,less,lv) と 漢字コード変換 nkf などを説明し、絶対PATH,相対PATHの概念を説明したあと、CTF形式の演習問題を用意した。

指定したフォルダ /home/Challenge の配下に、以下のフォルダを設け、ファイル内に記載された FLAG{答え} 形式のものを答えてもらう。

  • Task1 – 普通に探すだけ
  • Task2 – 複数行のファイルで ページャを使わないと見逃す様にしてあるファイルの中から探す。ファイルの中に空白を含むファイル名も置いておく。
  • Task3 – cmd.exe などの環境だと文字コードの問題があるので、nkf を使って読ませる。JIS, Shift-JIS, EUC-JP, UTF-8 などばらまいておく。
  • Task4 – シンボリックリンクでディレクトリが再起的ループするようにしたディレクトリの中から探す。ハイフンを含むファイル名や、chmod で読めないファイル、入れないディレクトリも置いておく。
    • これを通して、chmod , ls -al , などの説明を行う。
  • Task5 – セキュリティ意識を持ってもらうための演習。.bashrc には、PATH=.:/usr/bin:/bin となるように設定してある。この状態で、ディレクトリ内に、killall -KILL bash のシェルスクリプトを記載した、ls, cat, more, nkf を置いておく。
    • これを通して、サーチPATHの説明を行う。

答えの確認方法

答えといっても、ディレクトリ構造を cd , ls , cat しながら、さらうだけなので、大したことはない。Linux 管理者なら、以下で終わるネタ。

$ find /home0/Challenge -type f -exec nkf -w {} ¥; | grep FLAG