Эта статья предназначена для ИТ-специалистов, специалистов по информационной безопасности и всех, кто интересуется тематикой. Прочитав её, вы узнаете, как атакующий может использовать уязвимости популярного ПО для компрометации инфраструктуры, и получите представление о базовых принципах тестирования на проникновение.
Дисклеймер: статья носит ознакомительный характер, и любые попытки злоупотребления данной информацией незаконны и могут повлечь за собой уголовное преследование в соответствии со статьями 272 и 273 УК РФ.
WinRAR — один из самых известных архиваторов, созданный Евгением Лазаревичем Рошалом. Этот программист из Челябинска в начале 90-х годов разработал утилиту, которая стала настоящей легендой. Название RAR происходит от его имени: Roshal ARchiver.
Первая версия RAR увидела свет в 1993 году, и уже тогда программа удивляла эффективными алгоритмами сжатия. Популярность принесли версии 1.30 и выше, которые обеспечивали высокую степень компрессии.
Сам Евгений Рошал ведёт непубличную жизнь, и информации о нём немного. Но, несмотря на годы, его продукт остаётся на слуху. Популярность архиватора вызывает большой интерес со стороны злоумышленников, ведь с высокой вероятностью их жертва будет использовать на своём компьютере WinRAR.
Я бы хотел рассказать, что шестого ноября 2024 года в версии 7.10 beta появилась тёмная тема, но у нас тут есть вещи куда интереснее. Как и в любом программном обеспечении, различные исследователи регулярно находят уязвимости. Давайте пробежимся по самым интересным и актуальным, по моему скромному мнению.
№1. CVE-2018-20250: обход каталога
Уязвимы версии до 5.6.0 включительно (релиз 26.06.2018).
Читаем описание на Securitylab CVE-2021-35052.
«Проблема кроется в устаревшей сторонней библиотеке UNACEV2.DLL, используемой архиватором для распаковки файлов в формате ACE. Поскольку WinRAR распознает формат по содержимому файла, а не его расширению, атакующим потребуется всего лишь изменить расширение
.ace
на.rar
, чтобы замаскировать вредоносный архив.Данная уязвимость предоставляет возможность извлечь файлы из архива в нужную злоумышленникам папку, а не назначенную пользователем. Таким образом они могут поместить вредоносный код в папку автозагрузки Windows, который будет автоматически выполняться при каждой загрузке системы»
Комментарии излишни — злоумышленнику требуется замаскировать свой вредоносный скрипт от средств антивирусной защиты и дождаться его запуска при старте системы. Как это сделать?
Для этого есть обфускация — процесс изменения исходного кода программы так, чтобы затруднить его чтение и анализ, но при этом сохранить его функциональность.
Основная цель обфускации — скрыть логику программы и затруднить реверс-инжиниринг, анализ и обнаружение вредоносного кода. Примеры обфускации:
-
Base64 кодирование,
-
использование алиасов,
-
конкатенация строк,
-
кодирование и сжатие.
И изучив средства обфускации PowerShell, например, такие:
-
PowerSploit (11.8k звёзд на GitHub),
-
Invoke-Obfuscation (3.7k звёзд на GitHub),
-
Chimera (1.4k звёзд на GitHub),
…вы убедитесь, что это возможно (и не так нереалистично, как кажется).
Пока запомним термин «обфускация» (хотя, я уверен, вы и так его знаете) — я к нему ещё вернусь — и идём дальше.
№2. CVE-2021-35052: уведомление о просрочке лицензии
Уязвимы версии до 5.7.0 (релиз 28.02.2019).
Знакомое многим окно с предложением приобретения лицензии таит в себе опасность.
Для описания уязвимости приведу выдержку из статьи Positive Technologies.
«В уязвимой версии WinRAR можно перехватывать веб-запросы, отправленные компонентом WinRAR web notifier, для реализации MITM-атак (man-in-the-middle, „человек посередине“), создания бэкдора, а также для RCE-атак — выполнения произвольных файлов с удалённого сервера SMB»
Как следует из разбора в статье, «с технической точки зрения уязвимость вызвана тем, что компонент WinRAR web notifier использует неправильно сконфигурированный модуль webbrowser. Подобные ошибки могут быть выявлены в ходе работ по тестированию на проникновение, а также с помощью анализаторов защищенности приложений»
Сам процесс нахождения уязвимости и механику её работы Игорь Сак-Саковский описал в статье «WinRAR’s vulnerable trialware: when free software isn’t free».
Интересный факт: компания Positive Technologies попала под санкции и организация MITRE отдала идентификатор 2021-35052 под совершенно другую уязвимость, связанную с Kapersky Password Manager. Зато в БДУ ФСТЭК уязвимость зафиксирована.
№3. CVE-2023-40477: переполнение буфера
Уязвимы версии до 6.2.3 (релиз 02.08.2023)
Рассмотрим источники в виде Zerodayinitiative и Xakep:
«Уязвимость, обнаруженная исследователем goodbyeselene из Zero Day Initiative, получила идентификатор CVE-2023-40477 и позволяла выполнять команды на целевом компьютере при открытии архива. «Недостаток связан с обработкой томов восстановления (recovery volumes). Проблема возникает из-за отсутствия надлежащей проверки предоставляемых пользователем данных, что может привести к обращению к памяти за пределами выделенного буфера»
Уязвимость позволяет злоумышленнику выполнить произвольный код, который будет спрятан в архиве. Такой код называют полезной нагрузкой или payload, которую условно можно классифицировать следующим образом:
-
Reverse Shell. Уязвимая система инициирует соединение с сервером атакующего, позволяя последнему выполнять команды удаленно. Для такой атаки в полезной нагрузке должен фиксироваться адрес сервера атакующего.
-
Bind Shell. Уязвимая система открывает порт, к которому подключается атакующий для доступа к командной оболочке. Для такой атаки компьютер жертвы должен иметь статичный адрес, потому большей популярностью пользуется Reverse Shell.
-
Stealers. Эти полезные нагрузки крадут конфиденциальные данные, такие как пароли, cookie-файлы, банковскую информацию и другие учётные данные. Часто используются в сочетании с эксплойтами браузеров и почтовых клиентов.
-
Keyloggers. Программы для перехвата нажатий клавиш, которые могут собирать пароли, вводимые пользователем, и передавать их атакующему.
-
RAT (Remote Administration Tool). Предоставляет атакующему возможность полного удалённого управления заражённой системой. Может включать доступ к файлам, запуск программ, контроль за веб-камерой и микрофоном.
-
Cryptominers. Вредоносное ПО, которое использует ресурсы компьютера для майнинга криптовалюты. Оно может заметно снижать производительность системы и увеличивать потребление электроэнергии.
-
Ransomware. Шифрует файлы на системе жертвы и требует выкуп за расшифровку. После шифрования отображается сообщение с требованиями оплатить выкуп в криптовалюте в обмен на ключ для восстановления данных.
-
DDoS-загрузчики. Эти пейлоуды устанавливают боты или компоненты ботнетов для распределённых атак отказа в обслуживании (DDoS). Вредоносная программа заражает устройства и использует их для генерации сетевого трафика в атаках на серверы.
-
Wipers. Удаление или порча данных на целевой системе без возможности восстановления. Примеры включают вирусы типа Shamoon, использованные в атаках на крупные компании.
-
Эксфильтрационные пейлоуды. Эти полезные нагрузки предназначены для эксфильтрации (вывоза) данных с целевой системы на сервер атакующего. Они могут собирать файлы, снимки экрана или сетевые данные.
№4. CVE-2023-38821: выполнение скрипта при открытии содержимого архива
Уязвимы версии до 6.2.3 (релиз 02.08.2023).
«Киберпреступники используют уязвимость, которая позволяет им подделывать расширения файлов, а это значит, они могут скрыть запуск вредоносного кода внутри архива, маскируясь под файлы формата .jpg, .txt или любой другой формат. Они создают ZIP-архив, содержащий как вредоносные, так и невредоносные файлы
Когда жертва открывает такой архив, она видит, например, файл изображения и папку с тем же именем, что и файл изображения. Если жертва нажимает на файл-ловушку, который может маскироваться под изображение, выполняется скрипт, отвечающий за следующий этап атаки. В ходе расследования мы заметили, что ZIP-архив имеет измененную файловую структуру. В архиве два файла: картинка и скрипт. Вместо открытия изображения запускается скрипт. Его основная цель — инициировать следующий этап атаки. Это достигается путем запуска свернутого окна. Затем он ищет два конкретных файла: Screenshot_05-04-2023.jpg и Images.ico. Файл JPG представляет собой изображение, которое жертва открыла изначально. Images.ico — это CAB-архив SFX, предназначенный для извлечения и запуска новых файлов»
Проведение атаки с использованием CVE-2023-38821
Встанем на место начинающего злоумышленника: Mitre Corporation в 2013 году описала для нас пошаговую стратегию проведения кибератаки.
Шагов много, мы пропустим добрую часть и представим, что уже знаем всё о своей жертве.
№1. Выбор средства доставки полезной нагрузки.
Мы прочли статью о CVE-2023-38821, скачали PoC, убедились, что схема рабочая, и эмпирическим путём выясняем, что наша полезная нагрузка должна быть в файле с расширением .bat
или .cmd
, а .vbs
не сработает, например. Нам нравится идея доставки вредоносного кода посредством фишингового письма с вложенным rar-архивом. Теперь надо понять, что он будет делать.
№2. Разработка полезной нагрузки.
Разработка — это громко сказано. Начинающий злоумышленник пойдёт искать на GitHub фреймворки для пентеста и увидит что-нибудь вроде PayloadsAllTheThings, awesome-pentest или nishang. Там лично мне бросился в своё время в глаза однострочный скрипт на PowerShell, но для красоты картинки давайте рассмотрим его в раскрытом виде:
№3. Проверка работоспособности.
Не будем ссылаться на методику PDCA (Plan-Do-Check-Act), хоть разработка вредоносного программного обеспечения по сути своей схожа с классической разработкой ПО. Злоумышленник столкнётся со следующей проблемой: антивирус удалит скрипт с машины пользователя и оставит подобное сообщение в журнале защиты:
№4. Обход антивируса.
В Windows есть компонент AMSI — Antimalware Scan Interface, позволяющий установленному антивирусу сканировать текущие активности и журнал PowerShell. Для обхода заходим в поисковик и набираем «AMSI bypass». Matt Graeber, директор компании Red Canary, в 2016 году описал, как отключить модуль AMSI:
Разумеется, с тех пор все знают об этом методе, и средства защиты будут автоматически удалять любой файл на компьютере пользователя, который содержит эти строчки.
Нам на помощь придёт обфускация. Закодировать зловещую команду в Base64 звучит слишком просто, и антивирусы смогут распознать такую хитрость. Однако, если сделать это несколько раз, то зловредный скрипт без проблем будет запущен.
Уже неплохо. Но нам надо продвинуться дальше и замаскировать весь вредоносный скрипт.
Давайте сделаем наш reverse shell максимально нечитаемым, например, используя обфускатор Chimera. Запустив его в максимальном режиме, мы получаем скрипт на 100+ страниц текста такого вида:
№5. Как принять входящее соединение от жертвы.
В интернете достаточно информации. Помогут злоумышленнику те же найденные на GitHub фреймворки для Red Team. Простейшим решением будет применение утилиты netcat. Тем более что на компьютере злоумышленника она, скорее всего, уже предустановлена. Да, это один из простейших шагов в этом плане: просто написать в терминале: nc -lvp 4444
— и ждать входящего соединения.
№6. Пример эксплуатации.
Из этических соображений я не буду показывать, что на самом деле написал, потому что, если набрать в поисковой системе название уязвимости, которую мы обсуждаем, вы сможете убедиться, что по сей день множество компаний страдает от злоумышленников, активно эксплуатирующих CVE-2023-38821. В том числе и очень-очень крупных, и в нашей стране.
Мне нравится контролировать процесс и понимать, где моя схема работает, а где — нет. Потому в архив я помещаю минимальную полезную нагрузку, которая должна сходить на мой веб-сервер, загрузить и исполнить большой обфусцированный вредоносный код.
Здесь, конечно, тоже есть ряд нюансов: на компьютере жертвы может быть запрещено использование командлета Invoke-Expression или Invoke-WebRequest. Скачать на компьютер жертвы PowerShell-скрипт и запустить его нам могут помешать средства защиты, которые сочтут расширение .ps1
подозрительным и так далее.
Если вам захочется проверить данную информацию и не хочется тратить своё время на обфускацию вредоносных скриптов, то просто отключите свой антивирус и анализ в режиме реального времени в Microsoft Defender (он каждый раз после перезапуска системы будет включаться).
Жертва открывает документ в архиве, на экране быстро мелькает консоль, открывается документ. Внимательно изучив желанный документ, жертва его закрывает и уже не видит никакой консоли. Нет поводов для беспокойств, и не надо звонить айтишнику с просьбой всё починить.
На верхнем терминале мы видим, что поступил запрос на загрузку нашей полезной нагрузки. После успешной загрузки и выполнения скрипта жертвой мы видим в нижнем терминале, что соединение установлено и можно отправлять команды.
Что это значит? Повышение привилегий, расширение своего присутствия, закрепление в вашей инфраструктуре — далее возможны любые сценарии, которые ограничены опытом злоумышленника.
Решение проблемы
Чему могут научить нас эти примеры?
Не ждите исчерпывающего решения для вашей ИТ-инфраструктуры в интернете, ведь только вам известно, с чем вы имеете дело. Со своей стороны, я подсвечу основные вопросы, которым следует уделить внимание:
-
Обновление ПО. Звучит просто, но по факту это большая работа по инвентаризации и отслеживанию текущих версий установленного ПО на серверном оборудовании и клиентских машинах. Обновление должно быть осознанным: отталкиваясь от текущей версии, надо понимать, какие уязвимости уже известны всему Интернету.
-
Принцип минимальных привилегий. Все слышали, но не так просто его соблюдать — это ведь большая нагрузка на команду ИТ: каждый раз устанавливать пользователю новый софт или принимать входящие звонки и выслушивать про окно обновления, что нажать и куда ввести пароль администратора. Если в своё время программное обеспечение не было обновлено, то злоумышленник сможет с лёгкостью повысить привилегии.
-
Реактивные средства защиты. Внедрить софт, способный по различным шаблонам определить файл с вредоносным кодом.
-
Мониторинг. Это про фиксацию аномального поведения пользователя. Если средства защиты настроены на автоматическое реагирование и в них прописаны конкретные действия, то можно и остановить развитие атаки.
-
Сегментация сети. Разделение сети на меньшие сегменты по функциональности и критичности устройств и клиентов внутри. Это помешает злоумышленнику пробраться в более важные сегменты сети.
-
Резервное копирование. В случае успешной атаки злоумышленник может зашифровать всю инфраструктуру, включая файловые хранилища с резервными копиями. Стоит позаботиться о хранении информации на носителях, не подключённых к сети.
-
Оценка текущего положения дел. Справедливо, что не все мы способны себя оценить, нам может не хватать опыта, знаний, времени — чего угодно. Стоит присмотреться к компаниям, которые предоставляют услуги тестирования на проникновение. Найдя хорошую команду, можно получить не перечень открытых портов на сто листов по результатам сканирования, а действительно интересную и рабочую пошаговую цепочку атаки на вашу инфраструктуру.
Хабр, буду рад всем, кто прочёл и высказал своё мнение, хочет продолжения статьи с обзором реакций различных средств защиты, вендорам, готовым предоставить свои решения на проверку.
ссылка на оригинал статьи https://habr.com/ru/articles/861298/
Добавить комментарий