2009-02-09 9 views
5

W ramach przypisania kursu muszę napisać kod exploita, aby spowodować przepełnienie bufora i wykonać kod, który jest obecny na stosie.Zabezpieczenie wykonania stosu i randomizacja na ubuntu

ja wyłączyłem randomiztion stosu następującego polecenia: sysctl -w kernel.randomize_va_space = 0 Jednak nie jestem w stanie znaleźć sposób, aby wyłączyć zabezpieczenie wykonania stos. Nie jestem pewien, czy w ubuntu jest jakaś ochrona stosu, czy nie ... więc moje pierwsze pytanie brzmi: czy jest coś takiego jak tarcza wykonawcza czerwonego kapelusza w Ubuntu 8.10, a jeśli tak, to jak możemy to wyłączyć.

Próbowałem spowodować przepełnienie bufora i wykonać polecenie ze stosu, ale ilekroć próbuję to zrobić, daje mi błąd seg.

dostałem ubuntu 8.10 64-bitowy, JEDNAK, program im debugging jest kompilowany na maszynie i386 z wyłączoną ochroną stosu.

+0

* lol * wojna przeciwko krakersy powstrzymuje nasze biało-kapelusze, aby nauczyć się handlu. Może przestępcy znikną, gdy nie wiemy, jak to robią? ;) –

+0

Czy [ten link] (http://pwet.fr/man/linux/administration_systeme/execstack) będzie pomocny? – jpalecek

Odpowiedz

5

Prawdopodobnie chcesz kompilować z flagą -z execstack w swojej kompilacji gcc, wraz z -fno-stack-protector (aby wyłączyć SSP/Propolice ochrony stosu GCC), tj:

gcc -fno-stack-protector -z execstack -o vuln vuln.c 

Wszystko powinno prawdopodobnie okazać się Jake po tym. Zauważ, że sysctl -w kernel.randomize_va_space=0 to tylko randomizacja przestrzeni adresowej, a nie ochrona stosów, per se; które mogą być brutalnie zmuszone do użycia różnych technik.