
Proof-of-concept-Exploit für CVE-2019-12735, der die beliebige Befehlsausführung über die Vim/Neovim-Modeline-Funktion demonstriert. Enthält Shellcode-Injektion und Reverse-Shell-Payload-Generierung für pädagogische Sicherheitstests.
Voraussetzung: Die Modeline-Funktion muss aktiviert sein.
Bei normalen Benutzern ist die Modeline-Funktion standardmäßig aktiviert, bei Root-Benutzern hingegen standardmäßig deaktiviert.
Überprüfen Sie den Status mit echo &modeline. 1 bedeutet aktiviert, 0 bedeutet deaktiviert.
Falls nicht aktiviert, können Sie set modeline in Ihre ~/.vimrc einfügen (erstellen Sie die Datei, falls sie nicht existiert).
Beim manuellen Einfügen müssen Sie beachten, dass das Escape-Zeichen x1b ein nicht sichtbares Zeichen ist.
Um den zweiten Exploit-Code zu ändern, laden Sie die Quelldatei herunter und ändern Sie den Teil mit dem auszuführenden Befehl. Alternativ können Sie einen Binär-Editor verwenden, um den Code selbst zu schreiben oder zu ändern.
poc.txt:
vim poc.txt
shell.txt:
nc -lvp 9999
vim shell.txt
dann erhalten Sie eine Shell
set nomeline in die vimrc ein, um die Modeline zu deaktivieren.