#author("2020-06-27T10:33:16+00:00","","") TITLE:チャレンジパッド2のroot化が難しいわけ 情報が確実ではありません。情報提供お願いします。 また、もしチャレンジパッド2のRoot化成功の情報をご存知であれば、 コメントに型番とビルド番号と、 エクスプロイトの場合はエクスプロイト名(あるいはCVE名)とPoCのソースかバイナリのリンク、 ソフト、ツールキット、またはアプリの場合はその名前とダウンロードリンクを書き、 Root化情報の共有にご協力をお願いします。 また、このサイトの「Root化成功例」にやり方も書いていただけると嬉しいです。 ----- チャレンジパッド2のroot化の方法がなかなか出回らない。 つまり、root化の成功例がないということだ。 このページはroot化が難しいわけをまとめている #contents *Root化がエラーになる誰でも分かる手順 [#b034d320] **パターン1 [#l66c2d65] Root化開始➡︎何かのプログラムがRoot化を検知➡︎検知後、 Root化に必要なエクスプロイトの発動を殺す (なお、ターミナルで実行するとKilledと出力される)➡︎エラー **パターン2 [#p41c32d3] Root化開始➡︎エクスプロイトが、Root化のために必要なファイルを配置しようとする ➡︎SELinux(Androidで動いているセキュリティプログラム)が不正なアクセスを検知 ➡︎SELinuxがアクセスをブロック➡︎エラー *脆弱性(エクスプロイト)を突いたroot化が難しい訳[#i73a8928] 多くのrootソフトは脆弱性(エクスプロイト)を突いて、root権限を手に入れている。 チャレンジパッド2にも、多くの脆弱性が存在し、 それを利用することはできるにはできるのだが 大きく二つのパターンで失敗して終わってしまう。 **パターン1 Killed [#r92ee997] エクスプロイトプログラムを実行しようとするとKilledと返ってくる。 (adb) $ ./dirtycow Killed これはAOSPの方で対策されたエクスプロイトを使おうとすると &color(Red){(エクスプロイトの発動を)殺しました};というメッセージがターミナルに出力される。 この場合、エクスプロイトを殺したプログラムは AndroidのLinuxカーネルであるので、そのプログラムを阻止してしまうと Androidがフリーズしてしまう。 また、エクスプロイトプログラムを少し改変すると、もちろんKilled の出力はなくなるが攻撃方法が同じ場合、対策されているため 結局できない。 AOSPのLinuxカーネルがエクスプロイトプログラムをブロックしているため、 チャレンジパッド2の独自の仕様ではない。 そのため、Dcha系のアプリの動きを止めても無駄である。 **パターン2 avc denied [#ja0cafc2] もし、AOSPが対策されていない脆弱性が使えたとしても、 SELinuxという強固なセキュリティによって、 ほとんどのエクスプロイトがブロックされてしまう。 SELinuxが動作しているかは、以下のコマンドで確認できる。 $ adb shell getenforce Enforcing また、エクスプロイトがブロックされると、logcatに avc: denied { connectto } for pid=2671 comm="ping" path="/dev/socket/dnsproxyd" scontext=u:r:shell:s0 tcontext=u:r:netd:s0 tclass=unix_stream_socket のような形でアクセスをブロックしたというログをはく。 >●SELinuxとは 簡単に言うと、端末内での不正アクセスを予め設定したポリシーに基づいてブロックするプログラム。 Linuxの機能のひとつであり、これがあることで、より安全に運用することができる。 また、AndroidではしっかりとSELinuxもAndroid用に最適化されている。 Android 4.3以前は、この機能はまだ完全には使われていなかったが 4.3から本格的に動き始め、5.0以降ではさらに機能を改善して動作している。 なお、SELinuxはAOSPで配布されているため、別にチャレンジパッド2独自の機能ではない。 詳しくはhttps://source.android.com/security/selinux/ #br また、インターネット上に出回っている脆弱性のPoCも、 環境に依存するなどがあり、利用が難しい。 *update.zipを使ったroot化について&出来ない訳 [#d9c9d887] チャレンジパッド2にも、Androidと似ているRecoveryモードがある。 Recoveryモードの機能には、update.zip(システムアップデートファイル)が適用できるものがある。 しかし、チャレンジパッド2のRecoveryモードはAndroidと似ているため、 update.zipの署名チェック(改造チェック)もされる。 /C=JP/ST=Tottori-pref/L=Tottori-city/O=SANYO/OU=development のRSA秘密鍵で署名すれば、公式のupdate.zipとして適用することができるが、 RSA秘密鍵は普通、開発者しか使えないため、中身を改造してしまうとエラーになる。 [[update.zipのダウンロード]] にチャレンジパッド2の公式のupdate.zipの入手方法がある。 &color(Red){※RSA秘密鍵を知っている方はコメント欄に書き込んで下さい。}; >●チャレンジパッド2(TAB-A03-BS,TAB-A03-BR)の公開鍵詳細情報 //SHA1 Fingerprint=00:84:25:6A:97:3D:79:5E:9D:45:AE:07:57:41:D2:31:82:C6:74:5B 署名アルゴリズム: sha1WithRSAEncryption 発行者: C=JP(日本), ST=Tottori-pref(鳥取県), L=Tottori-city(鳥取市), O=SANYO(三洋), OU=development(開発) 有効期限 グリニッジ標準時の2016年8月4日5時8分58秒から2043年12月21日5時8分58秒まで サブジェクト: C=JP(日本), ST=Tottori-pref(鳥取県), L=Tottori-city(鳥取市), O=SANYO(三洋), OU=development(開発) サブジェクト公開鍵情報: 公開鍵アルゴリズム: rsaEncryption 公開鍵: (2048ビット) 値: 00:d7:24:eb:ff:ef:46:f6:1d:d2:50:3c:2f:b8:5b: 8e:4a:12:8e:0a:f5:b8:cc:26:ec:2f:94:5c:ad:5c: 3d:8d:34:fe:5e:d6:16:a3:57:ac:b2:fd:8d:55:1b: fe:87:c4:30:78:e1:60:e2:50:41:8f:86:3a:72:b2: ba:56:1d:4f:00:dc:0e:30:9c:e2:ba:b8:36:0f:48: 0b:8f:08:8a:3c:9b:57:5a:c8:08:97:8c:d7:5f:8a: 02:33:0f:05:24:76:fc:62:41:d8:b5:bb:96:df:09: fa:e0:dd:5d:47:a6:c7:cc:b0:ba:81:20:e2:c0:50: 14:da:7a:2f:ce:67:1b:fc:3a:67:97:2e:64:f1:91: c0:b4:13:5a:4a:ca:6d:a2:a5:88:0a:d5:cb:65:eb: 21:59:7c:ab:73:50:04:09:d2:89:5d:73:54:c0:ed: 85:50:65:17:0e:eb:7d:5c:38:bd:e6:6b:5f:8a:c4: 62:95:5d:85:e6:7d:61:65:0b:d8:02:7b:b5:f8:44: 57:74:a3:98:dc:c1:84:f3:3c:90:dc:80:cb:ce:b6: 9e:68:05:13:5e:8f:16:bf:8f:7a:b5:2c:88:3a:c7: f7:f7:f3:c9:49:b8:bc:d6:41:64:d2:be:3c:04:83: c3:17:9b:bb:c2:24:8e:62:27:b2:ea:ec:0c:16:bc: 78:93 指数: 65537 (0x10001) (詳しくはチャレンジパッド2の/system/etc/security/otacerts.zipの中のtestkey.x509.pemにある。) (公開鍵から秘密鍵を生成するには、値の素因数分解をすればよい。値が大きすぎて、現実的ではないが。) **DchaSystemSettingsを使ったアップデートは可能? [#y834f66a] その他のシステムアップデートでは無く、&color(Blue){DchaSystemSettings};の&color(Blue){SDupdateActivity};でもシステムアップデートは可能な様だ。 だが、&color(Teal){アップデート};をタップすると、ホームに戻されたりする為、DchaSystemSettingsからアップデートをするのは不可能と思われる。 *DchaServiceを使ったroot化が出来ない訳[#v95582cb] DchaServiceはあくまでSystem権限で動作している。 System権限はroot権限と訳が違うため、できることも限られている。 昔はSystem権限を自由に使えるようにできると使える脆弱性もあったが、今はなかなか見つからない。 *このような脆弱性が見つかれば、Root化ができるかもしれない [#y3fefb85] ,SELinuxをバイパスするかつ、権限昇格ありのコード実行脆弱性。 ,Kernel、あるいはrootで動いているプログラムのコード実行脆弱性。 ,RecoveryModeの細工ファイルによる、コード実行脆弱性 ,RecoveryModeの細工ファイルによる、署名偽造脆弱性 **まとめ [#g9ada29f] • Root化の邪魔をする奴はAndroidの セキュリティプログラム。(SELinux) なので、SELinuxをOFFにするか、破壊しない限り、 エクスプロイトを使用してのRoot化は不可。 ------ • update.zipでのRoot化は、RSA暗号鍵が見つからない 限り不可能。 DchaSystemSettingsでのアップデートは、 やり方等が一切不明の為、不可能。 ----- • DchaServiceでのRoot化は不可能。 ------ *Root化成功例 [#e07cace9] NO DATA ----- *コメント [#ff23fac8] > +&color(Red){質問を書き込む場合、以下に注意してください。}; -&color(Black){''質問は簡潔に、かつ具体的なものにすることが重要です。質の高い回答を得るには、専門用語は避け、簡潔で明快な表現にしてください。''}; -&color(Black){''すべての質問が、上記の注意点に準拠していることを確認してください。当wikiの利用目的以外に関する質問は禁止されており、編集者、管理者、ctab攻略メンバーに従う必要があります。''}; //- ベネッセroot化嫌ってんなあ -- [[しろ]] &new{2019-01-05 (土) 21:14:12}; //- Benesseは本気です -- &new{2019-01-25 (金) 17:45:46}; //- Benesseの本気になってる顔が浮かぶなあ -- &new{2019-03-30 (土) 16:49:23}; //- https://qiita.com/hanaita0102/items/5d3675e4dc1530b255baを見てください。SELinksの無効化の方法が乗っています。 -- [[そこら辺のたこ]] &new{2019-04-11 (木) 19:02:26}; //- それはroot化しないと使えない方法です。 -- [[shiosefine]] &new{2019-04-11 (木) 22:26:16}; #pcomment(comment/チャレンジパッド2のroot化が難しいわけ,20,,,above,,reply)