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-2017-8890-msf — Per Metasploit pull request | Kitploit
Strumenti/GitHubGitHub/7043mcgeep/cve-2017-8890-msf
Framework di ExploitAnalisi delle VulnerabilitàExploitBinary Exploitation
GitHub7043mcgeep/cve-2017-8890-msf

cve-2017-8890-msf

Per Metasploit pull request

Vedi Repository
117 anni 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

Modulo: Phoenix Talon CVE 2017-8890

Questo potrebbe risolvere il problema #8571, che richiede moduli Phoenix Talon.

Panoramica di 2017-8890

Questo CVE:

  • è il membro più grave della classe di vulnerabilità Phoenix Talon del kernel Linux. Nessun POC di questo CVE esiste nell'Exploit DB. Ma altri POC pubblici sono disponibili.
  • non è molto ben documentato. Ma ecco una breve spiegazione per darti una comprensione generale della vulnerabilità.
  • esiste in tutte le versioni del kernel fino alla 4.10.15, anche se alcune fonti dicono che esiste fino alla 4.11. Vedi il commit della patch qui.
  • è il risultato di un difetto nello stack IPv4 del kernel (in particolare, multicast).

Sulla macchina target, viene attivato un double-free a causa del kernel che mantiene una copia extra di mc_list al momento di accept().

Pseudocodice con spiegazioni:

Una macchina che esegue un kernel 4.10.15 e precedenti è a rischio se esegue la seguente routine:

root@kitploit:~
sockfd = socket(AF_INET, xx, IPPROTO_TCP);
setsockopt(sockfd, SOL_IP, MCAST_JOIN_GROUP, xxxx, xxxx);
bind(sockfd, xxxx, xxxx);
listen(sockfd, xxxx);
newsockfd = accept(sockfd, xxxx, xxxx);
close(newsockfd);  // trigger release calls, handoff to RCU
sleep(5);          // wait for rcu to free()
close(sockfd);     // second free()
Scarica lo strumento

Il socket padre, sockfd, viene creato. Viene aggiunto al gruppo multicast con l'opzione MCAST_JOIN_GROUP. Aggiungendo il socket al gruppo multicast sull'interfaccia locale, il kernel alloca memoria. A questo punto, mc_list esiste nel socket padre.

Dopo che un indirizzo viene assegnato al socket con bind(), listen() per la connessione e accept(). accept() crea un nuovo socket, newsockfd, a cui vengono copiati tutti i campi necessari del padre, incluso il valore del puntatore mc_list. A questo punto, ci sono più puntatori che puntano allo stesso blocco di memoria, da qui il double free.

Quando la connessione viene stabilita, il kernel crea un socket figlio che eredita l'oggetto mc_list del socket padre. Questo difetto di ereditarietà si trova in inet_csk_clone_lock alla riga 648 del file net/ipv4/inet_connection_sock.c. Vedi la patch per vedere la correzione di una riga per questa ereditarietà non intenzionale.

Successivamente, chiudi il socket figlio. Come spiegato sopra, questo non rilascia l'oggetto mc_list. Passa attraverso la struttura RCU (remote-copy-update) per rilasciare la memoria. sleep() per alcuni secondi per assicurarsi che il passaggio RCU abbia abbastanza tempo per chiamare kfree(). Infine, chiudi il socket padre, che attiverà il secondo free.

Il Modulo

DoS semplice. Attiva da remoto un double-free su una macchina target nota che esegue la routine server richiesta (spiegata sopra). Questo causa un kernel panic.