3

Je suis en train de lire plusieurs livres de sécurité (ma passion) concernant la programmation sécurisée, mais les distributions qu'ils fournissent sur le disque sont défectueuses ou inexistantes. Le problème est que quand j'essaie de suivre les exemples, évidemment les nouvelles distributions ont une protection de pile et d'autres fonctions de sécurité mises en place pour éviter ces situations, et j'ai essayé de configurer manuellement l'environnement fourni avec le piratage de l'art de l'exploitation, mais j'ai échoué. J'ai aussi essayé DVL (Dam Vulnerable Linux) mais de façon trop gonflée, je veux juste un environnement minimal que je peux avoir dans une petite partition et choisir parmi bootloader OU avoir dans une petite virtualbox. Donc ma question est la suivante: Comment puis-je configurer un environnement (distro old kernel) dans lequel je peux suivre la plupart de ces exemples. Peut-être que si quelqu'un pouvait me dire le noyau et la version GCC de DVL, je pourrais obtenir la plupart d'entre eux s'installent.Configuration de l'environnement pour l'apprentissage du débordement de tampon

+0

Je pense que DVL est pléthorique sur le but - il vous donne plus de choses à exploiter. – LiraNuna

Répondre

2

Vous devez reconstruire le noyau sans protection de la pile et tas, y compris pile non exécutable. Vous devez ensuite compiler en utilisant les drapeaux gcc pour désactiver les protections, dont l'une serait "-fno-stack-protector". Aussi parce que vous y arriverez assez tôt, vous voudrez probablement compiler statiquement votre programme, car il sera un peu plus facile de le comprendre lorsque vous déboguez dans votre charge utile 0x41414141. En fonction de votre définition de "bloat", il vous sera peut-être plus facile de télécharger une ancienne distribution de linux, redhat 5 ou un ancien slackware et installez-la et utilisez-la avec la chaîne d'outils par défaut.

+0

ce sont les détails que j'avais après. À votre santé – theraven

1

Si vous avez encore DVL disponible, vous pouvez utiliser les commandes:

$ uname -r 
$ gcc --version 

pour trouver par vous-même.

Edit: selon distrowatch.com le noyau linux est 2.6.20 et gcc est 3.4.6

Questions connexes