5. CTFとは
?Capture The Flag
l 情報技術を絡めた旗取り合戦
l 幅広い分野から出題される
l セキュリティと絡めやすい競技
?個?的にCTFとセキュリティは別物だと思ってる
?世界全国で開催されている
l ?本だとSECCON CTF、Trend Micro CTF
l 初?者向けのSECCON Beginners(ctf4b)
4
6. CTFのジャンル
?ジャンルは様々
l Web
l http使えば全てweb
l Forensic
l ?番現実のセキュリティ業務で役に?ちそう
l Reversing
l 総合格闘技
l Crypto
l 頭の良い?しか出来ない
l Pwnable (Exploit)
l 今?のお題
l Misc
l なんでもアリ
5
12. 1. 表層解析
?fileコマンド
l 基本的な情報はこれで取れる
?例の場合だと
l 32bit ELF
l アーキテクチャはx86
l dynamic linkでライブラリを使?している
l strippedなのでシンボル情報がない
% file ./my_sandbox
./my_sandbox: ELF 32-bit LSB executable, Intel 80386, version 1
(SYSV),
dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.24,
BuildID[sha1]=44ab05f5782a9a5dbae69dd6acea3741c79f7b01,
stripped
11
13. 1. 表層解析
?checksecコマンド
l セキュリティ機構を確認できる
?例の場合だと
l Full RELROなのでGOTの上書きはできない
l canaryは存在しないのでstack BOFが有効
l Nxbitがないのでシェルコードの実?が狙える
l PIEはないので、命令とデータは固定アドレス
% checksec ./my_sandbox
[*] '/home/hama/ctf/EDCTF/MySandbox/my_sandbox'
Arch: i386-32-little
RELRO: Full RELRO
Stack: No canary found
NX: NX disabled
PIE: No PIE
12
43. Address Space Layout
Randomization
?アドレス空間配置のランダム化
l ライブラリやheap、stackが配置されるアドレ
スをバイナリの起動ごとにランダムにする
l アドレスが分からないとエクスプロイトの実?
が困難になる
?リークできれば問題はない
l GOTには解決されたライブラリ関数のアドレス
がある -> リークしたアドレスから関数のオフ
セットを引けばlibcのベースアドレス
l 最悪ブルートフォースで当てる
42