Здравствуйте, сегодня вы узнаете, как создать архив эксплуатируя уязвимость Path Traversal архиватора WinRAR до версии 5.61 включительно. Данная уязвимость получила идентификаторы CVE-2018-20250, CVE-2018-20251, CVE-2018-20252 и CVE-2018-20253.
Кому интересны детали, могут почитать эту статью:
Уязвимость позволяет принудительно поместить файл по указанному пути. Для успешной атаки злоумышленнику потребуется просто убедить жертву распаковать вредоносный архив с помощью WinRAR.
Для работы нам понадобится python3. Качаем архив (прикреплён к статье), распаковываем.
Далее нас интересует winrar_exp.py
Мы можем изменять значения rar_filename, evil_filename, target_filename, filename_list
rar_filename - имя результатирующего rar архива
evil_filename - имя файла (полезная нагрузка), который мы будем помещать в нужную нам папку благодаря уязвимости
target_filename - путь, куда будет помещён наш evil_file (полезная нагрузка)
filename_list - список файлов, которые будут помещены в архив обычным способом
Замечание: target_filename в примере есть относительным путём до папки автозагрузки. Есть две папку автозагрузки, одна глобальная для всех пользователей и автозагрузка для конкретного пользователя. Если мы будем пытаться записать файл в глобальную, UAC начнёт спрашивать разрешения на это действие, поэтому нам нужна папка для текущего пользователя. Так как скорее всего мы не знаем имя пользователя, можно надеяться что жертва распакует архив на рабочий стол, или в папку загрузки. Указанный выше путь справедлив относительно них. Если же вы знаете имя пользователя, можно использовать абсолютный путь:
После того, как вы отредактировали скрипт под себя, запускаем его
Скриншоты, демонстрирующие работу:
1. Работа скрипта:
2. Сам архив:
3. Результат распаковки:
Всем спасибо за внимание, удачи.
Кому интересны детали, могут почитать эту статью:
Ссылка скрыта от гостей
Уязвимость позволяет принудительно поместить файл по указанному пути. Для успешной атаки злоумышленнику потребуется просто убедить жертву распаковать вредоносный архив с помощью WinRAR.
Для работы нам понадобится python3. Качаем архив (прикреплён к статье), распаковываем.
Далее нас интересует winrar_exp.py
Мы можем изменять значения rar_filename, evil_filename, target_filename, filename_list
rar_filename - имя результатирующего rar архива
evil_filename - имя файла (полезная нагрузка), который мы будем помещать в нужную нам папку благодаря уязвимости
target_filename - путь, куда будет помещён наш evil_file (полезная нагрузка)
filename_list - список файлов, которые будут помещены в архив обычным способом
Замечание: target_filename в примере есть относительным путём до папки автозагрузки. Есть две папку автозагрузки, одна глобальная для всех пользователей и автозагрузка для конкретного пользователя. Если мы будем пытаться записать файл в глобальную, UAC начнёт спрашивать разрешения на это действие, поэтому нам нужна папка для текущего пользователя. Так как скорее всего мы не знаем имя пользователя, можно надеяться что жертва распакует архив на рабочий стол, или в папку загрузки. Указанный выше путь справедлив относительно них. Если же вы знаете имя пользователя, можно использовать абсолютный путь:
Код:
C:\C:C:\Users\<user name>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
Код:
python3 winrar_exp.py
1. Работа скрипта:
2. Сам архив:
3. Результат распаковки:
Всем спасибо за внимание, удачи.