Bufferoverflows auf CPUs mit NX Bit: Difference between revisions
No edit summary |
No edit summary |
||
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 dem gcc-4.1 funktioniert das Überschreiben der Rücksprungaddresse nicht. Wir benutzen deshalb gcc-3.4. Damit funktioniert o.g. Anleitung. |
- 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 |
|||
- alternativ: Versuche auf Suns |
|||
⚫ |
Revision as of 11:25, 21 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
- nächster Schritt: ASLR umgehen siehe dazu: http://artofhacking.com/files/phrack/phrack59/P59-0X09.TXT und http://artofhacking.com/files/phrack/phrack58/P58-0X04.TXT