Monthly Archives: 11月 2014

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担当をしているモンジサンです。

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

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

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

高尾山登山

M2のnyamaです.

***** 今日から文化祭です!! MCCでも工学部キャンパスで展示をしているので良かったらご覧ください!! *****

ブログの更新のことを失念していました!(土下座
9/29,私たちは突発高尾山企画に行ってきました.

ちなみに,この企画は2年前にも行われていましたので,これで2回目になります.
今回の参加者は6人でした.M2 1名,M1 2名, B3 1名, B2 2名です.

さて,この企画の目的は,”運動不足の解消”です.
日頃,パソコンと睨めっこばかりしている私たちにとって,運動不足はいつまでもついて回る問題です.
高尾山は,手軽に登れる初心者向けの山であり,私達にはうってつけの山ってわけです.

この日,13:50に集合(私と他1名は10分遅刻(土下座))し,14:00から登り始めました.
今年はあまり一般的でない稲荷山コースを経由して頂上まで登り,下りには1号路を使用しました.

稲荷山コース,思いの外登山らしいコースでした^^;
私は開始30分で息が上がってしまいました.以降は大体30分を目安に休憩をはさみ,頂上を目指しました.
道中はIngressで陣取り合戦も行われていました.

以下,登山道,展望台の画像です.
tenbo
(登山道の写真は誰かが上げてくれる)

15:40(記憶が定かでない),頂上に到達しました.以下が山頂の風景です!
ByrmFe1CQAAW03-.jpg-large
(M1めでぅーささんの投稿からパクりました><)

そういえば,ヤマノススメでも高尾山に上っていましたね!
ByrlyMSCMAAVWz5
(同上)

後,こちらはニャンコな感じですねー.
takao_neko
takao_neko02

帰りは1号路です.こちらにもヤマノススメで紹介されていた諸々がありましたね.
これとかこれとかこれとか.
Power04
Power03
Power02
Power01

さて,実は本企画にはもう1つの目的がありました.ずばり,高尾山ビアマウントです!
3500円で2時間食べ放題,ビールも飲み放題のとても魅力的なご飯でした.

こちらが晩御飯の様子です.
Meshi
Meshi02

どれもおいしかったです.個人的には釜焼きピザ,揚げナスが特に美味でした.

2時間料理を堪能した後,ケーブルカーにて下山しました(酔っ払いは徒歩での下山は控えてくださいね!).
ケーブルカー内では,ケーブルカーの仕組みについて盛り上がる辺り,流石工学部と感心していました.

駅到着後は各自解散,電車内では皆疲れていたようでした.

最後にまとめです.
本企画の目的”運動不足の解消”は,達成されたと思います.
ビアマウントでビールクズしていたら意味ないんじゃないかと思われるかもしれませんが,美味しかったのでいいんです.
飯は安らぎです.

私はM2なので来年以降は参加できないかもしれませんが,また運動不足を感じたら誰かに企画してもらいたいですね.