четверг, 16 февраля 2017 г.

Как обойти антивирус за 5 минут




Бумажная безопасность порядком надоела, поэтому я решил немного отвлечься на практику. Не так давно мне представился случай лично убедиться, с какой легкостью злоумышленник, обладающий самой минимальной квалификацией, способен обойти популярные "топовые" антивирусы. Сегодняшний пост посвящен короткой истории поединка скрипт-кидди с одним популярным антивирусом.

Но, сперва, disclaimer
1) Многое из написанного ниже, для экспертов, несомненно - боян. Но автор и не претендует на "срыв покровов". Статья призвана предостеречь тех пользователей, которые полагаются на антивирус как на панацею, при этом забывая о необходимости комплексного подхода к безопасности. 
2) Статья написана исключительно в образовательных целях. Не нужно использовать эту информацию для совершения противоправных действий.
3) Статья не пытается бросить тень на производителей антивирусов. Уверен, что они делают все возможное, чтобы совершенствовать свои продукты.


Фабула

Как-то раз нелегкая судьба безопасника (от которого часто требуют уметь все) занесла меня в пентесты.  Была поставлена задача проверить уязвимость организации к вирусной атаке.

В компании использовалось антивирусное ПО от одного из топ-вендоров. Антивирусы были развернуты и на серверах (включая почтовые и прокси-серверы) и на компьютерах пользователей. Централизованное управление и обновление тоже было.  
Неплохая защищенность и небольшой опыт в проведении пентестов не сулили затее особого успеха
Однако, практическая реализация показала другое: злоумышленник может организовать атаку и обойти средства антивирусной защиты даже при помощи стандартных общеизвестных средств, доступных практически любому специалисту. Каким образом - описано ниже.

Стандартные инструменты
Как уже говорилось, злоумышленнику не нужно обладать высокой квалификацией. Достаточно навыков скрипт-кидди - найти подходящий инструмент.
Причем искать долго не придется - все необходимое есть в Metasploit Framework



Хотя многие специалисты по ИБ наверняка о нем слышали, на всякий случай напомню: Metasploit представляет собой средство автоматизации пентестов от компании Rapid7 и содержащее большое количество готовых эксплойтов.
Помимо эксплойтов, Metasploit содержит набор готовых «полезных» нагрузок (payloads), проще говоря - вредоносного ПО.
А среди готовых «начинок» выделяется одна из самых популярных – Meterpreter. Meterpreter обладает широким функционалом: кейлоггер, запись фото и видео с веб-камеры, копирование куки и истории браузера, сбор учетных данных множества сервисов, включение RDP, заведение и удаление пользователей… Короче говоря, Meterpreter позволяет сделать с зараженной машиной практически все, что угодно. Meterpreter поддерживает различные варианты взаимодействие с сервером управления (включая TCP, HTTPS, соединение с шифрованием RC4). На роль инструмента для пентеста Meterpreter подходит прекрасно.
Таким образом, злоумышленнику не нужно ничего разрабатывать, достаточно "выгрузить" Meterpreter в подходящем формате (кстати, делается это одной командой).

Но для пользователей есть хорошая новость: Meterpreter обнаруживается практически всеми антивирусами. Если выгрузить его в exe-файл и «скормить» VirusTotal, то получим такой результат:


Как видим, антивирусы, в подавляющем большинстве, детектировали Meterpreter как вредоносное ПО. Это и не удивительно: ему уже много лет. 
Означает ли это победу антивируса над скрипт-кидди? Не совсем.

Антивирусы выходят из игры
После 5 минут поиска в Google находится сразу несколько готовых решений для обхода антивирусов. Познакомимся поближе с инструментом под названием  Shellter (сайт).

Shellter  используется для сокрытия вредоносного кода в исполняемых файлах Windows. Проще говоря, Shellter «вставляет» в нативное 32-разряднное приложение код вредоносной программы, который автоматически начинает выполняться при его запуске. Среди особенностей Shellter можно отметить минимальные изменения, вносимые в структуру исполняемого файла, использование «мусорного» кода и возможность кодирования «нагрузки». Все это затрудняет детектирование итогового файла антивирусами.
В автоматическом режиме работы Shellter требует минимального участия пользователя: Next, Next, Next и готово. Сначала выбирается PE-файл приложения, затем – нужный payload (причем Meterpreter в Shellter уже предусмотрительно встроен).
На выходе получается исполняемый файл, в котором скрыта «полезная» нагрузка в виде Meterpreter (или любого другого кода). 

Если создать зараженный файл при помощи Shellter и попытаться проверить его через VirusTotal, то увидим следующее:





Показатель детектирования просто катастрофически упал. Это означает, что большинство антивирусов, установленных на рабочих местах и серверах не определят данный файл как опасный! На все про все, включая установку Shellter, ушло от силы 5 минут
Таким образом, хотя сигнатура трояна известна уже много лет (Metasploit и Meterpreter входят в стандартную сборку Kali Linux), благодаря Shellter популярные антивирусы ничего не могут с ним поделать.

А как на практике?
Но тест на VirusTotal без испытаний "в поле" не показатель. Может быть при работе троян будет обнаружен по поведенческим признакам? Чтобы проверить это, протестируем файл на двух популярных антивирусах: Eset (5.0.21.26) и Kaspersky Internet Securiy (17.0.0.611).

Беглое тестирование показывает следующее: 

1) Копирование и запуск файла не детектируется. 
2) При запуске инфециорованного файла сессия до сервера управления (Metasploit) успешно открывается
3) При выполнении некоторых действий (например, при попытке "миграции" Meterpreter в другие процессы), процесс Meterpreter’а детектируется как угроза.
4) При попытке использования веб-камеры, KIS запрашивает разрешение пользователя. 
5) Большое количество функций Meterpreter’а все равно работает без обнаружения. В частности, прекрасно работает кейлоггер, скрипты сбора учетных данных, выгрузка информации из браузеров, скриншоты рабочего стола, копирование файлов. В принципе, этого достаточно для решения злоумышленником своих задач.

Таким образом, антивирусы конечно ограничивают функционал Meterpreter, но все равно оставляют широкий простор для злоумышленника.

Выводы и рекомендации
Тест еще раз показывает, что антивирус не является сам по себе панацеей. Средства обхода антивирусного ПО весьма популярны и находятся в свободном доступе. Разумеется, после загрузки части зараженных файлов на Virustotal, антивирусные базы будут пополняться, и возможности таких средств будут сокращаться. Но для защиты от таргетированных атак это не поможет.
Это не означает, что антивирусное ПО бесполезно. Просто без должной работы с персоналом его эффективность может быть сведена на нет.

История закончилась для пользователей легким "троллингом": на рабочем столе появилось приглашение на корпоративный тренинг по ИБ. На тренинге им было рекомендовано:

  • не открывать подозрительные и рекламные почтовые вложения;
  • не включать без особой надобности макросы в документах;
  • подключать к компьютеру только проверенные носители информации;
  • устанавливать программы только с официальных сайтов;
  • не посещать подозрительные сайты;
  • проверять, куда ведет та или иная ссылка;
  • регулярно обновлять ПО (включая офисные программы и браузеры).
Конечно эти меры сами по себе не помогут обнаружить и нейтрализовать любое вредоносное ПО, но по крайней мере снизят число возможных способов ззаражения им.   

На этом, пожалуй, все.  

Если эта статья будет полезной - напишите в комментариях. Возможно, стоит сместить акцент блога с нормативки на практическую ИБ.