Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

FIT-HAC CTF

456 views

Published on

FIT-HACK CTF

Published in: Technology
  • Be the first to comment

  • Be the first to like this

FIT-HAC CTF

  1. 1. 2017/04/29 みんなで振り返るFIT-HACK CTF 1
  2. 2. 自己紹介 • 名前:福田隆誠 • 所属:福岡工業大学 • サークル:FIT-HACK • 好きな言語:python,プロデル 2
  3. 3. FIT-HACK 近年、凶悪化するサイバー犯罪に立ち向かうため、攻撃 者の視点から様々なテクニックを学ぶ情報系サークルで 次世代のセキュリティスペシャリストになることを目標とし ている また、 プログラミングやネットワーク構築にも力を入れています 3
  4. 4. FIT-HACK https://www.nw.fit.ac.jp/ 4
  5. 5. 主な活動内容 • CTFの学習 • プログラミングの学習 • ウェブページ制作 • サーバ管理 • 脆弱性や暗号アルゴリズムに関する学習 • SECCONやプログラミングコンテストへの参加 5
  6. 6. 活動実績 SECCON 2016 九州大会(6月) Team: Rosenburg Engel(2年) /Beginner(1年) /Avax(1年) SECCON 2016 大阪大会(10月) Team: 346(1・2年合同) 6
  7. 7. 活動実績 SECCON 2016 オンライン予選(12月) Team: FIT-HACK(サークルメンバー全員)62/1834位 7
  8. 8. CTFとは? • Capture The Flagの略称 • セキュリティを中心に広い分野の知識が必要 • 大きく分けて攻防戦、問題形式の二つに分かれる 8
  9. 9. 問題形式 • 別名Jeopardy(ジョパディー) • 渡される問題からフラグ(文字列)を抜き取る 9
  10. 10. 問題ジャンル • Web • Crypto • Binary • Forensic • Recon • Steganography • Misc • Trivia 10
  11. 11. 問題ジャンル:Web Webサイトに隠れている脆弱性を利用してフラグを抜き 出す問題がよく出題される 11
  12. 12. 問題ジャンル:Crypto 古典暗号や現代暗号の復号、オリジナル暗号のソース コードを渡されて復号処理を書かなければならない問題 が出題される 12
  13. 13. 問題ジャンル:Binary コンピューターがデーターを理解するには、「0」と「1」で 表現されているデーターに変換されます。しかし、CTFで は「実行可能なデータファイル」を指します。このバイナリ を実際に動かしてみて、どんな動きをしているのかを調 べることにバイナリ分野は主観をおいています。 13
  14. 14. 問題ジャンル:Forensics 壊れたファイルの修復や削除されたファイルの復元を目 的とした問題が出題される 14
  15. 15. 問題ジャンル:Recon 画像のGPS情報を頼りに場所を特定するような問題が 出題される 15
  16. 16. 問題ジャンル:Steganography ファイルの中に隠された情報を抜き出す問題が出題され る 16
  17. 17. 問題ジャンル:Misc 上記の問題に含まれない問題が出題される最近では複 合問題で出されることも 17
  18. 18. 問題ジャンル:Trivia 知識量や、調べる力が必要な問題が出題される。 18
  19. 19. 19
  20. 20. 問題作成 1月 チーム結成、問題作成開始 2月 問題検証 3月 修正および新たな問題を作成 4月 CTF開催、CTF開催中に問題作成 20
  21. 21. 1月:チーム結成、問題作成開始 • 問題担当の決定 • 問題作成に必要な環境の導入 • 当初は今の一年生に解かせる問題を作成 21
  22. 22. 2月 問題検証 • 前半は試験により問題作成を休む • 後半は問題作成 • 28日にこれまで作問した問題の検証 22
  23. 23. 3月 修正および新たな問題を作成 • 問題の検証を行って修正できるものは修正 • 簡単すぎるものは没に… • 新たに問題作成に取り掛かる 23
  24. 24. 4月 CTF開催、CTF開催中に問題作成 • CTFの開催 • 開催中に新たな問題の作成 24
  25. 25. 問題作成 • Confluenceを利用 25
  26. 26. 出題形式 • 問題形式 • Jeopardy(ジョパディー) 26
  27. 27. 今回出題した範囲 • Crypto • Binary • Web • Steganography • Forensic • Recon • Misc 27
  28. 28. Cryptography • Flag 28
  29. 29. Crypto:Flag Flag.zipのパスワードを解析する問題 29
  30. 30. Crypto:Flag 普通にパスワードを入力してもパスワードはわからない ブルートフォース攻撃 fcrackzipコマンド 30
  31. 31. Crypto:Flag 31
  32. 32. fcrackzip 今回のパスワードは1864 数字だけしか含まれてないので解析はすぐ終わる ただし 文字と数字を組み合わせ、かつ大文字と小文字を入れ れば解析は膨大な時間を要する とわいえ fcrackzipコマンドには辞書ファイルを使った攻撃もできる ため1234,asdf,qwerなどをパスワードに使うのは禁物 32
  33. 33. Binary • EXE • FITRPG • Number 33
  34. 34. Binary:EXE 34
  35. 35. Binary:EXE 35
  36. 36. Binary:EXE ELF 64-bit 36
  37. 37. Binary:EXE • ELFを実行できる環境で実行すると $./problem.exe 37
  38. 38. Binary:FITRPG • Attack:攻撃 • Boost:ため • Heal:回復 38
  39. 39. Binary:FITRPG 39
  40. 40. Binary:FITRPG うさみみハリケーン 40
  41. 41. Binary:FITRPG 検索->メモリ範囲を指定して検索(64bit) 41
  42. 42. Binary:FITRPG 42
  43. 43. Binary:FITRPG 43
  44. 44. Binary:FITRPG Flag is FIT{1sdf3a9f} 44
  45. 45. Binary:Number 45
  46. 46. Binary:Number [root@kali]# file number number: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux- x86-64.so.2, for GNU/Linux 3.0.0, BuildID[sha1]=9f41de34cf038d1aeedd774fbf57078c5c5a 62e1, not stripped 46
  47. 47. Binary:Number 64bit ELF 47 IDA Demo Olly Dbg 使えない… Objdumpを使って解析
  48. 48. Binary:Number Objdump:ELFからアセンブラのコードを吐き出すことがで きる 4006bc: 83 e8 1a sub $0x1a,%eax 4006bf: 89 45 f0 mov %eax,-0x10(%rbp) 4006c2: 8b 45 f0 mov -0x10(%rbp),%eax 4006c5: 3d 66 04 00 00 cmp $0x466,%eax 48
  49. 49. Binary:Number [root@kali]# ./number hello!! Please collect number 1152 FIT{2.718281828} 49
  50. 50. Web • 100count • Fake • Look_quickly 50
  51. 51. Web:100count 100回足し算を行う? 51
  52. 52. Web:100count 52
  53. 53. Web:100count 53 どうやって足し算のカウントを 管理している?
  54. 54. Web:100count ChromのEdit This Cookie 54
  55. 55. Web:100count 55
  56. 56. Web:100count 56
  57. 57. Web:Fake 57
  58. 58. Web:Fake 58
  59. 59. Web:Fake 59
  60. 60. Web:Fake 60
  61. 61. Look_quickly 61
  62. 62. Look_quickly 62
  63. 63. Look_quickly • 1秒以内にcookieの内容を見ると 63
  64. 64. Look_quickly 64 http://www.tagindex.com/tool/url.html より
  65. 65. Look_quickly 65 http://www.tagindex.com/cgi-lib/encode/url.cgi より
  66. 66. Look_quickly • URLエンコードとは URLでほんとは使えない文字を別の文字列に変化して 表現すること 例 } = %7D { = %7B スペース = %20 66
  67. 67. Steganography • MP3Stego • Hide_flag 67
  68. 68. Steganography:MP3Stego connection.mp3 ダイヤルアップ音が流れる ダイヤルアップ接続 電話回線を使用してデータを音に変換しインターネットに 接続すること 68
  69. 69. Steganography:MP3Stego 問題名からMP3Stegoツールを使用 Decode.exe -X connection.mp3 69
  70. 70. Steganography:MP3Stego $strings connection.mp3 | grep pass The pass is dialup 70
  71. 71. Steganography:MP3Stego Decode.exe -X -P dialup connection.mp3 connection.mp3.pcmファイルが生成される 71
  72. 72. Steganography:MP3Stego FIT{PeePeeHyoroRorro} 72
  73. 73. Steganography:Hide_flag Hide_flag.png 真っ白な画像を渡される。 Stegsolveツールを使用する 73
  74. 74. Steganography:Hide_flag Stegsolve DataMatrixと判明する。 74
  75. 75. Steganography:Hide_flag https://online-barcode-reader.inliteresearch.com/ より 75
  76. 76. Steganography:Hide_flag FIT{rtuw8Enj8f2D} https://online-barcode-reader.inliteresearch.com/ より 76
  77. 77. 反省 • 意味のない文字列だとわかりずらいが逆に意味のあ る文字列だと簡単に推測されてしまうため対策が必要 • 十分な問題検証をできなかった • 十分な連絡が取れていなかった 77
  78. 78. 改善 • 意味のある文字列にLeet表現を使うとい推測されずら くなる • 問題の解説をもっと詳しく書く • コミュニケーションツールをもっと上手使うことが大切 78
  79. 79. 感想 ほとんど寝なしで作問したり イベント開催中に作問したり 外出先で作問して歩いて帰ることになったり 大変なこともあったが、学べることが多かった 79
  80. 80. 80 ご清聴ありがとうございました

×