Durante lo sviluppo di exploit, il processo si basa sempre sull'indirizzo di memoria della macchina della vittima.
Come sviluppatore di exploit, dovrai configurare un ambiente di macchine attacker \ victim e provarci. I principali lead per lo sviluppatore di exploit nel suo percorso verso l'acquisizione di una shell dall'app vulnerabile sono l'indirizzo di memoria (principalmente le posizioni dei buffer e delle DLL) che ottiene collegando l'app a un debugger (solitamente indicato dai registri della CPU come EIP, ESP, ecc.)
Questo è utile se l'obiettivo finale è quello di fornire una prova di codice concettuale per dimostrare che questa applicazione è vulnerabile. Tuttavia, per quanto ne so, questi indirizzi non sono permanenti e possono cambiare da macchina a macchina. Se stai facendo il Black Penetration Test per un'azienda, non sarai in grado di collegare un debugger alla loro applicazione per ottenere il giusto indirizzo a cui saltare. E lo stesso vale per gli exploit pubblici di exploit-db perché la maggior parte degli exploit in questo caso richiede un po 'di correzione per quanto riguarda gli indirizzi e gli offset.
Quindi la mia domanda è: in che modo un penetration tester può trarre vantaggio dalla scrittura di tali exploit (o dal scaricamento di uno da exploit-db) come tester di penetrazione e non come sviluppatore di exploit?