Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
hp-slate7-root-kit — Kit de root pour HP Slate 7 2800 sous Android 4.1.1 utilisant CVE-2015-1805. | Kitploit
Outils/GitHubGitHub/valentineus/hp-slate7-root-kit
Sécurité AndroidEscalade de PrivilègesMécanismes de PersistanceAnalyse des VulnérabilitésExploitationPost-ExploitationSécurité MobileDéveloppement de Charges UtilesExploitation de Binaires
GitHubvalentineus/hp-slate7-root-kit

hp-slate7-root-kit

Kit de root pour HP Slate 7 2800 sous Android 4.1.1 utilisant CVE-2015-1805.

1il y a 3 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôt

Root pour la HP Slate 7 2800 sous Android 4.1.1

Anglais | Русский

Ce dépôt contient un kit complet et autonome permettant d'obtenir un accès root persistant sur la HP Slate 7 2800 fonctionnant sous le firmware 1.05.18 et le noyau Linux 3.0.8+, en exploitant la vulnérabilité locale CVE-2015-1805. Le kit a été exécuté sur la tablette réelle, et le résultat a été vérifié depuis une nouvelle session ADB et après un redémarrage normal.

Ce n'est pas un outil de root Android universel. L'exploit est spécifique à cette configuration du noyau HP. Ne l'exécutez pas sur un autre modèle, un autre firmware ou une autre version de noyau.

Configuration vérifiée

ParamètreValeur vérifiée
Fabricant et modèleHP Slate 7 2800
Android4.1.1, API 16, build JRO03H
Produit / appareilt7h / pine
ProcesseurRockchip RK3066, ARMv7
Empreinte de buildhp/t7h/pine:4.1.1/JRO03H/v1.05.18_user:user/release-keys
Noyau3.0.8+ #13 SMP PREEMPT Tue Jul 28 15:24:30 CST 2015
ABIARM EABI5 32 bits
SELinuxnon présent dans la configuration du noyau (CONFIG_SECURITY est désactivé)
Partition /systemext4, montée en lecture seule par défaut

Vous pouvez inspecter l'appareil sans rien modifier :

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

Vous pouvez également utiliser le script ci-dessous. Il refusera de continuer si l'empreinte de build ou la version du noyau ne correspond pas :

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

Contenu du dépôt

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

Formats de fichiers et rôles

Sommes de contrôle SHA-256 des binaires vérifiés :

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

Vérification sur macOS :

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

Vérification sur Linux :

root@kitploit:~
sha256sum -c SHA256SUMS

Utilisez les fichiers de bin/ sur la tablette : ce sont exactement les octets qui ont été vérifiés sur l'appareil. Le répertoire build/ est destiné aux reconstructions locales et n'est pas suivi par Git.

Vulnérabilité utilisée

CVE-2015-1805 est un défaut dans les implémentations de pipe_read() et pipe_write() des anciens noyaux Linux. Lorsqu'une copie atomique échoue, le code continue incorrectement de parcourir le tableau iovec, ce qui peut déplacer un pointeur au-delà de ses limites. Par conséquent, un processus local non privilégié peut corrompre la mémoire, faire planter le noyau ou élever ses privilèges. Une explication détaillée du mécanisme a été publiée sur oss-security. Les correctifs se trouvent, entre autres, dans les commits Linux amont 637b58c et f0d1bec.

Le noyau 3.0.8+ de la tablette s'est révélé vulnérable. Avant de modifier la mémoire du noyau, la même course a été testée séparément avec une sonde inoffensive dont les deux cibles d'écriture étaient toutes deux situées dans la mémoire ordinaire du processus de test. Elle a rapporté CVE-2015-1805: VULNERABLE, et la tablette est restée accessible via ADB.

Chaîne d'élévation de privilèges

  1. L'exploit crée une course entre readv(), les changements de mappage mémoire et le traitement d'un grand tableau iovec dans le code vulnérable des pipes du noyau.
  2. La primitive d'écriture obtenue remplace temporairement l'entrée inutilisée 222 de sys_call_table par l'adresse d'une petite trampoline ARM dans le processus de l'exploit.
  3. L'adresse de la table est calculée via le vecteur haut à 0xffff0008. Sur l'appareil vérifié, l'instruction est 0xe59ff410 et sa valeur littérale pointe vers vector_swi = 0xc04d0d40.
  4. vector_swi et sys_call_table ont été assemblés indépendamment à partir de l'archive officielle du noyau Open Source HP 1.05.10 (SHA-256 de l'archive : dd69f0468973714fd9ba22cdfea7e96f39f651ee51b9cb537728d9dcadbafda2) avec la defconfig rk30_t7h_dvt_defconfig. Leur décalage est 0xc4. Le firmware installé ne comporte ni OABI ni seccomp, si bien que l'adresse d'exécution finale de la table est .

La fonction d'origine current_thread_info() des anciens en-têtes du noyau était incompatible avec Clang moderne à -O0 : un prototype précoce lisait un mot non initialisé au lieu du registre sp et pouvait faire planter le noyau. Dans ce dépôt, elle a été remplacée par une trampoline ARM nue vérifiée. Le binaire précoce n'est pas inclus dans le dépôt.

