#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)



トップ   差分 バックアップ リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS