DEFCON CTF 2011愛甲健二sutegoma2
DEFCON?毎年7~8月にラスベガスで行われるセキュリティカンファレンス
DEFCON?毎年7~8月にラスベガスで行われるセキュリティカンファレンス日本から飛行機で約11時間
空港
タクシー
会場入り
ルール説明
競技開始
Capture the Flagとは?
CTF?Capture the Flag(旗取り合戦)の略セキュリティ技術を競うコンテストの総称
CTF?Capture the Flag(旗取り合戦)の略セキュリティ技術を競うコンテストの総称世界各国で開催されている
アメリカラスベガスDEFCON CTF
アメリカ
韓国韓国(ソウル)CODEGATE CTF
韓国
マレーシアクアラルンプールHITB CTF
マレーシア
その他台湾、ロシア、etc多くの国で開催されている
その他台湾、ロシア、etc多くの国で開催されている日本でもやりたい!
ルール問題出題型CODEGATE(韓)、DEFCON予選(米)サーバ攻防型HITB(馬)、DEFCON決勝(米)
ルール問題出題型CODEGATE(韓)、DEFCON予選(米)サーバ攻防型HITB(馬)、DEFCON決勝(米)
問題出題型
問題出題型出題された問題ファイルの中からパスワードを探し出し、入力することで得点が得られる
問題出題型出題される問題の分野フォレンジック脆弱性攻撃バイナリ解析パケット解析暗号トリビア他(Web,QR,etc)
問題出題型出題&解答サーバAチームCチームBチーム
ルール問題出題型CODEGATE(韓)、DEFCON予選(米)サーバ攻防型HITB(馬)、DEFCON決勝(米)
サーバ攻防型Aチーム解答サーバCチームBチーム
サーバ攻防型Aチーム解答サーバ各チームには脆弱性のあるサービスが動作するサーバが1台与えられるCチームBチーム
サーバ攻防型Aチーム解答サーバサーバを守りながら、他チームを攻撃することが、競技の基本ルールCチームBチーム
サーバ攻防型Aチーム解答サーバ他チームのサーバからパスワードを奪取して、解答サーバへ入力することで得点できるCチームBチーム
サーバ攻防型サーバで動作しているサービスは、運営チームから監視されている
サーバ攻防型サービスを停止させると、減点となる
サーバ攻防型出題される問題の分野フォレンジック脆弱性攻撃バイナリ解析パケット解析暗号トリビア他(Web,QR,etc)
出題される問題
出題される問題出題される問題の分野フォレンジック脆弱性攻撃バイナリ解析パケット解析暗号トリビア他(Web,QR,etc)
出題される問題出題される問題の分野フォレンジック脆弱性攻撃バイナリ解析パケット解析暗号トリビア他(Web,QR,etc)
DEFCON CTF ’09Trivia 100
Trivia 100問題:Name the X files episode that focuses on “a hacker con”.(ドラマ「Xファイル」の中で”a hacker con”を題材にしたエピソードは何?)
Trivia 100問題:Name the X files episode that focuses on “a hacker con”.(ドラマ「Xファイル」の中で”a hacker con”を題材にしたエピソードは何?)とりあえず、タイトル全部試してみれば?
Trivia 100
出題される問題出題される問題の分野フォレンジック脆弱性攻撃バイナリ解析パケット解析暗号トリビア他(Web,QR,etc)
DEFCON CTF ’07Forensics500
Forensics 500問題:あるシステムの物理メモリイメージを配布する. このイメージがダンプされた際に起動していたfoo.exeの中にある“forensics challenge”という文字列の仮想アドレスを答えよ.
Forensics 500ページングCPU 32bit , Paging 4K
Forensics 500解答への流れ物理メモリイメージからプロセスを切り出すプロセス情報にあるPDBを取得PDBから仮想アドレスマップを生成仮想アドレスイメージから文字列を探す文字列のある仮想アドレスが解答http://ruffnex.oc.to/kenji/hiki/hiki.cgi?DEFCON+CTF+'07+Forensics+500
出題される問題出題される問題の分野フォレンジック脆弱性攻撃バイナリ解析パケット解析暗号トリビア他(Web,QR,etc)
CODEGATE CTF ’11Crypto 100
Crypto 100問題:パスワードは何?
Crypto 100拡大問題:パスワードは何?
Crypto 100解答:携帯電話のキータッチ
Crypto 100解答:携帯電話のキータッチ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
出題される問題出題される問題の分野フォレンジック脆弱性攻撃バイナリ解析パケット解析暗号トリビア他(Web,QR,etc)
DEFCON CTF ’11 Finalbunny
bunny問題:15323ポートをlistenするサーバプログラムクライアントからconnectすると1バイトデータを受け取り、ランダムなポートをlistenする新たにlistenされたポートにconnectすると、また1バイト取得後、ランダムなポートをlisten以後、繰り返し12バイト辺りでオーバーフローする脆弱性
bunny1. connect15323buffer
bunny1. connect153232. forkbufferrand()
bunny1. connect3. connect153232. forkbufferrand()
bunnyrand()4. fork1. connect3. connect153232. forkbufferrand()
bunnyrand()4. fork4. connect1. connect3. connect153232. forkbufferrand()
問題点は2つランダムなポートの推測shellcodeの置き場所
問題点は2つランダムなポートの推測shellcodeの置き場所
問題点は2つランダムなポートの推測shellcodeの置き場所  実行ファイルを逆アセンブルsrand(time(0));v = rand()% 30 + 5;i = 0;while(i < v){listen_port= rand() % (signed int)0xFBFFu + 0x400;  close(listen_fd);listen_fd= server_listen(listen_port); accept(listen_fd); i++;}
問題点は2つランダムなポートの推測shellcodeの置き場所time(0)から生成されているので推測可能  実行ファイルを逆アセンブルsrand(time(0));v = rand()% 30 + 5;i = 0;while(i < v){listen_port= rand() % (signed int)0xFBFFu + 0x400;  close(listen_fd);listen_fd= server_listen(listen_port); accept(listen_fd); i++;}
問題点は2つランダムなポートの推測shellcodeの置き場所  実行ファイルを逆アセンブルsrand(time(0));v = rand() % 30 + 5;i = 0;while(i < v){listen_port= rand() % (signed int)0xFBFFu + 0x400;  close(listen_fd);listen_fd= server_listen(listen_port); accept(listen_fd); i++;}
問題点は2つランダムなポートの推測shellcodeの置き場所最大35バイトしかコピーできない  実行ファイルを逆アセンブルsrand(time(0));v = rand() % 30 + 5;i = 0;while(i < v){listen_port= rand() % (signed int)0xFBFFu + 0x400;  close(listen_fd);listen_fd= server_listen(listen_port); accept(listen_fd); i++;}
問題点は2つランダムなポートの推測shellcodeの置き場所  実行ファイルを逆アセンブルsrand(time(0));v = rand() % 30 + 5;i = 0;while(i < v){listen_port= rand() % (signed int)0xFBFFu + 0x400;  close(listen_fd);listen_fd= server_listen(listen_port); accept(listen_fd); i++;}ただし、bufferの先に変数vが存在buffer
問題点は2つランダムなポートの推測shellcodeの置き場所  実行ファイルを逆アセンブルsrand(time(0));v = rand() % 30 + 5;i = 0;while(i < v){listen_port= rand() % (signed int)0xFBFFu + 0x400;  close(listen_fd);listen_fd= server_listen(listen_port); accept(listen_fd); i++;}つまり、変数vを上書きして任意のサイズをコピーできるbuffer
exploit
出題される問題出題される問題の分野フォレンジック脆弱性攻撃バイナリ解析パケット解析暗号トリビア他(Web,QR,etc)
DEFCON CTF ’08Binary 100
Binary 100問題:これは何のライブラリ関数?00000000  89C7          MOV EDI,EAX00000002  89DE          MOV ESI,EBX00000004  89CA          MOV EDX,ECX00000006  C1E9 02       SHR ECX,200000009  F3:A5      REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]0000000B  89D1       MOV ECX,EDX0000000D  81E1 04000000 AND ECX,300000013  F3:A4         REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]00000015  C3            RETN
Binary 100問題:これは何のライブラリ関数?00000000  89C7          MOV EDI,EAX00000002  89DE          MOV ESI,EBX00000004  89CA          MOV EDX,ECX00000006  C1E9 02       SHR ECX,200000009  F3:A5      REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]0000000B  89D1       MOV ECX,EDX0000000D  81E1 04000000 AND ECX,300000013  F3:A4         REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]00000015  C3            RETNmemcpy
出題される問題出題される問題の分野フォレンジック脆弱性攻撃バイナリ解析パケット解析暗号トリビア他(Web,QR,etc)
嫌いな分野なので飛ばします
出題される問題出題される問題の分野フォレンジック脆弱性攻撃バイナリ解析パケット解析暗号トリビア他(Web,QR,etc)
Web, QR code, etc… (pCTF)別分野との複合問題読めないQRを解読する問題
今後も新しい分野が作られていくと思います
最後にDEFCON本戦の結果を…
途中
結果
閉会式
帰国
ご清聴、有難うございました!
Any Questions?

CTF(Capture the Flag)って何?