hackweb
appunti di hacking e tecnologia
IT EN
menù principale
menù utente
non sei loggato

SROP: falsificare un sigreturn

11 settembre 2025 · 1 min di lettura · #binary-exploitation #srop #rop

Quando un signal handler termina, il kernel chiama sigreturn, che ripristina l'intero contesto CPU da una struttura (sigcontext) sullo stack. Quella struttura, se la controlli, definisce ogni registro.

L'idea

Sigreturn-Oriented Programming: costruisci un falso sigcontext sullo stack con i registri che vuoi (incluso rip), poi invochi sigreturn (syscall 15). Il kernel carica i tuoi valori. Basta un gadget syscall; ret e sapere dove sta /bin/sh.

frame.rax = 59  # execve
frame.rdi = "/bin/sh"
frame.rip = syscall_gadget

Perché è potente

Con pochissimi gadget (spesso solo syscall) imposti tutti i registri: utile su binari minimali dove mancano i gadget classici. pwntools ha SigreturnFrame().

Difesa

Seccomp per limitare le syscall (bloccare execve), CET/shadow stack, e le solite ASLR/RELRO. Ridurre i gadget syscall esposti aiuta ma non elimina il vettore.


« torna alla home

ultimi post
 
il tuo indirizzo IP:
216.73.216.108
visitatore #0
MOTD:
Ogni astrazione perde da qualche parte.
Qui guardiamo dove.
argomenti