狠狠撸
Submit Search
名古屋セキュリティ勉强会LT~学内CTFの话~
?
Download as PPTX, PDF
?
1 like
?
1,163 views
kataware
Follow
20170909で発表したLT資料。 まだ載せたいことはあるけれど、ひとまず
Read less
Read more
1 of 10
Download now
Download to read offline
More Related Content
名古屋セキュリティ勉强会LT~学内CTFの话~
1.
1
2.
自己&LT紹介 ? 八木 鶫
or かたわれ ? Twitter: @_ktwr ? 前回のLT: ~SHA1衝突でピンチ~ /kataware/ltsha1 ? 今回のLT ~学内CTFのお話~ 2
3.
CTFってなーに ? Capture the
Flag ? 問題に隠されたFlagを見つける (sbtさんが話してくれるはずなので割愛) ? 学内CTF ? 「セキュリティ特論」の講義の課題用に作成した ? セキュリティを初めて触る人用に問題を作ってみた ? セキュリティ特論の講義 ? Buffer over flow ? SQLi ? OSコマンドインジェクション ? XSS 3
4.
サーバの構成 ? サーバ構成:3台 ? スコアサーバ、Web問サーバ、Pwnable問サーバ ?
スコアサーバー ? AWS-Ubuntu 16.04 LT 64bit ? Nginx+PHP ? 問題鯖 ? Pwnable鯖 ? Ubuntu 14.04 LT 32bit ? 64bitのOSで32bitコンパイルできるの忘れてた ? Xinetd+chrootで問題環境作成 ? Web鯖 ? RaspberryPi 3.0 Raspbian 8.0 ? Apache2+Mysql+PHP 4
5.
問題数と問題難易度 ? 問題数?講義数に比例して作成 ? Pwnable:4問 ?
1問目:簡単なBOF(20文字送り込むとFlagが出る) ? 2問目:shell codeを送り込む ? 3問目:関数のアドレス書き換え ? 4問目:BOFを利用してshellを取る?初心者には難易度高め? ? Web:1問 ? SQLi ? 超初心者向け ? 大学講義でやったレベルで解ける難易度 ? SECCON Beginnersレベル ? ももいろテクノロジーみればpwnableは全部解ける 5
6.
結果 ? 回答者数がめっちゃ少ない(6名) ? Pwnのアクセス数は315件(アクセスはほぼ1問目) ?
全完は1名 ? Web問はPwnableよりも取り組みが良かった ? 結論 ? Pwnableは講義でやってても難しい ? 受講生が他の課題等で忙しかった等の意見もある ? 初心者にはWeb系をおすすめしましょう ? 感想 ? サーバ立ち上げるのはセキュリティ的にめっちゃ気を遣う ? ただしとても勉強になる 6
7.
小さいCTF開催したい人へのおすすめ ? Pwnableはxinetd+chroot環境は結構いい ? xinetd:netcatコマンドでアクセスできる環境を作る ?
chroot:rootディレクトリを変えるのでshellを取られても 安心 ? 必要なのはxinetdの設定ファイルと問題で使う環境の用意 7 service pwn1 { type = UNLISTED protocol = tcp socket_type = stream port = 12345 wait = no server /usr/sbin/chrrot server_args /home/tsugumiyagi/Documents/pwn/pwn1 ./pwn1 user = root } 使用するポート 使用するコマンド chroot chrootに渡す引数chrootを実行する ユーザ
8.
chroot環境を作る ? chroot:rootディレクトリを変更する ? chrootした際にプログラムが動くようにライブラリ 環境を構築する ?
/bin/bashとpwn1で 使用するライブラリをコピー 8 $ ldd pwn1 linux-gate.so.1 => (0xb779d000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb75d50000) /lib/ld-linux.so.2 (0xb779e000) 必要なライブラリ $ tree . ├── pwn1 ├── bin │ └── bash ├── flag.txt ├── lib │ ├── i386-linux-gnu │ │ ├── libc.so.6 │ │ ├── libdl.so.2 │ │ └── libtinfo.so.5 │ └── ld-linux.so.2 └── pwn1.c
9.
注意点 ? プログラム作成時に注意する ? 今までのchroot環境だとプログラム終了時に出力が 表示される ?
対話型にしたいのでmainが始まったときに setbuf関数をはさむ 9 $ cat pwn1.c ……中略…… int main(int argc, char *argv[]){ setbuf(stdin,NULL); setbuf(stdout,NULL); FILE *fp; char str[1000]; char readline[256] = {'0'}; char no[] = "no"; ……以下略…… この2行がすごく重要
10.
今後の予定 ? 教授曰く 「来年は講義直後に演習の形式で利用したい」 ? 来年の様子をLTか何かで紹介しよう 私は卒業なので後輩がやってくれることに期待 ?
?後輩にお願いしときました 10
Download