naja ob das exploit richtig funktioniert kann ich dir nicht sagen, jedoch das man diesen bug ausnutzen kann zu 100%. Ich hab jetzt einen genaueren Blick da reingeworfen und schonmal einen fehler entdeckt der das ausführen vom shellcode verhindern würde.
Ich habe den mal verbessert und du kannst es hier runterladen:
keine angst ich habe da nix böses reingepackt nur die zeile
" for(i=16;i<1100;i+=4)*(long *)&buf
=(0xbffffffa-strlen(exec));"
in
" for(i=16;i<1100;i+=4)*(long *)&buf=(0xbffffffa-strlen(exec) - 2);"
geändert und die zeile
" printf("[*] Using the retaddr [%p]\n", (0xbffffffa-strlen(exec) - 2 ));"
eingefügt.
lad es runter und compilier es ganz enfach mit "gcc -o xosx-cf xosx-cf.c" und starte es mit "./xosx-cf".
Dann wenn es nach dem passwort fragt nicht enter drücken sondern in einer anderen konsole: "ps aux|grep su" Dann solltest du eine ähnliche ausgabe wie die bekommen:
Nun kopier die PID vom su prozess und gib folgendes ein: "sudo gdb -p <SU-PID>". Natürlich die entsprechende pid einsetzen.
Dann kommt sowas in der art:
und gib ein x/x 0xbfffffa0. die ausgabe vom debugger(gdb) sollte exakt wie diese sein:
wenn nich schreibe bitte was daran anders ist. wenn da alles ok war gib einfach "c" ein und mit enter bestätigen.
Jetz gib auch in der anderen konsole beim password prompt enter ein und guck nun im debugger was er sagt.
Fals er etwas anderes als "Program exited with code 01." sagt ist es schonmal ein gutes zeichen.
Falls da nun etwas ähnliches wie "Program received signal SIGTRAP, Trace/breakpoint trap." steht ist es ein sehr gutes zeichen und du kannst den debugger mit "q" beenden und das programm nochmal starten und dann beim password prompt direkt enter eingeben. du solltest nun eigentlich eine root shell haben. wenn da jedoch etwas wie "Program received signal SIGSEGV, Segmentation fault." kommt ist da nochn fehler im exploit wenn da das letztere oder etwas komplett anderes kommt poste es bitte damit ich es mir angucken kann.