asroot2

「asroot2」の編集履歴(バックアップ)一覧に戻る

asroot2 - (2010/11/24 (水) 08:27:04) のソース

■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ならこれでいいっぽい 
>  
>  構造体の件を試したいけど、時間がない… 
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。