Mailing List del Fortunae LUG ============================= On Thu, May 15, 2003 at 12:51:01PM +0200, legion wrote: [ptrace bug] > qualcuno mi sa spiegare in poche parole cosa usa questo exploit per > avere una suid shell? Il kernel ha una lunga storia di bug exploitabili tramite ptrace, ma suppongo tu ti riferisca all'ultimo uscito. Lo spiego un po' a grandi linee, spero i coder C mi perdoneranno qualche imprecisione linguistica. :-) Il concetto è semplice: quando il sistema ha bisogno di una feature contenuta in un modulo, il kernel crea un processo, gli assegna i permessi di root (EUID e EGID 0) e questo, a sua volta, chiama modprobe per caricare il modulo. Il problema risiede nel fatto che, nel tempo che intercorre tra l'assegnazione dei permessi di root e la chiamata a modprobe, è possibile attaccarsi a questo processo con la ptrace() e inserire nel suo spazio di memoria codice arbitrario. Quando il flusso di esecuzione raggiunge l'indirizzo di memoria prestabilito, viene eseguito lo shellcode e il gioco è fatto. Si sfrutta quel che in gergo si chiama una "race condition", una sorta di gara di velocità con il processo bersaglio. Ovviamente, per funzionare, è necessario che il kernel sia compilato col supporto per i moduli. -- #include <best/regards.h> BlueRaven "One world, one Web, one program" - Microsoft Promo ad. "Ein volk, ein Reich, ein Fuhrer" - Adolf Hitler. -- Bill Gates : "No! Nel nostro software non ci sono bug significativi che un numero significativo di utenti vuol vedere corretti."