PS Vita Webkit exploit ついに表舞台へ

以前からPS Vitaのネイティブハックとして紹介していたWebkit exploitのPoC(日本語では概念実証と訳される、Proof of Conceptの略。試験的な段階)がついに公開されました。

Vitaハックと言えばPSP時代のノウハウの継続で実現してきたePSP(PSPエミュレータ)でのバックアップ起動(TN-V)やHomebrew起動(VHBL)が主流でした。それはPS Vita本来の性能を活用できるハッキングではなかったため、長い間ネイティブハックは待望の存在だったと言えます。

そのネイティブハックであるWebkit exploitの現状と歴史についてまとめてみました。参考にしたのは下記の記事です。
[lolhax.org] PSVita Webkit Exploit – Information and Credits
[wololo.net]Vita hack: Davee releases a Vita Native exploit through Webkit (but there might be a catch)
[wololo/net]Vita hack: Proof of concept code updated to support up to firmare 3.18, and credits


WebKit(ウェブキット)はオープンソースのウェブブラウザレンダリングエンジンで、MacのSafariなどにも使われています。オープンソースのためPS Vitaをはじめ多様なプラットフォームへ移植されています。そのWebKitに存在する脆弱性を利用するものがPS Vitaのネイティブハックと呼ばれています。

PoCは3.18向けに公開されることが公にされていたものです。3.18までの動作が確認できていたWebkit exploitですが、ソニーが次のアップデートでexploitを潰してくるという情報があったことからexploitが動作する最後のファームウェアバージョンである3.18向けリリースとして予告されていました。

事実、3.30では対策されてしまっていたことが既に明らかになっています。

このネイティブハックには数多くのハッカーが注目しており、過去にPSPシーンで活躍したDavee氏もその一人です。過去のWebkit exploit関連の話で名前が出てきたCodeLion氏をはじめ、Josh_Axey氏やArchaemic氏も取り組んでいたそうです。

最初にDavee氏が作った、Webkit exploitを利用してVitaで実行する自作コードは2.60にしか対応していませんでした。2年前から開発を続けていたそうです。海外でVitaが発売されてから半年後あたりからになりますね。

3.18へ対応させたのはCodeLion氏で、「Davee氏みたいなセクシーでエレガントななコードには遠く及ばないけれど3.18で動くよ」とツイートしています。

さて、実際にPoCのWebkit exploitはどのような動作をするのでしょうか。Vitaのブラウザを使って下記のリンクへアクセスしてみてください。

http://lolhax.org/vita.htm

http://wololo.net/v/webkit/vita.htm

実際に我が家には3.18と3.30のVitaがありましたので、試してみました。

Vita_330

3.30 Vitaではエラー表示

Vita_318

3.18 VitaではFound webkit at:81b006b8″と表示

3.30はエラーですね。3.18では”Found webkit at:81b006b8″と表示されました。

ソースコードを見てみると、3.18の場合
alert("Found webkit at:" + webkit_top.toString(16));
でSceWebKitの関数のアドレスを取得して表示しているようです。

コードはその後にも実行されるものがあり、条件を満たすと
alert("Congrats, this vita is vulnerable\n");
break;

が実行されて画面に”Congrats, this vita is vulnerable”と表示されることになっています。

Congrats, this vita is vulnerableと表示されるVitaも存在するようですので、私の3.18 Vitaは「おめでとう」には届かなかったことになります。

Congrats this vita is vulnerable

“Congrats, this vita is vulnerable”表示

現時点ではPoCですので実用的なexploitにはなっていません。ネイティブハックはまだ始まったばかりですので今後の進展に期待が集りそうです。

[追記]
暫く待つとCongrats, this vita is vulnerableと表示されるとのコメントを頂き、「固まったじゃん」と思い込んでブラウザ強制終了していたのを反省。OKを押して1分程放置したらCongrats, this vita is vulnerableと表示されました。

318Vita_webkit_exploit_works

3.18 Vita webkit exploit works

[追記2]
Davee氏によると、待たされるのは仕様だったようです。


みんな、このexploitは起動に時間がかかるんだよ。動くまで待っててね。

『PS Vita Webkit exploit ついに表舞台へ』へのコメント

  1. 名前:jyaichi 投稿日:2014/10/19(日) 20:58:16 ID:f802ba0bc 返信

    3.00で試しましたが、Found webkit at:819fff68と出て、okを押してしばらく待っているとCongrats, this vita is vulnerableと表示されました。

  2. 名前:雑魚 投稿日:2014/10/19(日) 21:19:11 ID:b23dce72b 返信

    “Congrats, this vita is vulnerable”表示は”Found webkit at:81b006b8″表示後1分ぐらい放置したら出てきました。
    まあそのあとブラウザ落ちましたけど。

  3. 名前: 投稿日:2014/10/20(月) 00:16:05 ID:4152a5907 返信

    2.12でためしてみましたが
    Found webkit at:7d965cc9
    表示でok押すとぺーじが再読み込みされました
    ばーじ

  4. 名前: 投稿日:2014/10/20(月) 00:21:10 ID:4152a5907 返信

    2.12でためしてみましたが
    Found webkit at:7d965cc9
    表示でok押すとぺーじが再読み込みされました
    バージョンが古すぎたのでしょうか

  5. 名前: 投稿日:2014/10/20(月) 00:23:03 ID:4152a5907 返信

    途中送信してしまい申し訳ありません

  6. 名前:mamosuke 投稿日:2014/10/20(月) 07:37:57 ID:fda07f776 返信

    2.12は対応していることにはなっていません。