Articles

0: Connaissances de base

Posted on

Le développement des exploits est difficile, apprendre à le faire va nécessiter beaucoup d’études, de pratique et une bonne compréhension d’un assez large éventail de sujets associés. La bonne nouvelle est que vous n’avez pas à tout apprendre en même temps, ou du jour au lendemain, et qu’il y a beaucoup de gens qui ont fait ou qui font le même voyage douloureux – dont certains écrivent des blogs comme corelan security ou fuzzy security.

L’approche généralement recommandée pour un débutant est de commencer par le début, les débordements de tampons à base de pile simple de style fin des années 90 popularisés par « Smashing the stack for fun and profit » d’Aleph One, puis de travailler progressivement sur l’introduction et la défaite des atténuations progressivement plus modernes, de nouveaux vecteurs et architectures d’exploitation. Alors que vous faites cela et que vous vous entraînez contre des exploits du monde réel, vous commencez à acquérir certaines des connaissances auxiliaires de vos propres recherches, et n’oubliez pas de prendre des notes, vous trouverez peut-être utile de tenir un blog ou de publier des soluces de vos exploits ici

Le niveau de compétence exact auquel vous devez être avant de commencer à en apprendre davantage sur l’exploitation binaire sera toujours quelque chose qui inquiète certaines personnes. Êtes-vous prêt? La réponse est généralement oui et non, vous apprenez plus en commençant aujourd’hui et en échouant que n’importe quelle quantité de procrastination, mais en même temps, chaque fois que vous apprenez quelque chose de nouveau, vous découvrez deux choses que vous ne comprenez pas. Le piratage est terrible pour cela, plus j’apprends, plus je me sens comme un débutant complet. La seule chose pour cela est d’essayer; le pire des cas est que vous découvrez que vous devez d’abord apprendre d’autres choses, et cela ne fait jamais de mal de lire un livre.

Ressources:

Une variété de livres

Sujets recommandés:

Une compréhension de C / C++

Concepts de mémoire et de CPU tels que l’adressage de mémoire, les registres et les piles

Un langage de script tel que Python, Perl, Ruby ou Bash

Maîtrise de votre système d’exploitation choisi, et au moins une compréhension de base du débogueur que vous utilisez

La question des plates-formes à utiliser comme victimes est principalement un choix personnel, certaines personnes aiment d’abord apprendre l’exploitation Windows puis passer à Linux, tandis que d’autres (comme moi) préfèrent commencer par l’exploitation Linux avant de passer à Windows. À mon avis, il existe de plus en plus de ressources pour apprendre les bases sur Linux, mais le choix vous appartient vraiment.

Ressources:

Briser la pile pour le plaisir et le profit

Exercices d’exploit Protostar: Niveaux de pile 0-5

Certains des concepts impliqués dans l’apprentissage de ce type d’exploitation simple seront assez étrangers à un novice, mais avec un peu de temps passé avec un débogueur, vous devriez commencer à comprendre certaines des choses que vous allez avoir besoin de lire sur

2: Vulnérabilités de chaîne de format

Ressources:

Introduction aux exploits de chaîne de format

Exercices d’exploit Protostar: Niveaux de format 0-4

Les exploits de chaîne de format sont une bonne étape suivante après de simples débordements de tampon car ils partagent de nombreuses similitudes, mais vous donnent également l’occasion de jouer avec des manipulations de mémoire arbitraires. Les chaînes de format vous montrent également certaines des bizarreries qui peuvent entraîner des situations exploitables

3: Retour à des piles non exécutables de la LibC (alias DEP, W^X, NX)

Ressources:

(Exercices d’exploit Protostar: Niveau de pile 6](https://exploit.education/protostar/stack-six/)

ret2libc est le premier contournement simple d’une atténuation d’exploit et sert d’introduction aux concepts qui forment la base de la puissante technique de programmation orientée retour, il existe quelques variantes de cette technique telles que ret2plt ou ret2text

4: Programmation orientée retour (ROP)

Ressources:

Exercices d’exploit Protostar: Stack level 7

/ u /d4mianwayne ‘s ROP Introduction

ROP est une technique clé pour l’exploitation moderne qui peut être utilisée pour vaincre DEP ainsi que ASLR, et une façon intéressante d’en apprendre davantage sur l’assembleur et de vraiment commencer à approfondir les appels système, les registres et autres fondamentaux de bas niveau.

5: Vaincre les canaris de pile

Les canaris de pile sont une atténuation des exploits qui cherche à empêcher les exploits en ajoutant une petite vérification à la fin des fonctions pour les débordements de tampon. Ils viennent dans une variété de formes et de styles, tels que les canaris terminator et les canaris aléatoires. Apprendre quelques techniques pour les vaincre ou les contourner est assez essentiel.

Ressources:

Notes de Corelan à ce sujet

Note: les ressources pour cela semblent limitées – toutes les suggestions ou messages sur le sujet sont les bienvenus

6: Bases de l’exploitation des tas

Une exploitation plus moderne se concentre sur le tas plutôt que sur la pile, en partie en raison de l’amélioration des mesures d’atténuation pour les exploits basés sur la pile, en partie parce que les normes de codage se sont améliorées et qu’il y a moins de possibilités de fracas de pile simple.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.