雑記」カテゴリーアーカイブ

SECCON CTF 第一回 全国大会に参加してきました。

WP_000101

どうもみむらです。

先日、自分の通っている東京電機大学にて SECCON CTF 全国大会が開かれ、
そこに wasamusume として参加してきました。

九工大, 筑波大, NAIST, IISEC と予選が計4回実施されたわけですが、
そのうち、IISEC (横浜) での大会において優勝し、今回全国大会に参加してきたという感じです。

参考資料:

パケット解析にクルシミマス? SECCON横浜大会開催 – @IT
http://www.atmarkit.co.jp/ait/articles/1212/26/news026.html

SECCON CTF 横浜大会に行ってきました – みむらの手記手帳

 

結果は2位。

本当に僅差で、かなり悔しいけれど、
一方でここまでよく行ったなと、今結果を見て思いますね。

http://www.seccon.jp/2013/02/blog-post_26.html

image

内訳:

image

うむむ。。

 


大会ルール:

このへん参照。
http://www.phdays.com/ctf/king/

“King of The Hill” というらしい。

今回の大会の感じから簡単に書くと、

最初はウェブアプリなり何なり、そのサーバ上で動いているやつの脆弱性を突いてフラグを取る。
(この辺は、予選の時と同じような感じ。

その後、自分のチームのフラグワード(15分ほどで書き換わる)をサーバの指定された所に書き込んで、
あとは更新されたら更新して、相手のチームがフラグをとれないように、書き込めないようにいろいろと細工する。

上のランキングでは、
「サブミット」となっているのが脆弱性を突いてフラグを取って、得点サーバに送信して得られたポイントで、
「フラッグ」となっているのが、サーバに自分のフラグワードを書き込み続けた時間に対してのポイント
になっています。

フラッグについては更新される毎に書き込めているかを得点サーバからチェックされ、
書き込めていると判断されたチームに対して、解けているチーム数に応じた得点がその都度付与されます。

 

・・・だいたいこういう感じの攻防戦でした。


チーム構成:

かーみーさん, あたがわさん, Dec さん, ゆったんたん, Cookie-s (こおしいず) さん。 あと私。

横浜の際のメンバ構成をそのまま変えずに参加しました。

 

チーム名は wasamusume

こういうことを言われたりするのですが、
その辺に関しては、 “ SECCON CTF 福岡大会に参加してきた “ あたりの記事を見てください。

わかる人にはわかるとおもいます。。

 

あと、チームリーダーだったんですが、
主に仕事したのは雑用と、メディア対応と、幼女対応(重要, 大事)
だったよーな。。

あめ玉を頂いて、そしてスカイツリーがすごいということを伺いました。
大会中ってみんなピリピリしてるんですが、あの方のおかげで和みました。


Writeup:

すでにチームのメンバがいくつか書いていますので、
そちらを先にご覧ください。

第一回 SECCON CTF 全国大会に参加してきました! – falcon071011.log

SECCON CTF全国大会へ行って来ました – writeup  – cookies.txt .scr

SECCON 全国大会参加 – あたがわの日記

今回はチーム全員が協力して問題に取り組むという形であり、
この問題は誰、というような解き方をしていません。

従いまして、断片的になりますことご了承ください。

 

Mercury:

Stage1:

JPN, Eng というプルダウンメニューがあり、選択すると文字が出る。

ディレクトリトラバーサルの脆弱性突くもの。
NULL 文字を表すのに “%0” ではなく、 “%00” と表記すべきというところに気づくのに遅れたのが、まず反省点。

hoge と入力すると、 hoge.txt を見に行くことと、 stage2 というディレクトリを見つける。

ゆったん, こおしいずさんの2人が
“ stage2/.htpasswd%00 “ をやってパスワード情報の書かれたファイルを取り出し、
John The Ripper において平文情報に戻す。

後はその情報を元にアクセス。

 

Stage2:

SQL クエリを投げた結果が一覧で表示される。ただし、パスワード部分は “ * “ に置換されている。

SQL Injection を突くもの。
同一のレコードにパスワードが平文で記述されているため、
UNION でくっつけて 平文表示されている領域に表示させるようにすれば出てくる。

この辺も高校生コンビが UNION して結果を見せてくれた。

パスワードに /stage3xyz/ とあり、そこにアクセス。

 

Stage3:

画像をアップロードするアップローダー。

index.php と *.jpg (だったかな)が許可されていることがエラーからわかる。
適当に、 exec 関数を呼ぶ php ファイルをアップロードするとちゃんと動く。

find コマンドを実行させてディレクトリ構造を調べると、
/home/stage4 というディレクトリがあることに気づく。

同時に、 /var/www/html/  に FLAG というファイルがあることもわかる。

 

しばらく悩んだ後、
私「かーみーさん、 /home/stage4/.ssh/ にアクセス用の鍵書き込め無いかね?w」

ってことで、かーみーさんの Linux 環境でキーを作成、 PHP で echo 使って書き込む。

=> \書けた/ => \アクセスでけた!!/ => \なんかキー出た!/ => ウォッシャアアア

ということでそれを送信して得点。

 

Stage4:

SSH でつないでもすぐに切られてしまうため、どうしようという状態に。

私「SCP だったらつながるんでね?」
かーみー「えっ・・?」

ということで、 WinSCP つかって SCP モードで接続。  => \一覧出てきた/

/etc/sudoers を見ると、 stage4 から stage5 に /bin/vi をシェルとして上がれるよ! とあったので、
そこから vim を使っていかにしてフラグを書き込むかに悩み。

(注: /bin/vi とありますが、中身は vim 7.x でした。

 

私はそれまで知らなかったんですが、 引数でもいろいろとできるんですね。 vim すげー。

 

vim で素直に追記しようとすると、「swap ファイルが残ってるけれどどうすんの!」と聞かれて、
それどころじゃないよ! とやっている間に SSH が切られてしまう。

いろいろとやって、

# sudo -u stage5 /bin/vi "+:! echo FLAG >> /var/www/html/FLAG"

これで書き込めることがわかる。

ということで、緑の wasamusume さんフラッグポイント獲得 (voice: 児玉清 or 博多華丸

 

 

Neptune:

(02/28 修正: Uranus ではなく Neptune でした。

あたがわさんから “.backdoor” という名前の x86 バイナリを頂く。IDA に投げ込む。

“2つの引数取るよ!”  “一つ目は ‘IamTOM’ だよ!!” と

アセンブラコードさんが、私に超絶アピールしていたので、その旨をあたがわさんに伝える。

 

 

なんかこんなこと言われましたが、違うんですよ! アセンブラコードが(ry

 

・・・・変なこと書くと、ますます怪しい人認定もらうので黙っておきます。

挙動としては、 引数を2つ取るかどうかを判定し、

取るなら1つめが “IamTOM” かどうかを判定する。

この2つが正しければ、2つめの引数を system 関数へ渡すという流れになっていました。

参考資料: http://linuxjm.sourceforge.jp/html/LDP_man-pages/man3/system.3.html

 

flag 書くには特定のユーザ権限が必要なのですが、 この .backdoor というファイルを持っているユーザが、

flag を持っているユーザと同じで、

このプログラムで命令を実行すると、ファイルを持っているユーザ権限で動くため、

flag ファイルを書き込める、と。 そんな感じ。

 

あとは、あたがわさんがサーバ監視して、他のチームがやってくるのをニヤニヤ。

それこそ、城に侵入して天守閣まで上り、敵が攻め入れずにがんばっているのをニヤニヤ眺めているような。

 

 

Jupitor:

Windows XP 上に置かれた anhttpd と、その他のプログラムを組み合わせる問題。

私が一番力を入れてやっていた問題ですが、解けませんでした。。

MS08-067 の脆弱性が残った XP だったようで、そいつで侵入できたらしいです。

加えて、大会中に RDP 接続を行ってごにょごにょされたり、 shutdown コマンドが実行されたりして、

最終的にシャットダウン状態になって終了まで復活しませんでした。 しょぼん。。

自宅に戻ってから、 Armitage を使ってごにょごにょ。

この辺も、チーム mofupp さんがやった形跡が見られたんかなー。んー。

 

Mars:

2日目の後半から参加。( Jupitor を落とされたので )

私「どんな感じ?」

Dec さん 「ここに打つと、コマンドが実行されるんだけど、結果がかえってこないんよー。」

私「 Dec さん、 メールサーバー立てたら帰ってくるかな・・?w」

ってことで、私のマシンでメールサーバー立てる。

あたがわさんに 「ネット構成どんな感じになってるんー?」 と聞いていろいろと調べてもらったところ、

NAPT の下に各島が潜ってると思いきや、そんなことまったくないということがわかる。

・・・で、私のパソコン宛にメール来ないかなーと待ってみる => メール来ませんでした。

私「んじゃ、 netcat 使えないかなw」

Dec さん 「!?」

ということで、私のマシンで netcat を listen モードで立ち上げて待機。 => 結果が帰ってくる!

うぉし、これで行くぞ-!!! とやっていたんですがタイムアップ。

 


参加してみて:

今回のチームは、大変すばらしいチームであったと思います。

ノリがよく、和気藹々として、それでいて技術力がある。

これほどすばらしいチームというのも、他にないのではないかと思います。

チームメンバが書いているブログを見てみますと、

wasamusume のリーダーやってよかったなと思うわけです。

 

今回の全国大会で SECCON CTF は今年度分の一つの区切りということになるかと思います。

今回協力して頂いたチームメンバ以外にも、

九州大会、筑波大会で協力を頂いた方がいます。

皆さんの協力や応援があり、全国大会でこのように接戦となるような結果を収められたというのは、

チーム wasamusume としていい結果だったのではないかと思います。

本当にありがとうございました。

勿論、多くの反省点や1位をとれなかったという点がありますが、

これは来年度版の SECCON CTF があれば、そこでまた再挑戦できたらなと思っております。

各地で予選が開催される際は、また声を掛けるかと思いますが、

その際は、もしよろしければご協力頂けたらと思います。

 

そして、他のチームの皆様や運営に関わった皆様、

スポンサーの皆様等々をはじめとする関係者の皆様に感謝の意を申し上げます。

 


最後に:

硬い文章で終わらすってのは、どーも wasamusume っぽくないので。

私のムチャぶりに対応して頂いたチームメンバに謝罪しつつ。

そして、その場のノリで 私がくすぐって、くすぐられた方へ。

・・・こればっかりは反省してないので、またやります(ぉ

 

来年度、また SECCON があれば、このメンバをベースにまた招集を掛けたいですね。

SECCON CTF 横浜大会にいってきました

WP_000511

みむらです。 SECCON CTF 横浜大会に行ってきました。

http://www.seccon.jp/p/201212yokohama.html

昨年の12月22日に行われ、会場は実にクリスマス+リア充 の空間で満ちあふれており、
私のような者が居ていいのだろうかと思いましたが結果は上記のとおり。

 

・・にしても、この記事が12月に書き始めて、2月まで下書き状態で保存されていたとか言えない。

 

チーム名は前回のつくば大会同様 「wasamusume」としました。

前回と違う点としては、

1.チームリーダーがなぜか私になってる。
2.ておくれ要因を排除した。

というところでしょうか。ネタを前回よりも、さらに取り除きました。

 

今回のチームメンバは、
私、かーみさん、あたがわさん、Decさん、cookies さん、ゆったんさんの計6人。

今回はメンバが大変すばらしい方々が集まったことに加えて、
問題の特性がチームの特性と合っていたようにもおもえます。

また、初回参加時にはチームメンバだった「わさお」が、
知らないうちに他のチームで参戦することになっていて、我々が 「wasamusume」なんて名前でいいのかな
とか思いましたが、やっぱり結果オーライでしょう。ここは。

 

解いていて、いままでと違うなと思ったのは、
やはりスコアの遷移でしょうか。

執筆時点ではスコアに関する情報が出ていませんので難しいところですが、
過去2回の大会では「最初の出だしはいいが、後で追い抜かれて追い越せない」という感じでした。

今回はバイナリ系問題に時間がかかり(ごめんなさい)前半は Web な皆さんに助けられました。

そのような中で、過去と同じ「最初はいい、途中で抜かれる」という形ができ、
やばい!と思ったとき、バイナリ系の問題が解け、その時同時に呪縛からも抜け出せたような気がします。

 

CTF 会場としては、すでに述べてはおりますがクリスマスクリスマスしており、
非リア充を寄せ付けない、まさに 「こんなところでCTFといてるばあじゃない」 というような。

BGM にはクリスマスソング、もしくはそれに関連したクリスマス中止ソング。
あとは “うなぎのきもち” になることを強要(?)されたりと、前回2回の大会とは趣が違うBGM で、
私にとってはむしろ作業しやすい感じだったようにもおもいます。

 

記事が長くなりそうですのでいったんここで切りますね。

続きを読む

Visual Studio 2010 のプロジェクトを “VS2010 プロジェクト” のまま VS2012 でいじる。

 

最近知ったことなのでメモ。

image

とあるところに、こういうのを Visual Studio 2010 で作っていた人がいたそうな(ぁ
諸事情あって Visual Studio 2010 でやっているけれど、 Visual Studio 2012 でやりたい。

続きを読む

Windows Installer で 2503, 2502 エラー発生時の確認ポイント。

みむらです。
いじくり倒してて填まりまして、メモということで。。

 

確認環境: Windows 8

参考資料 :
http://reginout.com/Getting-Windows-8-Error-2503.html
http://kitaz.dyndns.org/default/modules/xpress/archives/30


1. ユーザが Administrator グループにいるかどうか。

持っていないようであれば、持っている方に作業を依頼してください。

参考資料で挙げている方には、「管理者として起動する」から起動させるという説明ですが、
なんだかなーと思うところがありますので・・w

 

2.%WINDIR%\Installer に Administrators に対する
フルアクセス権限があるか。

image

 

3.%WINDIR%\Temp に Administrators に対する
フルアクセスの権限があり、所有者が正しく設定されているか。

実は今回この段階で填まりまして。

ディスク掃除のために、回復環境で Temp ディレクトリを削除して再作成することがあるのですが、
そのステップが問題でした。

本来の設定を確認出来ていないので、なんか違ってそうな気はしますが。。

 

とりあえず、上記のようなことをした方は、

1.継承を有効化して、 Windows フォルダからアクセス許可エントリを引っ張る。

2.所有者を “ NT SERVICE\TrustedInstaller “ に変更。

という2点をすればいいようです。

 

image

セキュリティ設定タブ下の「詳細設定」をクリック。

image

表示されたダイアログの下の「継承の○○化」を何度かおして、継承元がすべて %WINDIR% と一致するようにする。
(一般には、 %WINDIR% = C:\Windows となっている事が多い)

その後、「所有者」欄横の「変更」をクリックし、

所有者として “ NT SERVICE\TrustedInstaller “ を指定すれば問題ありません。

 

4.MSIEXEC.DLL を再登録する。

コマンドプロンプトを管理者で起動し、

MSIEXEC /UNREG
MSIEXEC /REGSERVER

と順に入力します。

 


ここまでやっても直らない場合は、

レジストリの権限がおかしかったり、その他の何かが原因してたりする可能性が高いのですが、

以降は参照元に挙げたサイトを閲覧していただけたらと思います。

VAIO VPCZ21AJ + Windows 8 に関するメモまとめ。

みむらです。

私自身のブログのリンクではありますが、
後々使う事になりそうなので。。

 

1. Windows 8 のクリーンインストール。
VAIO VPCZ21AJ で Win8 をクリーンインストール。 (2013.10.23)

2. Windows 8 の Power Media Dock 用ドライバ
(Power Media Dock による GPU アクセラレーション / 起動中の取り外し, 取り付け対応)
VAIO VPCZ21AJ + Windows 8 で
Power Media Dock(ドッキングステーション)のGPUアクセラレーション を有効にする。 (2012.11.27)

(2012.11.24 公開版ではドライバの取得先に誤りがあり、機能を実現出来ない問題があったため、
2012.11.27 に修正を行いました。)

3. Windows 8 用のタッチパッドドライバを入れたときに有効になるジェスチャの無効化について
Synaptics 社製タッチパッドで Windows 8 のジェスチャを無効にする。 (2012.11.04)

 

たぶん VAIO Z2 系以降、 SVZ1311AJ あたりまでデザインが似ていますので、
もしかすると Z22, Z23, SVZ1311, SVZ1511, VZ11 このあたりが応用出来るのかもしれません。

ただ、 Power Media Dock については Radeon 7000 系を積んでいる機種もあるようですので、
その場合は同様に Radeon 7000 系を積んでいる VAIO S 系のドライバアップデートを使って、
きちんとその機種に合うように inf ファイルを書き換えれば行けると思います。

 

タッチパッドですが、執筆時点現在 ( 2012.11.24 )

VAIO 公式のドライバではなく、製造元の公式ドライバ ( http://www.synaptics.com/ ) を使いますと、
タッチ領域下部の、クリック / 右クリックを行う領域までマウスカーソルが動かせる領域となるようですので、
このあたりは改善してほしいなぁと。

 

VPCZ21AJ 公式サポートページ :
  http://vcl.vaio.sony.co.jp/product/vpc/vpcz21aj.html
とある英国のVAIO Z サポートページ :
  http://www.sony.co.uk/support/en/product/VPCZ21Z9R_X/updates


その他 Windows 8 について:

スタートスクリーンを使いやすくする、ストアアプリをどう組み合わせるか:
Windows 8 と ストアアプリとスタートスクリーンと

マルチスクリーン環境での Windows 8 のタスクバーの挙動について:
マルチディスプレイ環境でのタスクバーの挙動について

 

後は再セットアップ後ですが、
スタートスクリーンを表示したときに、一番最初に現れる項目は、
自分がよく使う物を左側に寄せて、かつ整理しておくと使いやすいよね、というはなし。

このあたりは、 Building Windows 8 の記事中にある、
http://blogs.msdn.com/b/b8_ja/archive/2011/10/19/start-comments.aspx
Windows 8 へのフィッツの法則の適用あたりを見るといいんじゃないかなーと。

 


以下余談。

Modern UI なアプリケーション (Windows ストアアプリ)の メーラーやらゲームやらを使うような生活を続けていますと、あれもいいね、という気分にもう半年ほどなっていたりします。

このあたり、「デスクトップ」という形で用意されている、以前からの UI ですべてを行うようにする
(以前と同じ使い方をしようとする)と、スタートスクリーンって使いやすいのかな、とかふと思いますが、
どうなんでしょう。

私自身は Windows 8 を Developer Preview あたりから使っていますので、
もうなれてしまったのですが。

発売してそろそろ1ヶ月ですが、最初の半年ぐらいは従来通りの UI で作業を続ける人が大半で、
「Modern UI いらないんじゃない?」という声が大半を占めるかなと思っています。

PC をよく使う人がクリーンインストールなりで再セットアップを重ねて、ソフトを入れるのが面倒 –> Moden UI のソフトでも使って見るかとなったときにどうなるか、
もしくは開発者が Moden UI でのソフトがちょっとなー。暇だから書いてみるか。 みたいな形で動き出したときにどうなるか。

おもしろそうになるのはそのあたりかなと。 ・・・・全くの余談ですが。