■SECCON 2013 Shellcoder's challenge(大阪大会)
SECCON 2013 関西大会(大阪)では、機械語力を競うチャレンジ形式のコンテスト(Shellcoder's challenge)を併催します。
チームエントリーではなく個人エントリーとなります。
■ 競技内容
主な競技内容は以下を予定しています。
・Shellcodeスピードライティング(入門編)
与えられる簡単なお題をクリアする機械語を作成してみるChallengeです。
勝敗はありません。
・機械語スピードリーディング(入門編)
与えられる機械語列を読み、動作を把握してみるChallengeです。
勝敗はありません。
・Shellcodeスピードライティング
与えられたお題を満たすShellcodeをもっとも速く作成した人が勝者となります。
・機械語スピードリーディング
与えられた機械語列をもっとも速く解読した人が勝者となります。
・Exploitingスピードアタック
用意されたマシンへもっとも速く侵入した人が勝者となります。
※競技内容は予告なく変更になる可能性があります。
■ 応募期限
12月14日(土)朝まで、定員:50名(座席に余裕があれば、当日受付も対応します)
■ 日程と場所
日程:12月14日(土) 12:00~18:00
場所:マイドームおおさか 8階 第1+2会議室
■ タイムスケジュール
12:00~13:00:受付
13:00~13:30:個人戦
・機械語スピードリーディング(入門編)<勝敗なし>
・機械語スピードリーディング(1回戦)
13:30~16:00:チーム戦
・機械語スピードリーディング(2回戦)
16:00~16:30:個人戦
・Shellcodeスピードライティング(入門編)<勝敗なし>
・Shellcodeスピードライティング
16:30~18:00:チーム戦 or 個人戦
・Exploitingスピードアタック(応用編)
※参加者だけではなく見学者の方々も自由に挑戦していただけます。
初心者の方は回答を見ながら挑戦・勉強することが可能です。
■ 応募条件
特にありませんが、コンピュータを扱う競技ですので当日ノートパソコンを持参できる方を対象としています。
また機械語を扱う競技であることをあらかじめご了承ください。
入門者向けのコンテンツも当日用意していますので、興味がある方はお気軽にご参加ください。
応募に関しては入門向けか競技参加かどうかにかかわらず、このページから行ってください。
■ 競技詳細
・Shellcodeスピードライティング
Shellcodeスピードライティングは、特定の条件に答える形で機械語列を作成する競技です。たとえば以下のような条件が出されます。
- /bin/shを実行する
- 0x00を使用できない
- 全体サイズ64バイト以内
この場合、全体サイズ64バイト以内で、0x00を使用せずに、/bin/shを実行する機械語列を作成します。
指定される条件は、このようなスタンダードなものだけじゃなく多種にわたります。
- HelloWorld!を表示する
- printableな文字(バイト)しか使用できない
- ecxレジスタが使用できない
- 64命令しか実行できない
様々な条件をクリアして次のステージへ進みます。
・機械語スピードリーディング
機械語スピードリーディングは、与えられる機械語列を解読し、その機械語列が何を意味するものなのかを答える競技です。たとえば以下のような機械語列が出題されます。
00000000 89C7 MOV EDI,EAX
00000002 89DE MOV ESI,EBX
00000004 89CA MOV EDX,ECX
00000006 C1E9 02 SHR ECX,2
00000009 F3:A5 REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]
0000000B 89D1 MOV ECX,EDX
0000000D 81E1 04000000 AND ECX,3
00000013 F3:A4 REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]
00000015 C3 RETN
この機械語列を解読すると「memcpy」であることが分かります。
このような機械語列を解読していき次のステージへ進みます。
・Exploitingスピードアタック
Exploitingスピードアタックは、与えられるプログラムを解析し、脆弱性を利用してExploitを作成する競技です。たとえば次のようなプログラムが与えられます。
#include <stdio.h>
int main(int argc, char *argv[])
{
printf(argv[1]);
return 0;
}
このプログラムにはフォーマットストリングバグの脆弱性があります。これを利用して任意のコードを実行するExploitを作成して次のステージへ進みます。
■ 表彰について
総合得点がもっとも高い人が優勝となります。
優勝者の方には2014年3月に開催されるSECCON 2013全国大会での表彰式にご参加いただけるよう、ご招待いたします。