Logiciels requis

Pour utiliser les fichiers prêts à l'emploi de bin/

  • un ordinateur sous macOS ou Linux ; Windows est également possible avec un pilote USB ADB adapté, mais cette procédure a été vérifiée sur macOS ;
  • adb provenant d'Android SDK Platform Tools ;
  • un câble de données USB fonctionnel ;
  • le débogage USB activé et la clé RSA de l'ordinateur acceptée sur la tablette.

Vous n'avez pas besoin du NDK Android, de Java, de Python, de fastboot, d'un bootloader déverrouillé, d'une recovery personnalisée, d'une APK de root, ni d'un accès réseau. L'exploit et la charge utile sont liés statiquement.

Pour reconstruire à partir des sources

  • Zig 0.15.2 ; il suffit de décompresser l'archive portable, sans nécessiter d'installation de paquet à l'échelle du système ;
  • Bash ;
  • shasum ou sha256sum pour vérifier le résultat.

Le NDK Android n'est toujours pas requis : Zig fournit une chaîne de compilation croisée ARM musl.

Préparation de la tablette

  1. Chargez la tablette à au moins 50 %. Elle était à environ 80 % lors de l'exécution vérifiée.
  2. Démarrez Android normalement et déverrouillez l'écran.
  3. Activez Options pour les développeurs -> Débogage USB.
  4. Connectez le câble et acceptez l'invite RSA du débogage USB si Android l'affiche.
  5. N'exécutez pas Towelroot, KingRoot ou d'autres applications de root en parallèle.
  6. Fermez les applications inutiles. L'exploit crée de nombreux threads et s'approche des limites de cet ancien appareil.

Vérifiez la connexion :

root@kitploit:~
adb devices -l

Le statut doit être device, et non offline ou unauthorized.

Obtenir root : procédure manuelle

Placez-vous à la racine du dépôt et vérifiez d'abord que l'appareil correspond exactement :

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

Si plusieurs appareils sont connectés, transmettez le numéro de série à chaque commande avec adb -s SERIAL, ou définissez la variable d'environnement ANDROID_SERIAL.

Téléversez les trois fichiers en leur donnant les noms qu'ils attendent mutuellement :

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

Définissez les permissions puis synchronisez les fichiers transférés sur le stockage :

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

Exécutez l'exploit une seule fois :

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

Sortie de réussite vérifiée :

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

Si l'appareil disparaît d'ADB pendant quelques secondes, ne réexécutez pas l'exploit. Attendez qu'il revienne :

root@kitploit:~
adb wait-for-device

Procédure automatisée

Le script vérifie l'empreinte de build et le noyau, contrôle les sommes de contrôle SHA-256, téléverse les fichiers, vous demande de saisir ROOT, exécute l'exploit et vérifie uid=0 :

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

Pour plusieurs appareils :

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

L'option --yes désactive la confirmation interactive et n'est destinée qu'à une utilisation automatisée volontaire :

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

Vérification du résultat

Vérifiez root depuis un nouveau shell ADB, et non depuis l'uid du processus de l'exploit :

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 '

Sortie attendue :

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

Ensuite, supprimez uniquement les fichiers temporaires de transfert. Le /system/xbin/su installé n'est pas supprimé :

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"'

Le kit ne crée pas /data/local.prop et ne modifie pas les données utilisateur.

Effectuez un redémarrage normal, puis vérifiez que root persiste :

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

La tablette vérifiée a produit le résultat suivant après redémarrage :

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

Le fichier installé a été récupéré depuis la tablette et correspondait à bin/hp-slate7-su octet pour octet :

root@kitploit:~
40626e555f71b71aa5ef7a727e9f6be55e552ef998ae3f49e9390f3e213c610e

Utilisation de root

Pour exécuter une seule commande :

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

hp-slate7-su est un wrapper volontairement minimal, sans application Android, sans invites de confirmation, sans daemon ni journal de permissions. Tout processus local capable d'exécuter /system/xbin/su peut potentiellement obtenir root. N'utilisez pas cette tablette obsolète pour des données sensibles après l'avoir rootée, et n'installez pas d'APK non fiables.

Reconstruction à partir des sources

Indiquez le chemin vers le Zig 0.15.2 portable, ou ajoutez zig au PATH :

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

La sortie sera écrite dans build/ :

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

Vérifiez les formats de fichiers :

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

Les trois fichiers doivent être des fichiers ELF ARM EABI5 32 bits. Avec la version vérifiée de Zig 0.15.2, l'installateur et su se reconstruisent à l'identique, octet pour octet, des fichiers de bin/. Le hash de l'exploit peut différer en raison des chemins absolus dans DWARF et des métadonnées du linker ; sa trampoline critique de six instructions était identique octet pour octet lors de la reconstruction de vérification. Une reconstruction ne remplace pas les sommes de contrôle des fichiers de bin/ qui ont été réellement exécutés sur la tablette.

Dépannage

unauthorized

