Bufferoverflows auf CPUs mit NX Bit: Difference between revisions
No edit summary |
No edit summary |
||
(5 intermediate revisions by the same user not shown) | |||
Line 7: | Line 7: | ||
echo "0" > /proc/sys/kernel/randomize_va_space |
echo "0" > /proc/sys/kernel/randomize_va_space |
||
ausschalten. |
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 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. |
Latest revision as of 13:57, 25 September 2006
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.