■flashrec - Project Hosting on Google Code (own*.c) http://code.google.com/p/flashrec/source/browse/#svn/trunk/android-root ■flashrec - Revision 37: /trunk http://flashrec.googlecode.com/svn/trunk/ >>819 > これのown*.cを書き換えるのはどうだろ。 > http://code.google.com/p/flashrec/source/browse/#svn/trunk/android-root >>825 > >>819 > asrootもasroot2も、Android1.5時代の脆弱性で、すでに修正されてるっぽい > asroot2に関してはHTC Hero用のを落としてきたからわからんけど >>831 > >>825 > ソースからコンパイルしないとダメだよ (特にカーネル部分は)。 > ソースのダウンロードはここから。 > svn checkout http://flashrec.googlecode.com/svn/trunk/ flashrec > > RageAgainstTheCageは権限迂回でroot取ってるだけだからカーネル空間へは入れないはず。 > これがダメなら誰も試していない別の脆弱性を探すしかないかも。 >>836 > >>831 > ソース読んで確認した。このパッチあてられてないからasroot2は動くはず。 > http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ad3960243e55320d74195fb85c975e0a8cc4466c >>839 > >>836 の件、カーネルバージョンに合わせた構造体のメンバの調整が必要なので、 > include/linux/pipe_fs_i.h と突合せ (wait.hとlist.hとspinlock_types.hとspinlock_types_up.hにも依存)したけども、 > 2620と構造変わってないっぽい。 >>841 > asroot2をIS01のカーネルヘッダを使ってコンパイルしてみたけど、 > $ ./asroot2_is01 /system/bin/sh > [+] Using newer pipe_inode_info layout > Opening: /proc/2656/fd/3 > ってなって止まったまま 何が悪いんだろ? >>842 > >>840 > C言語とバイナリの知識が必要になるね。 > > >>841 > レース・コンディションが起きるまで待つ必要がある。けど、あまり長くかかるなら、うまくいってないかも。 >>845 > >>842 > 3分くらい放置してみたけどダメだった >>846 > >>845 > うーむ…ちょっと調べてみる。 >>847 > 誰か同じようにテストしてくれると助かる >>848 > >>845-846 > exploit理解。 > NULL付近にデータ突っ込んで、NULL参照されたときにそれが読み出されるようになってる。 > 何故突っ込めるかは理解してないけど、クラッシュしてないからそこの問題じゃないはず。 > > credsの構造体が異なるっぽい。own2.cのincludeのところに > #include <linux/cred.h> > を追加してcreds-> を current->cred-> に置き換えると良い予感がするが、 > ちゃんと読んでないのでダメかも。 >>849 > >>848 > get_rootまるまる置き換える必要あるか。こんな感じで。 > > int get_root(struct pipe_inode_info *pipe, struct pipe_buffer *buf) > { > current->cred->uid = current->cred->euid = 0; > current->cred->gid = current->cred->egid = 0; > got_root = 1; > > return -ENOSYS; > } >>850 > >>848 > attribute指定がNULLに配置するためのカギっぽい > x86ならmmap()とか使ったりする必要があるけどARMならこれでいいっぽい > > 構造体の件を試したいけど、時間がない…