Full ASLR e ROP

2

Come si connettono esattamente i pezzi di exploit quando bypassano ASLR e DEP usando ROP?

Sembra che potrebbero esserci diversi modi. Per esempio. un payload completo basato su ROP o un payload ROP che modifica una posizione di memoria per essere eseguibile e scrivibile, che quindi trasferisce al resto del payload.

Non capisco come sia impostato il pivot dello stack, poiché ci possono essere stati di stack diversi. Come viene fatto all'interno del carico utile?

Dopo che il pivot dello stack ha avuto esito positivo, se il processo non ha moduli non ASLR, in che modo il payload crea dinamicamente la catena ROP?

Mi manca la connessione tra

payload->stack-pivot->information-leak->rop-chain

Potrei mescolare qui alcune tecniche. La perdita di informazioni è necessaria per creare dinamicamente la catena ROP o recuperarla prima, gli offset del ROP nel carico utile sono aggiustati e quindi viene attivata la vulnerabilità?

Se questo è il caso, questo dovrebbe essere un programma in esecuzione ad es. C che genera e apre un socket per il processo vulnerabile, attiva la perdita di informazioni, reindirizza l'output, regola gli offset e quindi invia il payload? Funzionerebbe quando il programma di attacco sta generando quello vulnerabile, ma come funzionerebbe contro un processo non secondario?

    
posta jarryd 18.04.2018 - 23:12
fonte

0 risposte

Leggi altre domande sui tag