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-2022-23093 — Il buffer overflow ICMP di FreeBSD, poc del buffer overflow di freebsd | Kitploit
Strumenti/GitHubGitHub/sh4den/cve-2022-23093
Analisi delle VulnerabilitàExploitShellcodeSviluppo PayloadBinary Exploitation
GitHubsh4den/cve-2022-23093

CVE-2022-23093

Il buffer overflow ICMP di FreeBSD, poc del buffer overflow di freebsd

Vedi Repository
1021 mese faNon ancora revisionato

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

CVE-2022-23093 Overflow dello stack in FreeBSD

Informazioni

Lo shellcode utilizzato di default è FreeBSD/x86-64 - execve - 28 bytes from Gitsnik; sostituiscilo con uno tuo per iniziare.

Dettagli della vulnerabilità

Il comando ping, utilizzato per richiedere un ICMP ECHO_RESPONSE da un host o gateway, viene invocato con un target IPv4, sia esso host IPv4 o gruppo multicast IPv4, tramite il datagramma ECHO_REQUEST del protocollo ICMP. Il datagramma ECHO_REQUEST è composto da un header IP e ICMP, seguito da una "struct timeval" e da un numero variabile di byte "pad" per riempire il pacchetto.

Come da advisory di sicurezza del FreeBSD Project, il comando ping recupera i pacchetti IP grezzi dalla rete per elaborare le risposte all'interno della funzione pr_pack(). Durante l'elaborazione della risposta, ping ricostruisce l'header IP, l'header ICMP e, se presente, un "quoted packet" che rappresenta il pacchetto che ha causato l'errore ICMP. Il "quoted packet" include anche un header IP e un header ICMP.

La funzione pr_pack() copia gli header IP e ICMP ricevuti nei buffer dello stack per un'ulteriore elaborazione. Tuttavia, non tiene conto della possibilità che header di opzioni IP seguano l'header IP, sia nella risposta che nel "quoted packet". In presenza di opzioni IP, pr_pack() fa overflow del buffer di destinazione fino a 40 byte.

Analisi tecnica

Il comando ping gira in userspace e, quando viene invocato il comando ping, viene eseguito il binario situato in /sbin/ping. Il codice sorgente dell'utility è disponibile pubblicamente nel sorgente di FreeBSD. La funzione vulnerabile, pr_pack(), stampa le informazioni di risposta del pacchetto ICMP su stdout in un formato stringa, ad esempio "64 bytes from 1.3.3.7: icmp_seq=1 ttl=55 time=13.7 ms."

image

Il pacchetto ICMP, sia nella richiesta che nella risposta, comprende header IP con un campo Options opzionale, come illustrato nel diagramma sopra. In un attacco malevolo, queste opzioni IP sono abilitate e riempite con byte non nulli.

Se un pacchetto ICMP è malformato o viene deliberatamente manomesso durante il percorso verso l'host di destinazione, e se le opzioni IP sono abilitate nella richiesta echo originale, la funzione pr_pack() non riesce ad allocare spazio sufficiente sullo stack per ospitare la presenza delle opzioni IP, causando un overflow dello stack.

In questi casi di errore, la risposta dell'host di destinazione può includere anche un "quoted packet" nella sezione dati, che identifica il pacchetto specifico che ha causato l'errore ICMP. La funzione pr_pack() fa overflow dello stack quando il "quoted packet" include header ICMP.

Scarica lo strumento