Ret2ret & Reo2pop

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)

Sostieni HackTricks

Ret2ret

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.

Ret2pop

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.

Riferimenti

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)

Sostieni HackTricks

Last updated