2017-05-16 5 views
0

Ich lese das Shellcoders Handbuch. Ich folge mit und kann meinen Shellcode aus irgendeinem Grund nicht ausführen. Ich habe das Programm mit gcc -mpreferred-stack-boundary = 2-m32 -z execstack-fno-stack-protector -no-piePufferüberlauf funktioniert nicht (Shellcoders Handbuch)

Ich verstehe nicht ... Ich habe die Kontrolle über EIP, ich Habe mir den Stack in GDB angesehen, ich spring zu meinem NOP-Schlitten, aber immernoch nichts ... Ich verstehe nicht, warum es nicht funktioniert. Ich habe es selbst versucht, und ich habe sogar den Verbatim-Code aus dem Buch ausprobiert, beide funktionieren nicht. meine dmesg zeigt:

Controlling EIP: segfault bei 42.424.242 ip 0000000042424242 sp 00000000ffffd330 Fehler 14

Nach dem Versuch zu NOP Schlitten zu Umleiten: segfault bei 0 ip 00000000ffffd332 sp 00000000ffffd300 Fehler 6

I‘ Ich laufe Kali, aber ich habe es auch auf Ubuntu versucht. Ich habe ASLR in/proc/sys/kernel deaktiviert. Ich probiere das auf einer virtuellen Maschine aus, also bin ich mir nicht sicher, was genau passiert.

Ich würde jede Hilfe zu schätzen wissen, da ich nicht weitergehen will, bis ich herausfinde, was vor sich geht.

+0

Ich habe das gleiche Problem, und ich kann nicht herausfinden, warum das ist. Die IP, zu der ich springen konnte, bekam ich von '/ proc//maps' (stack). – Arin

Antwort

0

Ihr Shellcode ist für ein 32-Bit-System (das Flag -m32) in einem 64-Bit-Programm kompiliert. Versuchen Sie also, das -m32 beim Kompilieren zu entfernen.

+0

Ich habe auch auf 32-Bit-Linux versucht ... die gleichen Probleme. –

+0

bist du sicher? Kannst du zusätzliche Informationen wie das Programm und den Shellcode posten? –

+0

Ich fragte einen Kumpel von mir, der einen Master-Abschluss in Ausbeutung hat und er sagte, er sei nicht sicher, warum es nicht funktionierte, ich vermute, dass es vielleicht mit neueren Kernel in Linux zu tun hat. Ich ging weiter zur Ausbeutung und es funktioniert gut –