Bene, l'idea di un sistema operativo sicuro ovviamente non consente l'escalation dei privilegi. Quindi deve esserci una vulnerabilità senza patch. Sebbene la vulnerabilità di escalation dei privilegi di solito ottenga meno priorità dei bug sfruttabili da remoto, vengono risolti nel tempo.
Ad esempio, c'era una vulnerabilità nel kernel di Linux che causava la scrittura di core dump files di applicazioni bloccate nella directory di lavoro corrente senza controllare le autorizzazioni . Quindi un utente malintenzionato potrebbe scrivere un programma che imposta la directory di lavoro su /etc/cron.d e bloccarlo. Con un po 'di preparazione, cron sarebbe in grado di fare qualcosa di "utile" con il core dump file.
Un altro attacco correlato si basa su una vulnerabilità di creazione di file non sicuri . Un'applicazione non funzionante può provare a creare un file temporaneo in una directory pubblica scrivibile (ad es. / Tmp) senza forzare la sola creazione. L'utente malintenzionato creerà un collegamento simbolico che punta altrove (dove l'autore dell'attacco non dispone dell'autorizzazione alla scrittura). L'applicazione vulnerabile sovrascriverà il file di destinazione (ad es. /Home/someuser/.profile per gli utenti normali e un file di sistema per root).
Penso che due esempi siano sufficienti per ora.
Prendere un sistema completamente aggiornato e tentare di sfruttarlo non è un buon approccio per l'apprendimento di tali problemi. Raccomando di leggere Programmazione sicura per Linux e Unix HOWTO . Basandosi su questa conoscenza puoi giocare: Scrivi una semplice applicazione che viola una di quelle regole e poi prova a sfruttarla.