Xploit Ubuntu 9.10 selbst schreiben C

Hallo,

ich möchte mich mit dem Thema Exploits etwas beschäftigen. Dazu fange ich gerade mit dem Bufferoverflow an.
Code:
#include <string.h>
#include <stdio.h>


#define PASSWORD "test"

int main(int argc, char * argv[])
{
 int ok = 0;
 char password[10];
 printf("Hallo geben Sie hier ihr Passwort ein: ");
 scanf("%s",password);
 if(!strcmp(password,PASSWORD))
	{
	 printf("Hacked...");
	}
	else
	{
	 printf("Error..");
	}
}

Das ist meine tolle Appilikation. Ich dachte mir jetzt, wenn ich mehr in Passwort reinschreibe, als reinpasst dann sollte ich ja den "Schutz" sprengen können.

Damit kompiliere ich
Code:
gcc overflow.c -o prog -fno-stack-protector

Programm bei der Ausführung...
Code:
xpecs@master:/media/truecrypt2/Hackits/Software/Simple-Overflow$ ./Prog
Hallo geben Sie hier ihr Passwort ein: test
Hacked...xpecs@master:/media/truecrypt2/Hackits/Software/Simple-Overflow$ ./Prog
Hallo geben Sie hier ihr Passwort ein: 1233123123123123123123123123123123123
Segmentation fault
xpecs@master:/media/truecrypt2/Hackits/Software/Simple-Overflow$

Jetzt bin ich allerdings überfragt, wie ich jetzt es hinkriege das ich das Programm zum überlaufen kreige.

Danke für eure Hilfe im Vorraus
 
Hallo,
naja debugger anwerfen und schauen was du da so überschreibst.

Oder am besten ein Tutorial lesen wie der Stack aufgebaut ist, was man so überschreibt und wie man dann eigene Programme ausführen kann
 
Ich erzwinge doch schon einen BufferOverflow das sagt mir doch code: 1: Segmentation fault oder nicht?^^
Ja. Und zur Ausnutzung und shellcode erstellung gibt es hunderte guter Texte im Netz.

Alt, aber fuer diesen Fall gut: "smashing the stack for fun and profit"
 
@xpecs:
Nur so nebenbei:
Du solltest dich, der einfachheit halber damit du dich besser mit BufferOverflows an sich beschäftigen kannst, erst mit sg binären Bomben auseinandersetzen.
Das sind Programme welche Funktionen enthalten,die normalerweise nie aufgefrufen werden.

So bleibst du in deinem eigenen Speicherbereich und musst dir keine Gedanken um sg Speicherzugriffsverletzungen machen(wenn dein Exploit funktioniert,denn dann killt das OS deinen Prozess nicht wenn er versucht auf eine Adresse zuzugreifen die nicht in seinem Addressspace liegt, da du deinen Addressspace nicht verlässt.

Versuche also mal diese Funktionen aufzurufen, und achte darauf das die Funktionen nicht durch deinen Compiler wegoptimiert werdne.
Mfg

sw33t
 
Zurück
Oben