Simple BufferOverflow Tutorial

Hallo!

Ich wollte dieses Tutorial hier mal ausprobieren:
http://www.milw0rm.com/papers/28

Wir kompilieren das Programm, setzen gdb drauf
(gdb) r ./vuln-prog2 `perl -e 'print "A" x 20'`
und dann kommt das folgende:

Code:
(gdb) info reg eip
eip 0x40003e40 0x40003e40
(gdb) info reg ebp
ebp 0x41414141 0x41414141

(A=41)
Bei mir kommt allerdings immer das hier:

Code:
(gdb) info reg eip
eip            0xffffe410       0xffffe410 <__kernel_vsyscall+16>
(gdb) info reg ebp
ebp            0xbfae8280       0xbfae8280
(gdb)

Wodran liegt das? Evtl an meinem gcc? Ich benutze folgende Version:
gcc-Version 4.1.2 (Ubuntu 4.1.2-0ubuntu4)

Danke

Nimda05
 
Das liegt ganz einfach daran, dass die Speicheradressen im Tutorial nur Beispiele sind, da sie immer unterschiedlich sind. Ausserdem können auch verschiedene GDB-Versionen und -Konfigurationen unterschiedlichen Output produzieren. Vielleicht doch erstmal lernen, wie so ein Stack aussieht und wie das mit der Speicherverwaltung funktioniert? ;)
 
Jaja, baba^^ Ne dicke Amazon Bestellung mit der grundlegenden Lektüre ("Assembler" von Reiner Backer, "Buffer Overflows und Format-String-Schwachstellen" von Tobias Klein, "Forbidden Code" von Jon Erickson,etc) ist vor ein paar Tagen schon angekommen. Ich hab blos in die entscheidenden Bücher noch nicht reingeschaut weil ich gerade schon 4 Bücher lese *g*. Hab gehofft durch das Tut einen kleinen Einblick zu bekommen. War ja nun anscheinend nicht so.

Zurück an die Reisfelder .... :p
 
Im übrigen können die Buffer von System zu System und Distro zu Distro auch unterschiedlich gross sein, denn bei deinem Output sieht es nicht danach aus, als sei der EBP überschrieben worden, da sonst zumindest dieser 0x41414141 (also A) enthalten müßte. Ich empfehle dir als (relativ kurzgehaltene) Einführung "Smashing the Stack for Fun and Profit" von Aleph One.
 
Jaja, baba^^ Ne dicke Amazon Bestellung mit der grundlegenden Lektüre ("Assembler" von Reiner Backer, "Buffer Overflows und Format-String-Schwachstellen" von Tobias Klein, "Forbidden Code" von Jon Erickson,etc) ist vor ein paar Tagen schon angekommen.

Im Buch von Tobias KLein gibts ausreichend "copy & paste" Tutorials.

Klein hat sich sehr viel Muehe gegeben Phrack zu pluendern, zu uebersetzen- und es dem "Neuling" verstaendlich zu machen.

Und den assemblerkram kannste erstmal getrost vergessen.
 
Danke schön!

Ich hab schon fast Angst bekommen als ich da mal durchgeblättert habe. Es sah auf den ersten Blick ziemlich kompliziert aus. Ich lass mich mal überraschen :)
Heute kam noch ein Buch an("Illuminati" von Dan Brown) - jetzt lese ich Bücher.
Ich glaub das dauert noch ne Wochen bis ich mit den Buffer-Overflows anfange. ;)

Aber das mit dem Assembler verstehe ich nicht. Bei Assembler arbeitet man doch sehr nah an den Registern, Stack und ähnlichem. Ich würde damit parallel zu den Buffer Overflows anfangen.. oder muss man sich das nicht antun?
 
Fuer Exploits braucht man eigentlich relativ wenig Assembler. Meist reicht ein wenig Inline-Assemler in C um den ESP zu ermitteln und ansonsten "braucht" man es nur zum Erstellen eines Shellcodes, von denen es aber auch mehr als genug im WWW gibt. Grundwissen reicht also voellig aus.
 
Zurück
Oben