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
cve-2016-0728-testbed — Um ambiente de testes para CVE-2016-0728, um bug de vazamento/estouro de refcount no Linux | Kitploit
Ferramentas/GitHubGitHub/neuschaefer/cve-2016-0728-testbed
Análise de VulnerabilidadesExploraçãoAprendizado e EducaçãoExploração de Binários
GitHubneuschaefer/cve-2016-0728-testbed

cve-2016-0728-testbed

Um ambiente de testes para CVE-2016-0728, um bug de vazamento/estouro de refcount no Linux

Ver Repositório

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
51há 10 anosAinda não revisado

CVE-2016-0728 testbed

Este repositório contém um programa de teste para o CVE-2016-0728, um bug de vazamento e estouro de contagem de referência (refcount) no Linux, que leva a um uso após liberação (use-after-free).

O bug foi encontrado e explicado pela Perception Point. Não sou afiliado a eles.

Usage

root@kitploit:~
Welcome to the CVE-2016-0728 testbed
sizeof(struct msg_msg) == 0x30, sizeof(struct key) == 0xb8

PID: 27673, UID: (1000/1000)
Keyring: 1b66e5d6, "test-1a328d6e"
Usage:   1
Press a key: (f)ork (i)ncref (a)uto-incref (r)evoke (h)eap-spray (s)hell (q)uit

No meu sistema de teste, um shell root pôde ser obtido da seguinte forma:

  1. Leve a contagem de referência (refcount) até -2; se você incrementar com muita frequência, provavelmente irá travar o kernel.
  2. Faça fork duas vezes para estourar a contagem, de modo que o coletor de lixo de chaves libere o keyring
  3. Pulverize o heap com keyrings falsos
  4. Chame revoke
  5. execl("/bin/sh", "sh", NULL)

Achei útil executar watch -n0.1 cat /proc/keys para ver o que está acontecendo.

Portability

Este código foi testado apenas no x86-64, mas deve funcionar em outras arquiteturas também, porque não usei offsets mágicos, mas copiei as definições de estrutura dos cabeçalhos do Linux e usei sizeof (exceto que codifiquei os endereços de prepare_kernel_cred e commit_creds).

Baixar ferramenta