Ret2ret & Reo2pop

Reading time: 3 minutes

tip

Impara e pratica l'Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica l'Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Supporta HackTricks

Ret2ret

L'obiettivo principale di questa tecnica è cercare di bypassare ASLR abusando di un puntatore esistente nello stack.

Fondamentalmente, gli overflow dello stack sono solitamente causati da stringhe, e le stringhe terminano con un byte nullo alla fine in memoria. Questo consente di cercare di ridurre il luogo puntato da un puntatore già esistente nello stack. Quindi, se lo stack conteneva 0xbfffffdd, questo overflow potrebbe trasformarlo in 0xbfffff00 (nota l'ultimo byte azzerato).

Se quell'indirizzo punta al nostro shellcode nello stack, è possibile far raggiungere quel indirizzo al flusso aggiungendo indirizzi all'istruzione ret finché non viene raggiunto.

Pertanto, l'attacco sarebbe così:

  • NOP sled
  • Shellcode
  • Sovrascrivere lo stack dall'EIP con indirizzi a ret (RET sled)
  • 0x00 aggiunto dalla stringa che modifica un indirizzo dallo 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 tu possa trovare un puntatore perfetto nello stack che non vuoi modificare (in ret2ret cambiamo l'ultimo byte più basso in 0x00), puoi eseguire lo stesso attacco ret2ret, ma la lunghezza del RET sled deve essere accorciata di 1 (quindi il finale 0x00 sovrascrive i dati appena prima del puntatore perfetto), e il 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 finale ret 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.

References

tip

Impara e pratica l'Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica l'Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Supporta HackTricks