Protections binaires — NX, PIE, Canary, RELRO

Défenses Concepts

Vue d'ensemble

checksec ./binary
# Arch:    amd64-64-little
# RELRO:   Partial RELRO
# Stack:   Canary found
# NX:      NX enabled
# PIE:     PIE enabled
# Symbols: No Symbols

Chaque protection et son bypass

NX (Non-Executable Stack)
  -> Stack non exécutable
  -> Bypass : ROP chains, ret2libc, ret2syscall

Stack Canary
  -> Valeur aléatoire entre buffer et RIP
  -> Bypass : leaker via format string, bruteforce (fork)

ASLR
  -> Adresses aléatoires à chaque exécution
  -> Bypass : leaker une adresse via une autre vuln

PIE (Position Independent Executable)
  -> Le binaire lui-même à adresse aléatoire
  -> Bypass : combiner avec un leak d adresse du binaire

RELRO (Relocation Read-Only)
  Partial : GOT writable (peut overwrite des fonctions)
  Full    : GOT read-only (plus difficile)