Ret2ret & Reo2pop
Last updated
Last updated
Impara e pratica l'Hacking su AWS:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica l'Hacking su GCP: HackTricks Training GCP Red Team Expert (GRTE)
Il principale obiettivo di questa tecnica è cercare di bypassare l'ASLR sfruttando un puntatore esistente nello stack.
Fondamentalmente, gli stack overflow sono di solito causati da stringhe, e le stringhe terminano con un byte nullo alla fine in memoria. Questo consente di cercare di ridurre il posto puntato da un puntatore esistente già presente nello stack. Quindi se lo stack contenesse 0xbfffffdd
, questo overflow potrebbe trasformarlo in 0xbfffff00
(nota l'ultimo byte azzerato).
Se quell'indirizzo punta al nostro shellcode nello stack, è possibile far sì che il flusso raggiunga quell'indirizzo aggiungendo indirizzi all'istruzione ret
fino a quando questo non viene raggiunto.
Pertanto l'attacco sarebbe così strutturato:
NOP sled
Shellcode
Sovrascrivere lo stack dall'EIP con indirizzi a ret
(RET sled)
0x00 aggiunto dalla stringa modificando un indirizzo dello stack facendolo puntare al NOP sled
Seguendo questo link puoi vedere un esempio di un binario vulnerabile e in questo l'exploit.
Nel caso in cui si possa trovare un puntatore perfetto nello stack che non si desidera modificare (in ret2ret
abbiamo cambiato l'ultimo byte più basso in 0x00
), è possibile eseguire lo stesso attacco ret2ret
, ma la lunghezza del RET sled deve essere accorciata di 1 (così il 0x00
finale sovrascrive i dati appena prima del puntatore perfetto), e l'ultimo indirizzo del RET sled deve puntare a pop <reg>; ret
.
In questo modo, i dati prima del puntatore perfetto verranno rimossi dallo stack (questi sono i dati influenzati dal 0x00
) e il ret
finale punterà all'indirizzo perfetto nello stack senza alcuna modifica.
Seguendo questo link puoi vedere un esempio di un binario vulnerabile e in questo l'exploit.
Impara e pratica l'Hacking su AWS:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica l'Hacking su GCP: HackTricks Training GCP Red Team Expert (GRTE)