2009-07-02 6 views
3

J'essaie d'apprendre à utiliser l'attaque par débordement de tampon dans Ubuntu. Malheureusement, je ne peux pas désactiver la fonction ASLR (Address Space Layout Randomization) dans ce système d'exploitation, qui est activé par défaut. J'ai essayé un peu de travail trouvé dans certains livres fedora:Pratique de l'attaque de débordement de tampon dans Ubuntu

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

mais pour une raison quelconque, la protection est toujours là. S'il vous plaît donnez-moi quelques suggestions. Merci.

[edit] En fait la commande ci-dessus n'a pas réussi, elle a dit "Permission Denied", même avec sudo. Comment puis-je résoudre ce problème? [Ajout] J'ai continué à obtenir une erreur de faute de segmétrie quand elle montre une adresse dans la pile. Est-il lié à pile non exécutable dans ubuntu :(?

+1

Vous avez besoin d'execstack (apt-get install execstack) pour désactiver NX par application. – Rushyo

+0

Connexe: http://stackoverflow.com/questions/5194666/disable-randomization-of-memory-addresses – 0fnt

Répondre

7

Vous aurez besoin perms racine avant d'essayer, et si je ne me trompe pas, pour redémarrer une fois que vous l'avez fait.

sudo -i 
echo "0" > /proc/sys/kernel/randomize_va_space 
+0

Je l'ai essayé comme vous l'avez dit, mais après avoir redémarré ubuntu j'ai vu ce fichier et la valeur précédente dans ce fichier était inchangée : |. Merci. – wakandan

+3

Bien sûr, il a changé après le redémarrage;/proc est un répertoire volatile. Essayez de recompiler le noyau avec randomize_va_space désactivé :) – MoshiBin

+0

Merci beaucoup. J'ai utilisé votre commande chaque fois que j'en ai eu besoin: D – wakandan

1

gcc compiler avec -fno-stack-protector

+1

Ce n'est pas ASLR. – Rushyo

1

pour faire écho aux fichiers avec accès root à l'aide sudo vous pouvez utiliser le code suivant:

echo "0" | sudo tee /proc/sys/kernel/randomize_va_space 
2

trouvé moi-même

, vous devez compiler cette façon:

gcc -fno-stack-protecteur -Z execstack -o SORTIE input.c

+2

Ce n'est pas ASLR. – Rushyo

1

Vous pouvez désactiver ASLR pour un processus particulier en lançant avec setarch

32 programmes de bits:

setarch i386 -R yourProgram 

64 programmes de bits:

setarch x86_64 -R yourProgram 
Questions connexes