Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
hp-slate7-root-kit — Kit di rooting per HP Slate 7 2800 Android 4.1.1 che sfrutta CVE-2015-1805. | Kitploit
Strumenti/GitHubGitHub/valentineus/hp-slate7-root-kit
Sicurezza AndroidEscalation di PrivilegiMeccanismi di PersistenzaAnalisi delle VulnerabilitàExploitPost-ExploitSicurezza MobileSviluppo PayloadBinary Exploitation
GitHubvalentineus/hp-slate7-root-kit

hp-slate7-root-kit

Kit di rooting per HP Slate 7 2800 Android 4.1.1 che sfrutta CVE-2015-1805.

1362 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository

Root per HP Slate 7 2800 su Android 4.1.1

Inglese | Русский

Questo repository contiene un kit completo e autonomo per ottenere accesso root persistente su HP Slate 7 2800 con firmware 1.05.18 e kernel Linux 3.0.8+, sfruttando la vulnerabilità locale CVE-2015-1805. Il kit è stato eseguito sul tablet reale e il risultato è stato verificato da una sessione ADB appena avviata e dopo un riavvio normale.

Questo non è uno strumento universale per il root di Android. L'exploit è specifico di questa configurazione del kernel HP. Non eseguirlo su un modello, firmware o versione del kernel diversi.

Configurazione verificata

ParametroValore verificato
Produttore e modelloHP Slate 7 2800
Android4.1.1, API 16, build JRO03H
Prodotto / dispositivot7h / pine
ProcessoreRockchip RK3066, ARMv7
Build fingerprinthp/t7h/pine:4.1.1/JRO03H/v1.05.18_user:user/release-keys
Kernel3.0.8+ #13 SMP PREEMPT Tue Jul 28 15:24:30 CST 2015
ABIARM EABI5 a 32 bit
SELinuxnon presente nella configurazione del kernel (CONFIG_SECURITY è disabilitata)
Partizione /systemext4, montata in sola lettura per impostazione predefinita

Puoi ispezionare il dispositivo senza apportare modifiche:

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

In alternativa, usa lo script seguente. Si rifiuterà di procedere se il fingerprint o la versione del kernel non corrispondono:

./scripts/check-target.sh
./scripts/check-target.sh ADB_SERIAL

Contenuto del repository

.
├── 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

Formati e scopo dei file

FileFormatoDimensioneScopo
bin/hp-slate7-cve-2015-1805-rootELF 32-bit ARM EABI5, statico, non strippato2.722.320 byteSfrutta la CVE, ottiene uid 0 e avvia l'installer
bin/hp-slate7-install-rootELF 32-bit ARM EABI5, statico, strippato22.596 byteRimonta temporaneamente /system in rw, installa su e ripristina ro
bin/hp-slate7-suELF 32-bit ARM EABI5, statico, strippato656 byteChiama setresgid(0,0,0) e setresuid(0,0,0), quindi avvia /system/bin/sh

Checksum SHA-256 dei binari verificati:

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

Verifica su macOS:

shasum -a 256 -c SHA256SUMS

Verifica su Linux:

sha256sum -c SHA256SUMS

Sul tablet usa i file da bin/: sono esattamente i byte verificati sul dispositivo. La directory build/ è pensata per le ricompilazioni locali e non è tracciata da Git.

Vulnerabilità utilizzata

CVE-2015-1805 è un difetto nelle implementazioni di pipe_read() e pipe_write() dei kernel Linux più vecchi. Quando una copia atomica fallisce, il codice continua erroneamente a scorrere l'array iovec, spostando potenzialmente un puntatore oltre i suoi limiti. Di conseguenza, un processo locale senza privilegi può corrompere la memoria, mandare in crash il kernel o aumentare i propri privilegi. Una spiegazione dettagliata del meccanismo è stata pubblicata su oss-security. Le correzioni si trovano, tra l'altro, nei commit Linux upstream 637b58c e f0d1bec.

Il kernel 3.0.8+ del tablet si è rivelato vulnerabile. Prima di modificare la memoria del kernel, la stessa race condition è stata testata separatamente con una sonda innocua i cui due obiettivi di scrittura erano entrambi nella memoria ordinaria del processo di test. Ha riportato CVE-2015-1805: VULNERABLE e il tablet è rimasto accessibile tramite ADB.

Catena di escalation dei privilegi

  1. L'exploit crea una race condition tra readv(), le modifiche al memory mapping e l'elaborazione di un ampio array iovec nel codice pipe vulnerabile del kernel.
  2. La primitiva di scrittura risultante sostituisce temporaneamente la voce inutilizzata 222 in sys_call_table con l'indirizzo di una piccola trampoline ARM nel processo dell'exploit.
  3. L'indirizzo della tabella viene calcolato tramite il vettore alto a 0xffff0008. Sul dispositivo verificato, l'istruzione è 0xe59ff410 e il suo literal punta a vector_swi = 0xc04d0d40.
  4. vector_swi e sys_call_table sono stati assemblati indipendentemente dall'archivio kernel open source ufficiale HP 1.05.10 (SHA-256 dell'archivio: dd69f0468973714fd9ba22cdfea7e96f39f651ee51b9cb537728d9dcadbafda2) con il defconfig rk30_t7h_dvt_defconfig. Il loro offset è 0xc4. Il firmware installato non ha né OABI né seccomp, quindi l'indirizzo runtime finale della tabella è 0xc04d0e04.
  5. La trampoline consiste esattamente in sei istruzioni ARM. Recupera lo sp corrente, lo allinea alla dimensione dello stack del kernel di 8.192 byte e scrive -1 solo in thread_info.addr_limit all'offset 8. Non contiene chiamate esterne, prologo o codice runtime del compilatore.
  6. Subito dopo che la syscall temporanea ritorna, la voce 222 viene ripristinata dalla voce 223. Entrambe le voci sono sys_ni_syscall nel sorgente HP; il puntatore ripristinato sul kernel verificato è 0xc051900c.
  7. Una volta allargato addr_limit, la copia via pipe legge la task_struct corrente, individua cred e valida la struttura usando i valori uid/gid correnti, l'allineamento, il conteggio dei riferimenti e la condizione real_cred == cred. Solo dopo questi controlli i valori uid/gid vengono azzerati e le maschere delle capability vengono riempite di uno.
  8. Il processo ottiene uid=0 e avvia /data/local/tmp/install-root. L'installer rimonta /system in rw, copia il payload in /system/xbin/su, assegna proprietà root:root e modalità 06755, chiama sync() e rimonta /system in sola lettura.

La funzione originale current_thread_info() dei vecchi header del kernel era incompatibile con il Clang moderno a -O0: un prototipo iniziale leggeva una parola non inizializzata invece del registro sp e poteva mandare in crash il kernel. In questo repository è stata sostituita con una trampoline ARM naked verificata. Il binario iniziale non è incluso nel repository.

Software richiesto

Per usare i file già pronti in bin/

  • un computer con macOS o Linux; Windows è possibile anche con un driver USB ADB adatto, ma questa procedura è stata verificata su macOS;
  • adb da Android SDK Platform Tools;
  • un cavo USB dati funzionante;
  • debug USB abilitato e chiave RSA del computer accettata sul tablet.
Scarica lo strumento