Exploit
Un exploit est une méthode ou un mécanisme permettant de tirer parti d'une vulnérabilité.
Exemple conceptuel :
Software vulnerability
│
▼
Exploit technique
│
▼
Unexpected behavior
L'exploit représente donc la manière dont une faiblesse est utilisée.
Payload
Un payload correspond à l'action ou au contenu exécuté après l'exploitation.
Exemples conceptuels :
- exécuter une commande ;
- créer une connexion ;
- modifier une donnée ;
- récupérer une information.
Exemple conceptuel
1. Vulnerability
The system contains a weakness.
2. Exploit
A technique triggers the weakness.
3. Payload
The desired action is performed.
Représentation :
┌───────────────┐
│ Vulnerability │
└───────┬───────┘
▼
┌───────────────┐
│ Exploit │
└───────┬───────┘
▼
┌───────────────┐
│ Payload │
└───────────────┘
Important
Tous les exploits ne possèdent pas nécessairement un payload séparé.
Et un payload n'est pas automatiquement malveillant dans tous les contextes.
Ces termes décrivent avant tout des concepts techniques.
Exploit vs Payload
| Exploit | Payload |
|---|---|
| Utilise une faiblesse | Réalise une action |
| Exploitation | Effet obtenu |
| Comment atteindre le résultat | Que faire après |
Exemple simplifié
Vulnerability:
Weakness in a service
Exploit:
Technique that triggers the weakness
Payload:
Requested action after successful exploitation
Exploit Development
L'étude des exploits nécessite notamment de comprendre :
- architecture système ;
- mémoire ;
- registres ;
- appels système ;
- protections mémoire ;
- debugging ;
- reverse engineering.
Concepts associés :
Stack
Heap
ASLR
DEP / NX
Stack Canaries
ROP
Fuzzing
Points importants
- Une vulnérabilité est une faiblesse.
- Un exploit permet de tirer parti de cette faiblesse.
- Un payload correspond généralement à l'action exécutée ou au résultat recherché.
- Les trois concepts doivent être distingués.
Concepts associés
- Vulnerability
- Attack Vector
- Memory Security
- Reverse Engineering
- Binary Security