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
kernelpop — framework de enumeração e exploração de escalonamento de privilégio do kernel | Kitploit
Ferramentas/GitHubGitHub/spencerdodd/kernelpop
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoTestes de Penetração
GitHubspencerdodd/kernelpop

kernelpop

framework de enumeração e exploração de escalonamento de privilégio do kernel

Ver Repositório
702131há 8 anosRevisado pelo Kitploit

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

kernelpop

kernelpop é um framework para realizar enumeração e exploração automatizada de vulnerabilidades de kernel nos seguintes sistemas operacionais:

  • Linux

  • Mac

Foi projetado para ser independente de versão do python, ou seja, deve funcionar tanto com python2 quanto com python3

  • por favor, me avise se descobrir que não funciona

exemplo de enumeração até root (Linux)

got-root


formas de uso

  • executar a partir do código-fonte do projeto
root@kitploit:~
$ git clone https://github.com/spencerdodd/kernelpop
$ cd kernelpop
$ python kernelpop.py || python3 kernelpop.py
  • compilar binário
root@kitploit:~
$ git clone https://github.com/spencerdodd/kernelpop
$ cd kernelpop
$ ./create_executable.sh
$ ./kernelpop
  • passos para compilar binário sem o script
  1. instale o pyinstaller (os passos variam conforme o sistema de compilação)
  2. $ pyinstaller kernelpop.py --onefile
  3. $ cp dist/kernelpop .

ambos os passos de compilação de binário devem criar um binário kernelpop na raiz do projeto.


saída da enumeração

root@kitploit:~
user@debian:~/Desktop/kernelpop$ python3 kernelpop.py

##########################
#  welcome to kernelpop  #
#                        #
# let's pop some kernels #
##########################

