
Un exploit per la vulnerabilità /dev/exynos-mem introdotta nei precedenti smartphone Samsung.
Questa è una POC per sfruttare la vulnerabilità /dev/exynos-mem introdotta nei vecchi smartphone Samsung.
È stata realizzata per interesse nella ricerca sulle vulnerabilità del kernel e come parte di una sfida CTF.
La vulnerabilità introdotta in questi telefoni sono i permessi del dispositivo exynos-mem. Consentiva agli utenti sia L/S (lettura/scrittura), anche senza essere root!
Il dispositivo exynos-mem è un dispositivo che consente di leggere/scrivere direttamente su /dev/mem, il che significa che puoi scrivere direttamente al codice/dati del kernel.
Utilizzando /proc/iomem puoi scoprire rapidamente quali indirizzi fisici corrispondono a quale memoria sul sistema operativo, e persino scoprire dove si trova la memoria di Kernel Code / Data.
L'exploit fa alcune cose per ottenere root da questo:
/proc/kallsyms, il che ci penalizza. Pertanto, analizziamo la memoria del kernel per trovare la stringa di formato usata in kallsyms (seq_printf(m, "%pK %c %s\n", (void *)iter->value, iter->type, iter->name);)
e la modifichiamo in %p invece di %pK per ottenere gli indirizzi dei simboli stampati a noi come utenti./proc/kallsyms per trovare l'indirizzo del simbolo nsown_capable, che viene usato per identificare se un utente che chiama setuid() ha i permessi per farlo.nsown_capable per fargli semplicemente return true;, consentendo a qualsiasi utente di chiamare setuid() con qualsiasi uid voglia.setuid(0) e .Le costanti nel file potrebbero dover essere modificate un po' per essere corrette per il tuo sistema; impostale come necessario.
system(/bin/sh)