19-летняя уязвимость в WinRAR (Path Traversal, unacev2.dll)

F

fallen6601

29953
WinRAR - легендарная программа для архивации файлов, выпущенная в далеком 1995 году. На данный момент является одной из самых популярных программ и насчитывает около полумиллирада пользователей. Трудно поверить, но все эти юзеры были подвержены к серьезной уязвимости в знаменитом архиваторе около 19 лет.

В феврале 2019-го года специалисты Check Point обнародовали уязвимость, благодаря которому можно распаковать вредоносный файл в произвольное место на жестком диске, игнорируя в обход фактические пути для распаковки WinRAR-архива. Уязвимость в архиваторе угрожала всем пользователям на протяжении 19 лет. В оригинальном видеоотчете для демонстрации уязвимости мы видим, что архив находиться на рабочем столе, пользователь пробует распаковать его туда же, но вместо этого файл попадает в директорию автозапуска и теперь при запуске системы программа запуститься автоматически.

29954

Как оказалось, проблема связана с библиотекой UNACEV2.DLL, которая входила в состав практически всех версий архиватора. Эта библиотека не обновлялась с 2006 года и отвечала за распаковку архивов формата ACE. На момент обнаружения бага у разработчиков WinRAR не было доступа к исходному коду сторонней библиотеки.

Проблему нашли при попытке автоматического тестирования архиватора WinACE - оригинальной программы для архивации в формат ACE. Исследователи обнаружили файл, сохраненный вообще не туда, куда должен был сохраниться файл. Далее немного модифицированный трюк применили на WinRAR.

29955

На выходе получили критическую уявимость ко всем версиям WinRAR за последние 19 лет. Разработчики архиватора исправили брешь с выпуском WinRAR 5.70, полностью отказавшись от использования устаревшей библиотеки для работы с файлами ACE. На официальном сайте теперь доступна для скачивания только последняя версия программы.

С момента публикации уязвимости было разработано множество эскплойтов для создания зловредного архива. Все они почти ничем не отличаются друг от друга. Давайте рассмотрим один из эксплойтов в действии. В первую очередь нам понадобиться естественно сам вредонос - вместо трояна, можно взять любой файл, например программу-калькулятор calc.exe. Я для примера эксплуатирую стиллер Azorult, который привязан к моему C2-серверу с веб-панелью. В случае успешного попадания трояна в папку Startup и последующего запуска после перезагрузки системы я получу на своем сервере все пароли от заражённого компьютера. И второе, что необходимо это Python версии 3.7 - он нам необходим для генерации evil-архива. В моем случае в Kali Linux необходимо прописать команду apt install python3.7.

29956

Скачиваем эксплойт с Гитхаба командой git clone https://github.com/WyAtu/CVE-2018-20250

29957

Далее открываем файл exp.py в любом текстовом редакторе. Все, что необходимо это изменить вот эти параметры:

- rar_filename отвечает за название предстоящего архива,
- evil_filename - тут нужно указать название вредоносного файла, в моем случае это троян Azorult, который я уже поместил в папку с эксплойтом.
- target_filename отвечает за путь куда будет распакован вредонос, после указания директорий необходимо еще и прописать название вредоносного файла
- параметр filename_list нужен для указания самих файлов, которые якобы хочет разархивировать жертва. Файлы должны быть в папке с эксплойтом.

29958

Сохраням эксплойт и выполняем его командой python3 exp.py. Лично в моем случае, появилась следующая ошибка.

29959

Дело в том, что в файле exp.py имеется команда py, которая отвечает за запуск связанного скрипта acefile. py не является командой для запуска скрипта в Linux, поэтому заменяем значение на python3.

29960

Снова пробуем запустить. Видим, что зловредный архив создался. Проверим работоспособность на Винде.

29961

В случае, если жертва распакует архив, то зловред попадет в Автозапуск, а другие файлы указанные в параметре filename_list в директорию с архивом. После перезарузки троян запуститься автоматически и похитит все сохраненные пароли. Данная техника с распаковкой вредоноса в папку Автозагрузки в первые дни сразу же были реализованы на реальных массовых атаках.

29962

Атака не сработает в двух случаях: 1-ое - это если предполагаемая жертва откроет архив и просто перенесет файлы куда ему необходимо, и 2-е - если просто напросто системным диском будет является не диск C, а например диск D.

Дыра исправлена версией 5.70. Для обновления нужно скачать инсталятор т.к. автоматическое обновление утилита не предоставляет. Как известно уязвимости были подвержены около полумиллиарда пользователей. Вы можете прямо сейчас проверить какая у вас версия - с большой долей вероятностью программа уязвима. Стоит обновиться до версии 5.70.

Видеоверсия:
Ссылки:
1. (отчет от Checkpoint)
2. Security Week 09: 19-летняя уязвимость в WinRAR (Kaspersky_Lab )
3. Ящик Пандоры: разбираем эксплуатацию уязвимости WinRAR на примере задания NeoQUEST-2019
 
Последнее редактирование модератором:
  • Нравится
Реакции: ranon и DefWolf
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!