TITLE:チャレンジパッド2のroot化が難しいわけ

情報が確実ではありません。情報提供お願いします。
また、もしチャレンジパッド2のRoot化成功の情報をご存知であれば、
コメントに型番とビルド番号と、
エクスプロイトの場合はエクスプロイト名(あるいはCVE名)とPoCのソースかバイナリのリンク、
ソフト、ツールキット、またはアプリの場合はその名前とダウンロードリンクを書き、
Root化情報の共有にご協力をお願いします。
また、このサイトの「Root化成功例」にやり方も書いていただけると嬉しいです。

チャレンジパッド2のroot化の方法がなかなか出回らない。
つまり、root化の成功例がないということだ。
このページはroot化が難しいわけをまとめている

Root化がエラーになる誰でも分かる手順

パターン1

Root化開始➡︎何かのプログラムがRoot化を検知➡︎検知後、
Root化に必要なエクスプロイトの発動を殺す
(なお、ターミナルで実行するとKilledと出力される)➡︎エラー

パターン2

Root化開始➡︎エクスプロイトが、Root化のために必要なファイルを配置しようとする
➡︎SELinux(Androidで動いているセキュリティプログラム)が不正なアクセスを検知
➡︎SELinuxがアクセスをブロック➡︎エラー

脆弱性(エクスプロイト)を突いたroot化が難しい訳

多くのrootソフトは脆弱性(エクスプロイト)を突いて、root権限を手に入れている。
チャレンジパッド2にも、多くの脆弱性が存在し、
それを利用することはできるにはできるのだが
大きく二つのパターンで失敗して終わってしまう。

パターン1 Killed

エクスプロイトプログラムを実行しようとするとKilledと返ってくる。

(adb) $ ./dirtycow
Killed

これはAOSPの方で対策されたエクスプロイトを使おうとすると
(エクスプロイトの発動を)殺しましたというメッセージがターミナルに出力される。
この場合、エクスプロイトを殺したプログラムは
AndroidのLinuxカーネルであるので、そのプログラムを阻止してしまうと
Androidがフリーズしてしまう。
また、エクスプロイトプログラムを少し改変すると、もちろんKilled
の出力はなくなるが攻撃方法が同じ場合、対策されているため
結局できない。
AOSPのLinuxカーネルがエクスプロイトプログラムをブロックしているため、
チャレンジパッド2の独自の仕様ではない。
そのため、Dcha系のアプリの動きを止めても無駄である。

パターン2 avc denied

もし、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/

 

また、インターネット上に出回っている脆弱性のPoCも、
環境に依存するなどがあり、利用が難しい。

update.zipを使ったroot化について&出来ない訳

チャレンジパッド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の入手方法がある。
※RSA秘密鍵を知っている方はコメント欄に書き込んで下さい。

●チャレンジパッド2(TAB-A03-BS,TAB-A03-BR)の公開鍵詳細情報
署名アルゴリズム: 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を使ったアップデートは可能?

その他のシステムアップデートでは無く、DchaSystemSettingsSDupdateActivityでもシステムアップデートは可能な様だ。
だが、アップデートをタップすると、ホームに戻されたりする為、DchaSystemSettingsからアップデートをするのは不可能と思われる。

DchaServiceを使ったroot化が出来ない訳

DchaServiceはあくまでSystem権限で動作している。
System権限はroot権限と訳が違うため、できることも限られている。
昔はSystem権限を自由に使えるようにできると使える脆弱性もあったが、今はなかなか見つからない。

このような脆弱性が見つかれば、Root化ができるかもしれない

SELinuxをバイパスするかつ、権限昇格ありのコード実行脆弱性。
Kernel、あるいはrootで動いているプログラムのコード実行脆弱性。
RecoveryModeの細工ファイルによる、コード実行脆弱性
RecoveryModeの細工ファイルによる、署名偽造脆弱性

まとめ

• Root化の邪魔をする奴はAndroidの
セキュリティプログラム。(SELinux)
なので、SELinuxをOFFにするか、破壊しない限り、
エクスプロイトを使用してのRoot化は不可。


• update.zipでのRoot化は、RSA暗号鍵が見つからない
限り不可能。
DchaSystemSettingsでのアップデートは、
やり方等が一切不明の為、不可能。


• DchaServiceでのRoot化は不可能。


Root化成功例

NO DATA


コメント

  1. 質問を書き込む場合、以下に注意してください。
  • 質問は簡潔に、かつ具体的なものにすることが重要です。質の高い回答を得るには、専門用語は避け、簡潔で明快な表現にしてください。
  • すべての質問が、上記の注意点に準拠していることを確認してください。当wikiの利用目的以外に関する質問は禁止されており、編集者、管理者、ctab攻略メンバーに従う必要があります。

最新の20件を表示しています。 コメントページを参照


トップ   差分 バックアップ リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-06-27 (土) 19:33:00