Bufferoverflows auf CPUs mit NX Bit

From
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Ziel ist es eine ret2libc-Angriff zu implementieren.

Wir benutzen als Ausgangspunkt: http://www.infosecwriters.com/text_resources/pdf/return-to-libc.pdf

- Linux ab Kernel 2.6.12 beinhaltet ASLR (address layout randomization) Dies lässt sich durch:

echo "0" > /proc/sys/kernel/randomize_va_space

ausschalten.

- Auf einem Linuxsystem mit NX-Bit kann man mit dem Programm "execstack" aus dem prelink-Packet einstellen, ob der Stack eines Programms ausführbar sein soll, oder nicht.

- Mit dem gcc-4.1 funktioniert das Überschreiben der Rücksprungaddresse nicht. Wir benutzen deshalb gcc-3.4. Damit funktioniert o.g. Anleitung.

- Mit Pax funktioniert weder unser Bufferoverflow-Demo noch das ret2libc-Demo (Grund: unklar)

- Auf einem AMD Athlon X2 funktionieren die Demos wie erwartet

- Auf Sun Sparc sind derartige Angriffe nicht ohne Weiteres möglich, da die ersten 6 Argumente und die Rücksprungaddressen in Registern liegen.

- ASLR umgehen nach http://artofhacking.com/files/phrack/phrack59/P59-0X09.TXT funktioniert auf Kernel 2.6.16 mit gcc-3.4

- Die in http://artofhacking.com/files/phrack/phrack58/P58-0X04.TXT beschriebene Methode funktioniert bei uns nicht.