Skip to content
shellcodes

Glossary

Shellcode

Un shellcode est un petit fragment de code machine indépendant de la position, utilisé comme payload d'un exploit — historiquement pour ouvrir un shell, d'où le nom.

Un shellcode est un petit fragment de code machine indépendant de la position, utilisé comme payload d'un exploit. Quand une vulnérabilité te donne le contrôle de l'exécution, c'est le shellcode qui s'exécute réellement. Le nom vient de son objectif d'origine : ouvrir un shell de commande.

Un exemple minimal sous Linux x86 qui appelle execve("/bin/sh") tient en 25 octets :

\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80

Un shellcode doit généralement éviter certains octets (souvent 0x00), s'exécuter quel que soit l'endroit où il atterrit en mémoire, et rester compact. Les payloads modernes font bien plus qu'ouvrir un shell — connexions reverse TCP, exécution de commandes, loaders à étages — mais le terme est resté.

Lire le guide complet : Qu'est-ce qu'un shellcode ?