SECCON 2014大阪大会 x86 Remote Exploit Challenge

1.大会概要

SECCONとは、日本で実施されている最大のCTF大会である。

CTF(Capture The Flag)とは、コンピュータ内に保存された情報を旗に見立てて、技術を駆使しながら取得する個数や速さを競い合う形式のコンテストである。大会形式は、問題1問に対してファイルの解析や暗号解読などをするものと、参加者同士がコンピュータに対して攻撃と防御を行う攻防戦形式のものに大きく分かれる。

 

SECCON 大阪大会 x86 Remote Exploit Challenge

x86ファミリのプロセッサで動いているサーバーに対して、シェルコードを作成して送り、隠されたファイルを取得する。攻撃によって取得したファイルの数をチームで競う。

日程:2014年 11月9日(日)

場所:グランフロント大阪タワーC 10F 慶応大阪シティキャンパス

主催:SECCON実行委員会/日本ネットワークセキュリティ協会(JNSA)

共催:奈良先端科学技術大学院大学(NAIST)

協力:enPiT Security (SecCap) NAIST

 

2.競技内容

サーバー上で走っているプログラムはクライアントからの攻撃コードを受け取り、フィルタチェックを通してからコードを実行する。今回はプログラムの脆弱性を探して突くような問題ではなく、予めコード実行環境が整えられているため、作成するのはexploitではなくpayloadとなる。侵入したコンピュータの制御を奪うためにシェルを立ち上げることが多いことからshellcodeと呼ばれている。

ステージは全てで16個あり、それぞれのステージで異なるフィルタチェックを通過するようにシェルコードを書かなければならない。なお、各ステージに1つずつフラグが存在している。

以下にフィルタチェック内容を挙げる。

  • Stage00: オールスルー
  • Stage01: ヌル文字禁止
  • Stage02: push禁止
  • Stage03: ‘/bin/sh’禁止
  • Stage04: int 0x80 禁止
  • Stage05: int 0x80、syscall禁止
  • Stage06: 全て8byte命令
  • Stage07: 全て4byte命令
  • Stage08: 全て2byte命令
  • Stage09: アセンブラ短歌
  • Stage10: アセンブラ都都逸
  • Stage11: push, ret のみ許可
  • Stage12: Alpha numericのみ許可
  • Stage13: アセンブラ短歌 (5,7,5,7,7byte長の5命令のみ)
  • Stage14: アセンブラ俳句 (5,7,5byte長の3命令のみ)
  • Stage15: アセンブラ都都逸 (7,7,7,5byte長の4命令のみ)

各ステージに適当なシェルコードを作成して送信し、サーバー上でシェルを立ち上げる。

しかし、forkが禁止されているために直接コマンドを実行することができない。その代わりにdashのビルトインコマンドやexecは利用可能である。従って、’exec cat keyword.txt’を実行させることでkeyword.txtを読むことができる。

今大会ではファイルを読むことによって得られたフラグを紙に書いて提出し、競技終了後に審査員が採点する。そのため、解いた速さ・順番は特に考慮されない。

 

3.結果

私たちのチームtuat_mccが今回解くことができたのは、以下の7問である。

Stage00, Stage01, Stage03, Stage04, Stage05, Stage09, Stage10

この結果、全参加チーム18チーム中4位という成績となった。

 

 

4.感想

icchy

icchyです。今回の大会ではフィルターの解析と簡単なShellcode作成をしました。普段はShellcodeを書いたことがあまりなく、制約条件を突破するのにツールの使い方をひたすら検索していましたが最後までうまく行きませんでした。もっと典型的な手法を知り、ExploitだけでなくShellcode作成にも取り組んで行きたいと思います。また、会場では他チームとの交流もできて非常に有意義な遠征でした。

 

ShiftCrops

私たちtuat_mccは月に1,2回のペースでオンラインCTFに参加し、日々練習に勤しんでいます。しかしながら、我々はBinaryのexploit系の問題は得意とは決して言えないように感じられます。

今回の大会では、exploitの重要なパートの一つであるシェルコード作成をメンバー全員で取り組むことを通じて、現状に対する認識を一致させて全体の力を底上げすることができたと思っています。

これ以降の大会でも、今回の経験を活かすタイミングはまだまだ多くあると考えるので、この遠征は私たち全員にとって、とても貴重で意義深い経験となりました。

 

モンジサン

tuat_mccでJavaScript担当をしているモンジサンです。

今回の大会で行ったシェルコードは、ユーザーに近い部分を担当していた私としては初めて触れる分野で新鮮な経験をしました。

プログラムを構築する部分では実力を発揮できたと思いますがまだまだ勉強が必要だと再確認しました。

今後はもう少し広い分野を担当できるよう頑張っていきたいです

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>