[*] grabbing distro version and release from underlying OS (linuxdebian7)
[*] grabbing kernel version from 'uname -a'
[+] kernel (Linux debian 3.2.0-4-686-pae #1 SMP Debian 3.2.41-2 i686 GNU/Linux) identified as:
[base]
	type:			linux
	distro:			linuxdebian7
	version:		3.2.0-4
	architecture:		i686
[specific]
	type:			linux
	distro:			linuxdebian7
	version:		3.2.41-2
	architecture:		i686
[*] matching kernel to known exploits
[+] discovered 11 possible exploits !
	[[ distro kernel matched exploit available ]]
		CVE20165195_32	Dirty COW race condition root priv esc for 32 bit
	[[ distro kernel version vulnerable ]]
		CVE20144699	Exploitable race condition in linux before 3.15.4
		CVE20143153	`futex_requeue` vulnerability before 3.14.6 allows for priv esc
		CVE20162384	Double free vulnerability in the `snd_usbmidi_create` (requires physical proximity)
		CVE20140196	`n_tty_write` vuln before 3.14.4 allows priv esc to root
		CVE20132094_semtex	perf_swevent_init Local root exploit (32 bit)
		CVE20176074	`dccp_rcv_state_process` in net/dccp/input.c mishandles structs and can lead to local root
		CVE20132094_32	perf_swevent_init Local root exploit (32 bit)
	[[ base linux kernel vulnerable ]]
		CVE20144014	`chmod` restriction bypass allows users to get root before 3.14.8
		CVE20177308	`packet_set_ring` in net/packet/af_packet.c can gain privileges via crafted system calls.
		CVE20171000112	ip_ufo_append_data() memory corruption flaw can be exploited to gain root privileges.

Na saída, existem algumas categorias. Aqui está o que cada uma significa

[[ distro kernel matched exploit available ]]

  • existe um exploit de kernel específico para a versão da distribuição no projeto que você pode usar para explorar o kernel. Alta probabilidade de exploração bem-sucedida.

[[ distro kernel version vulnerable ]]

  • a versão do kernel da distribuição é vulnerável à vulnerabilidade listada, mas não foi explicitamente declarada como testada no PoC exploit no projeto. A exploração sem modificação do exploit pode funcionar, mas tem menor probabilidade de sucesso.

[[ base linux kernel vulnerable ]]

  • não se sabe se a versão do kernel da distribuição é vulnerável à vulnerabilidade, mas o kernel base do Linux está na faixa vulnerável para o exploit. A exploração sem modificação do exploit é improvável ou desconhecida, mas ainda pode funcionar.

requisitos

  • python2 ou python3

  • pyinstaller (se quiser compilar um binário)


uso

root@kitploit:~
modos de execução:
	(padrão)	        python3 kernelpop.py
	(modo-exploit)	        python3 kernelpop.py -e {nome do exploit}
		(dump-source)   python3 kernelpop.py -e {nome do exploit} -d
	(modo-uname)            python3 kernelpop.py -u {saída de uname -a}
	(modo-interativo)       python3 kernelpop.py -i # OPÇÃO LEGADO (igual ao modo-uname)
outros:
	(caminho playground)       -p {novo caminho}
	(arquivo de saída json)      --digest json

modo padrão (passivo)

O modo padrão processa informações sobre o kernel do host e as compara com os exploits de kernel conhecidos disponíveis para o programa. Em seguida, gera uma lista de vulnerabilidades potencialmente úteis e exploits anexados.

modo exploit (ativo)

root@kitploit:~
-e {nome do exploit}

O modo exploit compila e executa dinamicamente o código-fonte do exploit com interações stdio dentro do programa. Ele também pode capturar interrupções de tentativas interrompidas prematuramente. Use o nome do exploit que aparece na execução inicial de enumeração do kernelpop no modo padrão.

  • dump-source (opção) -d

    • Este é um modificador para o modo exploit. Ele despeja os arquivos-fonte para o exploit dado em seus respectivos arquivos em PLAYGROUND_PATH (padrão /tmp). Isso é útil para modificar o código-fonte do exploit em uma máquina ou trabalhar com exploits que exigem interação manual ou codificação de valores. É especialmente útil ao executar a partir de um binário, pois você não terá acesso ao código-fonte do projeto (ou seja, fonte do exploit).

modo uname (passivo)

root@kitploit:~
-u {saída de uname -a}

Esta opção permite passar a saída de um comando uname -a inline para o programa, o que o torna utilizável para integração em scripts automatizados ou para qualquer outro motivo previsível. Substituição do modo interativo.

modo interativo (passivo) [LEGADO - necessário para Mac pela saída do uname]

root@kitploit:~
-i {saída de uname -a}

O modo interativo permite realizar enumeração apenas com a saída de um comando uname -a, o que o torna útil como uma ferramenta de enumeração apenas do lado do host. Isso é executado iniciando o kernelpop com a flag -i e, em seguida, passando a saída de uname -a quando solicitado. Este é um recurso legado e substituído pelo modo uname, mas permanece suportado, pois -u não oferece suporte à enumeração em Mac.

caminho PLAYGROUND

root@kitploit:~
-p {novo diretório PLAYGROUND_PATH}

A opção -p define o valor da variável global PLAYGROUND_PATH. Este é o local onde todos os arquivos-fonte dos exploits são gravados e os exploits compilados. Por padrão, é definido como /tmp. No entanto, você pode defini-lo para qualquer diretório com este modificador caso não tenha permissão de escrita em /tmp.

saída digerível

root@kitploit:~
--digest json

Esta opção permite despejar os resultados de uma execução do kernelpop em um arquivo JSON digerível para processamento posterior. Até agora, implementei apenas o dump json, mas vou trabalhar em uma versão XML se for solicitada.

A Fazer

  • adicionar mais exploits! (src/to_add se alguém quiser começar a trabalhar em alguns deles, fique à vontade!)

  • incluir níveis de patch em comparações de janelas vulneráveis

  • adicionar maneira de substituir configurações detectadas em caso de análise incorreta ou configurações adversas

Processo para adicionar janelas de vulnerabilidade do kernel: [deveria escrever um scraper]

  • google: CVE-XXXX-XXXX "ubuntu"

    • clique no link da canonical (https://people.canonical.com/~ubuntu-security/cve/2016/CVE-XXXX-XXXX.html)

      • clique em todos os avisos vinculados em usn.ubuntu.com e analise as informações

      • pegue as versões de patch para preencher as janelas de vulnerabilidade por versão

  • google: CVE-XXXX-XXXX "debian"

    • link do security-tracker.debian.org (https://security-tracker.debian.org/tracker/CVE-XXXX-XXXX)

      • extraia informações da parte inferior da página que se relacionam com as versões corrigidas para o CVE específico
  • google: CVE-XXXX-XXXX "mitre"

    • links para outras distribuições para obter informações

CVEs atualmente suportados:

  • CVE-2017-1000379

  • CVE-2017-1000373

  • CVE-2017-1000372

  • CVE-2017-1000371

  • CVE-2017-1000370

  • CVE-2017-1000367

  • CVE-2017-1000112

  • CVE-2017-7308

  • CVE-2017-6074

  • CVE-2017-5123

  • CVE-2016-5195

  • CVE-2016-2384

  • CVE-2016-0728


fontes dos exploits

https://github.com/SecWiki/linux-kernel-exploits

http://exploit-db.com/

https://github.com/lucyoa/kernel-exploits

https://github.com/SecWiki/windows-kernel-exploits

fontes históricas de distribuições

Debian

  • debian releases
Baixar ferramenta
  • CVE-2015-1328

  • CVE-2014-4699

  • CVE-2014-4014

  • CVE-2014-3153

  • CVE-2014-0196

  • CVE-2014-0038

  • CVE-2013-2094

  • CVE-2010-4347

  • CVE-2010-2959

  • CVE-2009-1185