*Markus: Root-Rechte mit Buffer Overflows erlangen

Beitrag lesen

Hallo,

in meinem neu erworbenen Buch wird anhand diverser Beispiele erklärt, wie es gelingen kann, mithilfe von schlampigen Programmen und Buffer Overflows Root-Rechte zu erlangen.
Das Beispiel bezieht sich auf ein einfaches Programm, dass die Länge des einzugebenen Strings nicht überprüft:

  
#include <string.h>  
  
int main(int argc, char **argv)    {  
  
char buffer[500];  
strcpy(buffer, argv[1]);  
return 0;  
}  

Mithilfe des Exploits wird dieses obige Programm ausgeführt und versucht, Code einzuschleusen. Der einzuschleusende Shellcode, den ich zur besseren Übersicht aus dem Exploit in einen Hex-Editor übertragen habe, sieht so aus:

Dazu hätte ich zwei Fragen:
Das Erlangen der Root-Rechte gelingt nur zu relativ selten. Ich muss das Exploit dafür sehr oft ausführen. Ohne jetzt mal den Code zu posten würde ich gerne wissen, ob jemand Ahnung hat, warum das so ist? Ein Programmfehler scheint nicht vorzuliegen, da es doch ab und zu funktioniert.

Meine zweite Frage wäre die Erklärung des HEX-Codes vor /bin/sh. Ich würde gerne wissen, welche Anweisungen für den PC die paar Hex-Zahlen vor /bin/sh beinhalten. Das wird nämlich leider nicht erklärt, und dass die letzte Anweisung /bin/sh ist, habe ich natürlich auch erst im Hex-Editor gesehen.

Markus.

--
http://www.apostrophitis.at
STANDAR_D_  - ist das wirklich so schwer?