Déverrouillez l'écran et acceptez la clé RSA du débogage USB. Si l'invite n'apparaît pas, rebranchez le câble et relancez adb devices -l.

offline ou l'appareil disparaît

Attendez quelques secondes puis exécutez adb wait-for-device. Si la tablette s'est éteinte, rallumez-la normalement avec le bouton d'alimentation. N'exécutez pas une seconde instance de l'exploit en parallèle.

L'exploit n'a pas affiché [+] Done

La CVE est exploitée via une course et peut théoriquement échouer. Redémarrez la tablette avant une seule nouvelle tentative. N'exécutez pas le binaire en boucle : une course échouée peut faire planter le noyau.

su existe, mais la commande se termine avec le code 127

Vérifiez la somme de contrôle SHA-256 du fichier. Un wrapper de recherche précoce gérait incorrectement argv sur ARM et se terminait avec le code 127. Ce dépôt contient la version corrigée de 656 octets, dont la somme SHA-256 est 40626e555f71b71aa5ef7a727e9f6be55e552ef998ae3f49e9390f3e213c610e.

Le logo HP reste à l'écran, mais ADB est déjà disponible

Vérifiez l'état réel d'Android :

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

sys.boot_completed=1 signifie qu'Android a démarré même si l'écran physique affiche encore une ancienne image.

Ce qui a été testé et ce qui n'a pas été utilisé

D'autres approches bien connues ont été écartées en toute sécurité ou jugées inadaptées sur cet appareil : CVE-2013-6282, CVE-2013-2094, CVE-2012-0056, CVE-2013-4787, Dirty COW et PingPongRoot. Towelroot/CVE-2014-3153 a fait planter ce noyau et ne doit pas être utilisé. CVE-2014-7951 permettait d'écrire un fichier via un parcours de chemin dans la restauration ADB, mais le firmware HP ne chargeait pas /data/local.prop ; cette méthode n'a donc pas fourni root.

Le bootloader utilise un ancien loader Rockchip et n'apparaissait pas comme un appareil fastboot standard. Flasher une recovery ou déverrouiller le bootloader n'a pas été nécessaire pour obtenir ce résultat.

Provenance et licence

Le code de l'exploit est basé sur mobilelinux/iovy_root_research, le commit f945796, qui référence lui-même dosomder/iovyroot. Les modifications spécifiques à l'appareil incluent la réduction du nombre de threads, la correction du délai d'attente, l'utilisation d'une trampoline ARM nue, la restauration anticipée de la table des appels système, la validation de cred et la désactivation de la branche SELinux inapplicable.

Les mentions d'origine ont été conservées. Le dépôt est distribué sous GPL-3.0 ; voir LICENSE et NOTICE.

Avertissement

Exploiter la mémoire du noyau comporte toujours un risque de redémarrage de l'appareil, de corruption du système ou de perte de données. Ce kit est destiné uniquement à une HP Slate 7 2800 que vous possédez et dont le firmware correspond exactement. Sauvegardez toutes les données importantes et ne l'utilisez pas sur des appareils appartenant à d'autres personnes.


La recherche en sécurité et la documentation ont été réalisées avec l'aide d'OpenAI Codex, propulsé par GPT-5.6 Sol avec un accès de cybersécurité Daybreak Blue.


Emplacements du dépôt : source canonique · github · miroir en lecture seule

Télécharger l’outil
FichierFormatTailleRôle
bin/hp-slate7-cve-2015-1805-rootELF 32-bit ARM EABI5, static, unstripped2,722,320 octetsExploite la CVE, obtient l'uid 0 et lance l'installateur
bin/hp-slate7-install-rootELF 32-bit ARM EABI5, static, stripped22,596 octetsRemonte temporairement /system en rw, installe su et restaure le mode ro
bin/hp-slate7-suELF 32-bit ARM EABI5, static, stripped656 octetsAppelle setresgid(0,0,0) et setresuid(0,0,0), puis lance /system/bin/sh
0xc04d0e04
  • La trampoline est composée d'exactement six instructions ARM. Elle récupère le sp courant, l'aligne sur la taille de pile noyau de 8 192 octets et écrit -1 uniquement dans thread_info.addr_limit au décalage 8. Elle ne contient aucun appel externe, prologue ni code runtime du compilateur.
  • Immédiatement après le retour de l'appel système temporaire, l'entrée 222 est restaurée depuis l'entrée 223. Les deux entrées correspondent à sys_ni_syscall dans la source HP ; le pointeur restauré sur le noyau vérifié est 0xc051900c.
  • Une fois addr_limit élargi, la copie par pipe lit le task_struct courant, localise cred et valide la structure à l'aide des valeurs uid/gid courantes, de l'alignement, du compteur de références et de la condition real_cred == cred. Ce n'est qu'après ces vérifications que les valeurs uid/gid sont mises à zéro et les masques de capacités remplis de uns.
  • Le processus obtient uid=0 et lance /data/local/tmp/install-root. L'installateur remonte /system en rw, copie la charge utile vers /system/xbin/su, attribue la propriété root:root et le mode 06755, appelle sync() et remonte /system en lecture seule.