
Proof-of-concept эксплойт для CVE-2019-12735, демонстрирующий произвольное выполнение команд через функцию modeline в Vim/Neovim. Включает инъекцию шеллкода и генерацию полезной нагрузки reverse shell для образовательного тестирования безопасности.
Сначала необходимо включить функцию modeline.
Для обычных пользователей modeline включён по умолчанию, а для root — отключён.
Используйте echo &modeline для проверки статуса: 1 — включено, 0 — выключено.
Если он выключен, добавьте set modeline в ~/.vimrc (если файла нет — просто создайте его).
При самостоятельной записи учитывайте, что управляющий символ x1b является неотображаемым символом.
Чтобы изменить вторую часть кода эксплойта, проще всего скачать исходный файл и изменить фрагмент с выполняемой командой; также можно записать или изменить его самостоятельно с помощью бинарного редактора.
poc.txt:
vim poc.txt
shell.txt:
nc -lvp 9999
vim shell.txt
затем вы получите shell