Sto lavorando su un exploit che ha uno spazio buffer molto limitato su Windows XP. DEP è disabilitato.
Il binario è un server socket che ha un comando accetta, in uno di questi comandi c'è un overflow del buffer basato sullo stack che si verifica a causa di un errore nel controllo dei limiti combinato con uno strcpy. Egghunter non è possibile in quanto non sono in grado di memorizzare dati arbitrari in memoria. Ho un paio di pensieri:
- Riutilizzo del socket già aperto per reindirizzare lo stdin / stdout del programma nell'handle del socket.
- Avvio di un servizio vulnerabile per l'utilizzo tramite un payload secondario come ms08_067 utilizzando WinExec o msvcrt.system (). Msvcrt.system (cmd) è il payload più piccolo che sia stato in grado di scrivere ma non riesco a pensare a nulla di utile da chiamare dalla riga di comando quando il sistema invia semplicemente un comando all'interprete del prompt dei comandi.
Qualcuno ha qualche idea?