Dépassement de capacité de la pile : Étude des exploitations avancées de stack overflow, écriture de shellcodes polymorphiques et alphanumériques

| Gross David | Smortex |

Cet article permet de sensibiliser les programmeurs à la sécurité de leur application, et de démontrer que les protections existantes pouvant être mises en place sur le système afin d'empêcher un dépassement de capacité d'être exploité peuvent être bypassées. Parmi ces protections sont traitées la randomisation de l'adresse de base de la pile sous GNU/Linux sur les noyaux 2.6.x ainsi que la mise en place du NIDS (Network Intrusion Detection System) Snort afin de détecter l'injection d'un shellcode.

- Titre : Dépassement de capacité de la pile : Étude des exploitations avancées de stack overflow, écriture de shellcodes polymorphiques et alphanumériques

- Auteurs : Gross David, Smortex

- Parution : 22 avril 2007

- Mise à jour : 29 mars 2020

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2007 Gross David. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Sommaire

- II. Téléchargement

I - Sommaire

Chapitre 1 : Introduction

Chapitre 2 : Rappels des concepts de base

1. Organisation de la mémoire sous GNU/Linux

2. Le langage assembleur

3. Utilisation de logiciels de débogage

Chapitre 3 : Exploitation basique de stack overflow

1. Présentation d'un cas de stack overflow

2. Prise de contrôle du flux d'exécution

3. Programmation de shellcode basique et exploitation

4. Exemples de shellcode

Chapitre 4 : Techniques avancées de programmation de shellcode

1. Shellcode polymorphique

2. Shellcode alphanumérique

a) Instructions disponibles

b) L'algorithme d'encodage

c) Substitutions d'instructions

d) Structure globale du shellcode

e) Mise en application

f) Exploitation

3. Camouflage de NOP

Chapitre 5 : Technique avancée d'exploitation de stack overflow

1. ret into linux-gate.so.1

a) Présentation de la méthode

b) Exploitation

c) Protection possible

2. ret into .text

3. Exploitation en local

Chapitre 6 : Conclusion

Chapitre 7 : Remerciements

Chapitre 8 : Références

Annexes

II - Téléchargement

Le cours au format pdf (92 pages, 1008 Ko) en cas de problème : lien miroir