
Le pwn, c'est quoi
exactement ?
PWN, ou Perfectly Owned : l'art de prendre le contrôle d'un programme exécutable. On pose la définition à notre sauce et on présente les deux grandes familles d'attaques que la série va décortiquer : Control Flow Attacks et Code Reuse Attacks.
own2pwn4 min de lecture
Un doute sur votre exposition ?
On audite votre surface d'attaque externe et on vous dit ce qui est exploitable.
Parler à un pentesterPrérequis
- Comprendre les fichiers ELF (voir Segmentation Mémoire)
- Maniement de GDB
Hello ! o/
Pour ouvrir cette série, on va devoir poser une définition de ce qu'est le pwn... à notre sauce ! Parce qu'on utilise ce mot un peu partout et n'importe comment, et nous on l'a appris sous deux angles complémentaires.
D'abord l'origine. PWN vient de Perfectly Owned : quand un attaquant a pris le contrôle complet d'une machine, on dit qu'elle est pwned. À partir de là, dans le contexte de l'exploitation binaire, on s'est mis à utiliser une définition plus opérationnelle :
PWN = contrôler le flow d'un programme exécutable.
Du coup on va s'amuser à comprendre les 2 manières de péter du binaire :
| Famille | Idée | Exemple typique |
|---|---|---|
| Control Flow Attack | Détourner le flow vers une zone non prévue par l'exécution normale. Autrement dit : prendre le contrôle de EIP/RIP. | Stack overflow → on écrase l'adresse de retour |
| Code Reuse Attack | Réutiliser des morceaux de code déjà chargés en mémoire pour faire ce qu'on veut, en s'appuyant sur un Control Flow Attack pour amorcer. | ROP, ret2libc |
Le PWN en une image
Voilà ce que ça donne, schématiquement, quand on détourne le flow d'un binaire ELF en mémoire :
Ce qu'on va voir dans la série
Veille sécurité
La suite, une fois par mois
Ce qui bouge vraiment sur la surface d'attaque externe, NIS2 et la sécurité applicative, écrit par le pentester qui signe ces articles. Un envoi par mois, désinscription en un clic.
Votre adresse ne sert qu'à cet envoi. Voir la politique de confidentialité.