
Exploit de preuve de concept pour CVE-2019-12735 démontrant l'exécution arbitraire de commandes via la fonctionnalité modeline de Vim/Neovim. Inclut l'injection de shellcode et la génération de payload reverse shell pour des tests de sécurité éducatifs.
Il est nécessaire d'activer la fonctionnalité modeline au préalable.
Pour les utilisateurs normaux, la fonctionnalité modeline est activée par défaut, tandis que pour root, elle est désactivée par défaut.
Utilisez echo &modeline pour vérifier l'état : 1 pour activé, 0 pour désactivé.
Si ce n'est pas le cas, vous pouvez ajouter set modeline dans ~/.vimrc (créez le fichier s'il n'existe pas).
Lors de l'écriture personnalisée, il faut tenir compte du fait que le caractère d'échappement x1b est un caractère non affichable.
Pour modifier le deuxième segment du code d'exploitation, la méthode simple consiste à télécharger le fichier source, à modifier la partie des commandes exécutées, ou à utiliser un éditeur binaire pour écrire ou modifier vous-même.
poc.txt:
vim poc.txt
shell.txt:
nc -lvp 9999
vim shell.txt
ensuite vous pouvez obtenir un shell
set nomodeline dans vimrc pour désactiver modeline