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
iptable_evil — Backdoor a livello kernel per iptables che accetta tutti i pacchetti con il bit evil dell'RFC 3514 impostato, bypassando le regole del firewall. Include build in-tree e out-of-tree per Linux. | Kitploit
Strumenti/GitHubGitHub/flamingspork/iptable_evil
ExploitEvasione IDS/IPSSicurezza di ReteApprendimento e FormazioneRed Teaming
GitHubflamingspork/iptable_evil

iptable_evil

Backdoor a livello kernel per iptables che accetta tutti i pacchetti con il bit evil dell'RFC 3514 impostato, bypassando le regole del firewall. Include build in-tree e out-of-tree per Linux.

Vedi Repository
54135 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

iptable_evil

iptable_evil è un backdoor molto specifico per iptables che consente (fa passare) tutti i pacchetti con il bit evil impostato, indipendentemente dalle regole del firewall.

L'implementazione iniziale è in iptable_evil.c, che aggiunge una tabella a iptables e richiede la modifica di un header del kernel per inserire uno spazio per essa. La seconda implementazione è una versione modificata del modulo core ip_tables e dei suoi dipendenti per permettere il passaggio di tutti i pacchetti Evil.

L'ho testato sulla versione 5.8.0-48 del kernel Linux, ma dovrebbe essere applicabile praticamente a qualsiasi versione del kernel con un'implementazione completa di iptables.

Spiegazione dell'Evil Bit

L'RFC3514, pubblicata il 1° aprile 2003, definisce il bit più significativo, precedentemente inutilizzato, del campo "fragment offset" dell'IP come un flag di sicurezza. Per i sistemi conformi all'RFC, un 1 in quella posizione indica intenti malevoli e farà sì che il pacchetto venga bloccato.

Per impostazione predefinita, questo bit è disattivato, ma può essere attivato nel vostro software se assemblate l'intero pacchetto IP (come fanno alcuni strumenti di hacking), oppure nel kernel Linux usando questa patch (rispecchiata in questo repository qui).

Come funziona il backdoor?

Quando un pacchetto viene ricevuto dal kernel Linux, viene elaborato da iptables e quindi inviato allo spazio utente, rifiutato o modificato in base alle regole configurate.

In particolare, ogni tabella di iptables utilizza la funzione ipt_do_table in ip_tables.c per decidere se accettare un determinato pacchetto. L'ho modificata per accettare automaticamente qualsiasi pacchetto con il bit evil impostato e saltare ogni ulteriore elaborazione.

Ho anche tentato di aggiungere un'altra tabella (iptable_evil.c) che avrebbe accettato tutti i pacchetti evil e passato gli altri alle tabelle standard per l'elaborazione, ma non ho mai capito come passare i pacchetti alla tabella successiva e ho deciso che il backdoor di ipt_do_table fosse sufficiente come proof of concept.

Perché hai fatto questo?

Dovevo realizzare e documentare un progetto abbastanza grande in sicurezza informatica per uno dei miei corsi, e questa mi è sembrata un'idea interessante. Probabilmente è più lavoro di quanto si aspettasse per questo, ma ¯\_(ツ)_/¯.

Costruzione

Costruzione in-albero (in-tree)

La tabella evil richiede la modifica degli header del kernel, quindi l'installazione richiede l'esecuzione con un kernel prodotto tramite la costruzione completa dell'albero.

  • Copia i contenuti di replace-existing nella directory del tuo kernel sorgente, sovrascrivendo i file esistenti.
  • Copia iptable_evil.c in linux-X.Y.Z/net/ipv4/netfilter
  • (opzionale) copia ip_tables.c in linux-X.Y.Z/net/ipv4/netfilter
  • Compila il kernel secondo la procedura della tua distribuzione (dovrebbe produrre un pacchetto)
  • Installa il file del pacchetto
  • Riavvia con il nuovo kernel
  • iptables -t filter -L
  • iptables -t evil -L (l'output sarà confuso, ma il modulo verrà caricato)

Costruzione fuori-albero (out-of-tree)

Questo è significativamente più semplice e veloce, ma non supporta la tabella evil e segna il kernel come "contaminato". Dovrebbe essere possibile copiare i file ko prodotti da questo procedimento su un altro computer con la stessa identica versione del kernel, ma non l'ho testato.

  • Esegui make
  • rmmod iptable_*
  • rmmod ip_tables
  • insmod ip_tables.ko
  • insmod iptable_filter.ko

Test/Demo

Per testarlo, devi ricostruire l'intero kernel con questa patch o creare i tuoi pacchetti usando uno strumento come Scapy. Ho scelto la prima opzione perché stavo già costruendo il kernel per la tabella evil.

Nella prima schermata, ho bloccato tutto il traffico verso questa VM in iptables, ma riesco comunque a connettermi via SSH perché i miei pacchetti hanno il bit evil impostato, come mostra la seconda schermata. schermata di una connessione SSH che avrebbe dovuto essere bloccata schermata di Wireshark che mostra il bit riservato impostato

Quando ci si connette alla VM con backdoor da una VM che non imposta il bit evil, la connessione SSH alla fine scade. schermata di una connessione SSH in timeout schermata di Wireshark che mostra il bit riservato non impostato

Le catture dei pacchetti delle connessioni SSH con e senza backdoor si trovano nella cartella docs/ di questo repo per la vostra consultazione.

Versione del kernel

  • 5.8.0-48-generic (Ubuntu 20.04)

Ulteriori informazioni e risorse

  • RFC 3514 che inventa l'evil bit: https://tools.ietf.org/html/rfc3514
  • Introduzione all'evil bit di Ben Cox: https://blog.benjojo.co.uk/post/evil-bit-RFC3514-real-world-usage
  • iptables_uwu di Ben Cox (principalmente per dare i nomi delle cose da ricercare): https://github.com/benjojo/iptables-uwu
  • Una spiegazione un po' datata ma molto dettagliata di come funziona iptables e come aggiungere target e moduli: https://inai.de/documents/Netfilter_Modules.pdf
  • https://upload.wikimedia.org/wikipedia/commons/3/37/Netfilter-packet-flow.svg
  • La ricerca Elixir di Bootlin è significativamente più facile da usare per trovare identificatori nel kernel rispetto a grep: https://elixir.bootlin.com/linux/v5.8/source/net/ipv4/netfilter/ip_tables.c#L225
  • La documentazione di Ubuntu spiega come costruire il kernel: https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel
Scarica lo strumento