ret2usr — Retour vers l'espace utilisateur (kernel)
★★★★★
Principe
En exploitation noyau, ret2usr détourne le flux d'exécution du kernel vers du code situé en espace utilisateur (que l'attaquant contrôle entièrement), typiquement une fonction qui élève les privilèges via commit_creds(prepare_kernel_cred(0)).
Payload type
// Fonction en userland exécutée avec les privilèges kernel
void escalate() {
commit_creds(prepare_kernel_cred(0)); // uid=0
}
// Détourner une return address kernel vers escalate()
// puis revenir en userland (swapgs; iretq) et lancer /bin/sh Contremesures
SMEP empêche le kernel d'exécuter du code userland (ret2usr direct bloqué) et SMAP l'accès aux données userland. Le contournement moderne passe par ROP kernel pur ou la désactivation de SMEP via CR4 (voir SMEP Bypass).