2015-04-24 1 views
1

J'ai lu 5 articles/articles et 2 vidéos sur Dépassement de tampon de pile, et Dépassement de tas. J'ai écrit un programme qui était vulnérable débordé et exploité qui, a couru un serveur sur le port 7777 qui était vulnérable, débordé et exploité cela. Mais ce que je ne comprends pas, c'est comment trouver des vulnérabilités dans Windows (ou d'autres systèmes d'exploitation) ou des logiciels. J'utilisais gcc et gdb pour faire du débogage afin de trouver tout ce dont j'avais besoin pour écrire l'exploit. Comment trouver les vulnérabilités Stack Buffer Overflow sur d'autres programmes/logiciels et comment déboguer le programme vulnérable ou puis-je utiliser gdb?Recherche de dépassements de tampon de pile

+0

gcc et gdb sont également disponibles pour Windows. –

+0

Pouvez-vous me dire comment Vous avez réalisé les deux exploits dont vous parlez? Surtout l'os ciblé que j'aimerais savoir. – icbytes

+0

Si ce que vous essayez de faire est légal alors je suppose que vous pouvez demander et recevoir le code source du logiciel dont vous voulez tester les faiblesses. –

Répondre

5

Il existe deux approches principales pour trouver des dépassements de mémoire tampon de la pile:

test boîte noire La clé pour tester une application pour les vulnérabilités de débordement de pile fournit des données d'entrée trop importantes par rapport à ce qui est attendu. Cependant, soumettre l'application à des données arbitrairement importantes n'est pas suffisant. Il devient nécessaire d'inspecter le flux d'exécution et les réponses de l'application pour déterminer si un débordement a effectivement été déclenché ou non. Par conséquent, les étapes nécessaires pour localiser et valider débordements de pile serait d'attacher un débogueur à l'application cible ou d'un processus, générer entrée malformé pour l'application, soumettre l'application à l'entrée malformé, et inspecter les réponses dans un débogueur. Le débogueur permet au testeur de visualiser le flux d'exécution et l'état des registres lorsque la vulnérabilité se déclenche

gris Boîte test examiner manuellement le code (démonter). Lors de l'examen du code pour les dépassements de pile, il est conseillé de rechercher des appels à des fonctions de bibliothèque non sécurisés comme gets(), strcpy(), strcat() etc qui ne valide pas la longueur des chaînes de source et de copier aveuglément les données dans des tampons de taille fixe. Outre le contrôle manuel du code des dépassements de pile, les outils d'analyse de code statique peuvent également être d'une grande aide. Bien qu'ils ont tendance à générer beaucoup de faux positifs et serait à peine en mesure de localiser une petite partie des défauts, ils contribuent certainement à réduire les frais généraux associés à la recherche fruits mûrs, comme des insectes strcpy() et sprintf(). Une variété d'outils tels que RATS, Flawfinder et ITS4 sont disponibles pour analyser les langages de style C.

Les meilleurs outils pour ces testings sont: OllyDbg et IDA Pro (pour le débogage statique et dynamique).

+0

Merci beaucoup! –

+0

@ user3673835 Bienvenue à Ur. Si vous avez trouvé la réponse utile, j'apprécierais que vous puissiez voter et accepter la réponse :). –