CTF(Capture the Flag)って何?

48,155 views
48,609 views

Published on

CTFに興味ある方は↓こちらの方にコンタクトとればいいかも。
http://d.hatena.ne.jp/tessy/

Published in: Technology
1 Comment
40 Likes
Statistics
Notes
No Downloads
Views
Total views
48,155
On SlideShare
0
From Embeds
0
Number of Embeds
24
Actions
Shares
0
Downloads
0
Comments
1
Likes
40
Embeds 0
No embeds

No notes for slide

CTF(Capture the Flag)って何?

  1. 1. DEFCON CTF 2011<br />愛甲健二<br />sutegoma2<br />
  2. 2. DEFCON?<br />毎年7~8月にラスベガスで行われるセキュリティカンファレンス<br />
  3. 3. DEFCON?<br />毎年7~8月にラスベガスで行われるセキュリティカンファレンス<br />日本から飛行機で<br />約11時間<br />
  4. 4. 空港<br />
  5. 5. タクシー<br />
  6. 6. 会場入り<br />
  7. 7. ルール説明<br />
  8. 8. 競技開始<br />
  9. 9. Capture the Flagとは?<br />
  10. 10. CTF?<br />Capture the Flag(旗取り合戦)の略<br />セキュリティ技術を競うコンテストの総称<br />
  11. 11. CTF?<br />Capture the Flag(旗取り合戦)の略<br />セキュリティ技術を競うコンテストの総称<br />世界各国で開催されている<br />
  12. 12. アメリカ<br />ラスベガス<br />DEFCON CTF<br />
  13. 13. アメリカ<br />
  14. 14. 韓国<br />韓国(ソウル)<br />CODEGATE CTF<br />
  15. 15. 韓国<br />
  16. 16. マレーシア<br />クアラルンプール<br />HITB CTF<br />
  17. 17. マレーシア<br />
  18. 18. その他<br />台湾、ロシア、etc<br />多くの国で開催されている<br />
  19. 19. その他<br />台湾、ロシア、etc<br />多くの国で開催されている<br />日本でもやりたい!<br />
  20. 20. ルール<br />問題出題型<br />CODEGATE(韓)、DEFCON予選(米)<br />サーバ攻防型<br />HITB(馬)、DEFCON決勝(米)<br />
  21. 21. ルール<br />問題出題型<br />CODEGATE(韓)、DEFCON予選(米)<br />サーバ攻防型<br />HITB(馬)、DEFCON決勝(米)<br />
  22. 22. 問題出題型<br />
  23. 23. 問題出題型<br />出題された問題ファイルの中からパスワードを探し出し、入力することで得点が得られる<br />
  24. 24. 問題出題型<br />出題される問題の分野<br />フォレンジック<br />脆弱性攻撃<br />バイナリ解析<br />パケット解析<br />暗号<br />トリビア<br />他(Web,QR,etc)<br />
  25. 25. 問題出題型<br />出題&解答サーバ<br />Aチーム<br />Cチーム<br />Bチーム<br />
  26. 26. ルール<br />問題出題型<br />CODEGATE(韓)、DEFCON予選(米)<br />サーバ攻防型<br />HITB(馬)、DEFCON決勝(米)<br />
  27. 27. サーバ攻防型<br />Aチーム<br />解答サーバ<br />Cチーム<br />Bチーム<br />
  28. 28. サーバ攻防型<br />Aチーム<br />解答サーバ<br />各チームには脆弱性のあるサービスが動作するサーバが1台与えられる<br />Cチーム<br />Bチーム<br />
  29. 29. サーバ攻防型<br />Aチーム<br />解答サーバ<br />サーバを守りながら、他チームを攻撃することが、競技の基本ルール<br />Cチーム<br />Bチーム<br />
  30. 30. サーバ攻防型<br />Aチーム<br />解答サーバ<br />他チームのサーバからパスワードを奪取して、解答サーバへ入力することで得点できる<br />Cチーム<br />Bチーム<br />
  31. 31. サーバ攻防型<br />サーバで動作しているサービスは、運営チームから監視されている<br />
  32. 32. サーバ攻防型<br />サービスを停止させると、減点となる<br />
  33. 33. サーバ攻防型<br />出題される問題の分野<br />フォレンジック<br />脆弱性攻撃<br />バイナリ解析<br />パケット解析<br />暗号<br />トリビア<br />他(Web,QR,etc)<br />
  34. 34. 出題される問題<br />
  35. 35. 出題される問題<br />出題される問題の分野<br />フォレンジック<br />脆弱性攻撃<br />バイナリ解析<br />パケット解析<br />暗号<br />トリビア<br />他(Web,QR,etc)<br />
  36. 36. 出題される問題<br />出題される問題の分野<br />フォレンジック<br />脆弱性攻撃<br />バイナリ解析<br />パケット解析<br />暗号<br />トリビア<br />他(Web,QR,etc)<br />
  37. 37. DEFCON CTF ’09Trivia 100<br />
  38. 38. Trivia 100<br />問題:Name the X files episode that focuses on “a hacker con”.(ドラマ「Xファイル」の中で”a hacker con”を題材にしたエピソードは何?)<br />
  39. 39. Trivia 100<br />問題:Name the X files episode that focuses on “a hacker con”.(ドラマ「Xファイル」の中で”a hacker con”を題材にしたエピソードは何?)<br />とりあえず、タイトル全部試してみれば?<br />
  40. 40. Trivia 100<br />
  41. 41. 出題される問題<br />出題される問題の分野<br />フォレンジック<br />脆弱性攻撃<br />バイナリ解析<br />パケット解析<br />暗号<br />トリビア<br />他(Web,QR,etc)<br />
  42. 42. DEFCON CTF ’07Forensics500<br />
  43. 43. Forensics 500<br />問題:<br />あるシステムの物理メモリイメージを配布する. このイメージがダンプされた際に起動していたfoo.exeの中にある“forensics challenge”という文字列の仮想アドレスを答えよ.<br />
  44. 44. Forensics 500<br />ページング<br />CPU 32bit , Paging 4K<br />
  45. 45. Forensics 500<br />解答への流れ<br />物理メモリイメージからプロセスを切り出す<br />プロセス情報にあるPDBを取得<br />PDBから仮想アドレスマップを生成<br />仮想アドレスイメージから文字列を探す<br />文字列のある仮想アドレスが解答<br />http://ruffnex.oc.to/kenji/hiki/hiki.cgi?DEFCON+CTF+'07+Forensics+500<br />
  46. 46. 出題される問題<br />出題される問題の分野<br />フォレンジック<br />脆弱性攻撃<br />バイナリ解析<br />パケット解析<br />暗号<br />トリビア<br />他(Web,QR,etc)<br />
  47. 47. CODEGATE CTF ’11Crypto 100<br />
  48. 48. Crypto 100<br />問題:パスワードは何?<br />
  49. 49. Crypto 100<br />拡大<br />問題:パスワードは何?<br />
  50. 50. Crypto 100<br />解答:携帯電話のキータッチ<br />
  51. 51. Crypto 100<br />解答:携帯電話のキータッチ<br />in cryptography asubstitution cipher is a method of encryption by which units of plain text are replaced with cipher text according to a regular system the units maybe single letters pairs of letters triplets of letters mixtures of the above this cipher text is encrypted by telephone keypad so we call this keypad cipher<br />
  52. 52. 出題される問題<br />出題される問題の分野<br />フォレンジック<br />脆弱性攻撃<br />バイナリ解析<br />パケット解析<br />暗号<br />トリビア<br />他(Web,QR,etc)<br />
  53. 53. DEFCON CTF ’11 Finalbunny<br />
  54. 54. bunny<br />問題:<br />15323ポートをlistenするサーバプログラム<br />クライアントからconnectすると1バイトデータを受け取り、ランダムなポートをlistenする<br />新たにlistenされたポートにconnectすると、また1バイト取得後、ランダムなポートをlisten<br />以後、繰り返し<br />12バイト辺りでオーバーフローする脆弱性<br />
  55. 55. bunny<br />1. connect<br />15323<br />buffer<br />
  56. 56. bunny<br />1. connect<br />15323<br />2. fork<br />buffer<br />rand()<br />
  57. 57. bunny<br />1. connect<br />3. connect<br />15323<br />2. fork<br />buffer<br />rand()<br />
  58. 58. bunny<br />rand()<br />4. fork<br />1. connect<br />3. connect<br />15323<br />2. fork<br />buffer<br />rand()<br />
  59. 59. bunny<br />rand()<br />4. fork<br />4. connect<br />1. connect<br />3. connect<br />15323<br />2. fork<br />buffer<br />rand()<br />
  60. 60. 問題点は2つ<br />ランダムなポートの推測<br />shellcodeの置き場所<br />
  61. 61. 問題点は2つ<br />ランダムなポートの推測<br />shellcodeの置き場所<br />
  62. 62. 問題点は2つ<br />ランダムなポートの推測<br />shellcodeの置き場所<br />  実行ファイルを逆アセンブル<br />srand(time(0));<br />v = rand()% 30 + 5;<br />i = 0;<br />while(i < v){<br />listen_port= rand() % (signed int)0xFBFFu + 0x400;<br /> close(listen_fd);<br />listen_fd= server_listen(listen_port);<br /> accept(listen_fd);<br /> i++;<br />}<br />
  63. 63. 問題点は2つ<br />ランダムなポートの推測<br />shellcodeの置き場所<br />time(0)から生成されているので推測可能<br />  実行ファイルを逆アセンブル<br />srand(time(0));<br />v = rand()% 30 + 5;<br />i = 0;<br />while(i < v){<br />listen_port= rand() % (signed int)0xFBFFu + 0x400;<br /> close(listen_fd);<br />listen_fd= server_listen(listen_port);<br /> accept(listen_fd);<br /> i++;<br />}<br />
  64. 64. 問題点は2つ<br />ランダムなポートの推測<br />shellcodeの置き場所<br />  実行ファイルを逆アセンブル<br />srand(time(0));<br />v = rand() % 30 + 5;<br />i = 0;<br />while(i < v){<br />listen_port= rand() % (signed int)0xFBFFu + 0x400;<br /> close(listen_fd);<br />listen_fd= server_listen(listen_port);<br /> accept(listen_fd);<br /> i++;<br />}<br />
  65. 65. 問題点は2つ<br />ランダムなポートの推測<br />shellcodeの置き場所<br />最大35バイトしか<br />コピーできない<br />  実行ファイルを逆アセンブル<br />srand(time(0));<br />v = rand() % 30 + 5;<br />i = 0;<br />while(i < v){<br />listen_port= rand() % (signed int)0xFBFFu + 0x400;<br /> close(listen_fd);<br />listen_fd= server_listen(listen_port);<br /> accept(listen_fd);<br /> i++;<br />}<br />
  66. 66. 問題点は2つ<br />ランダムなポートの推測<br />shellcodeの置き場所<br />  実行ファイルを逆アセンブル<br />srand(time(0));<br />v = rand() % 30 + 5;<br />i = 0;<br />while(i < v){<br />listen_port= rand() % (signed int)0xFBFFu + 0x400;<br /> close(listen_fd);<br />listen_fd= server_listen(listen_port);<br /> accept(listen_fd);<br /> i++;<br />}<br />ただし、bufferの先に変数vが存在<br />buffer<br />
  67. 67. 問題点は2つ<br />ランダムなポートの推測<br />shellcodeの置き場所<br />  実行ファイルを逆アセンブル<br />srand(time(0));<br />v = rand() % 30 + 5;<br />i = 0;<br />while(i < v){<br />listen_port= rand() % (signed int)0xFBFFu + 0x400;<br /> close(listen_fd);<br />listen_fd= server_listen(listen_port);<br /> accept(listen_fd);<br /> i++;<br />}<br />つまり、変数vを上書きして<br />任意のサイズをコピーできる<br />buffer<br />
  68. 68. exploit<br />
  69. 69. 出題される問題<br />出題される問題の分野<br />フォレンジック<br />脆弱性攻撃<br />バイナリ解析<br />パケット解析<br />暗号<br />トリビア<br />他(Web,QR,etc)<br />
  70. 70. DEFCON CTF ’08Binary 100<br />
  71. 71. Binary 100<br />問題:これは何のライブラリ関数?<br />00000000 89C7 MOV EDI,EAX<br />00000002 89DE MOV ESI,EBX<br />00000004 89CA MOV EDX,ECX<br />00000006 C1E9 02 SHR ECX,2<br />00000009 F3:A5 REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]<br />0000000B 89D1 MOV ECX,EDX<br />0000000D 81E1 04000000 AND ECX,3<br />00000013 F3:A4 REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]<br />00000015 C3 RETN<br />
  72. 72. Binary 100<br />問題:これは何のライブラリ関数?<br />00000000 89C7 MOV EDI,EAX<br />00000002 89DE MOV ESI,EBX<br />00000004 89CA MOV EDX,ECX<br />00000006 C1E9 02 SHR ECX,2<br />00000009 F3:A5 REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]<br />0000000B 89D1 MOV ECX,EDX<br />0000000D 81E1 04000000 AND ECX,3<br />00000013 F3:A4 REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]<br />00000015 C3 RETN<br />memcpy<br />
  73. 73. 出題される問題<br />出題される問題の分野<br />フォレンジック<br />脆弱性攻撃<br />バイナリ解析<br />パケット解析<br />暗号<br />トリビア<br />他(Web,QR,etc)<br />
  74. 74. 嫌いな分野なので飛ばします<br />
  75. 75. 出題される問題<br />出題される問題の分野<br />フォレンジック<br />脆弱性攻撃<br />バイナリ解析<br />パケット解析<br />暗号<br />トリビア<br />他(Web,QR,etc)<br />
  76. 76. Web, QR code, etc… (pCTF)<br />別分野との複合問題<br />読めないQRを解読する問題<br />
  77. 77. 今後も新しい分野が作られていくと思います<br />
  78. 78. 最後にDEFCON本戦の結果を…<br />
  79. 79. 途中<br />
  80. 80. 結果<br />
  81. 81. 閉会式<br />
  82. 82. 帰国<br />
  83. 83. ご清聴、有難うございました!<br />
  84. 84. Any Questions?<br />

×