
Proof-of-concept exploit per CVE-2019-12735 che dimostra l'esecuzione arbitraria di comandi tramite la funzionalità modeline di Vim/Neovim. Include iniezione di shellcode e generazione di payload di reverse shell per test di sicurezza educativi.
È necessario abilitare la funzione modeline.
Per gli utenti normali, la funzione modeline è abilitata per impostazione predefinita, mentre per l'utente root è disabilitata.
Usa echo &modeline per controllare lo stato: 1 significa abilitato, 0 significa disabilitato.
Se non è abilitato, puoi aggiungere set modeline in ~/.vimrc (crea il file se non esiste).
Quando si scrive manualmente, considerare che il carattere di escape \x1b non è visualizzato.
Per modificare la seconda parte del codice exploit, un metodo semplice è scaricare il file sorgente e modificare la parte del comando di esecuzione, oppure utilizzare un editor binario per scrivere o modificare direttamente.
poc.txt:
vim poc.txt
shell.txt:
nc -lvp 9999
vim shell.txt
quindi puoi ottenere una shell
set nomodeline in vimrc per disabilitare modeline.