Утилита Shellter: Теория, первый запуск и авто-режим + результаты тестов антивирусов

Утилита Shellter: Теория, первый запуск и авто-режим + результаты тестов антивирусов

В цикле статей рассматривается работа с утилитой Shellter, служащей для упаковки исполняемого кода в выбранный исполняемый файл. Функциональность исходного файла при необходимости может быть сохранена. Такой подход позволяет запустить на выполнение произвольный код в случае наличия антивирусной защиты.

Начнем с теории

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

Разделение на сетевые и host-based антивирусы интуитивно понятно, но напомним вкратце теорию о каждом из них.

Сетевой антивирус

Сетевой антивирус подробно не проанализирует шифрованный трафик, но пометит его как потенциально небезопасный и информирует сетевого администратора о подозрительной активности. Кроме того, некоторые программы генерируют чёткий паттерн сетевого поведения (открытые порты, процент входящего и исходящего трафика, адреса управляющих машин из чёрного списка), что помогает сетевым антивирусам делать предположения о злонамеренной активности. Сетевой антивирус устанавливается в недоступном пользователям сегменте сети и работает чаще всего с копией пользовательского трафика. Атака на этот тип антивирусов крайне затруднена и маловероятна, но возможна (например, в случае если в антивирусе используется парсер XML-команд, можно попробовать реализовать “Billion laughs attack”(1)). Если интересно, напишите об этом в комментариях, ведь по теме можно написать отдельную статью.

Хостовый антивирус

Локально устанавливаемый антивирус видит не только сетевую активность, но и локальное поведение приложения (пытается ли оно установить защиту от перезаписи или получить доступ к системным данным, выгрузить себя из памяти). С одной стороны, это упрощает анализ, но, с другой стороны, такой антивирус может являться объектом атаки непосредственно на хосте.

Сигнатурные и бихевиористские (поведенческие) алгоритмы

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

Естественно, современные антивирусы в той или иной мере сочетают оба подхода — анализируются и паттерны, и поведение. Для примера рассмотрим описание Windows Defender на сайте производителя (2). Антивирус сочетает анализ поведения, запуск в песочнице, анализ кода на знакомые последовательности инструкций, анализ сетевой активности... Выстроенную защиту обойти достаточно сложно.

Практическая реализация обхода антивируса

Для осуществления обхода нам понадобятся:

  1. Зловред для внедрения. Начнем с использования реверс-шелла, поставляемого с shellter и нагрузки, сгенерированной с помощью msfvenom. Можно использовать и другие варианты, но остановимся на том, что под рукой.
  2. Машина для запуска shellter. Утилита предназначена для работы под Windows, однако запускается и из Wine в Kali Linux. Чем больше ресурсов вы выделите для shellter'a, тем лучше. Эта статья предполагает использование Kali Linux и Wine.
  3. Безобидный файл, в который мы будем внедрять зловред. Например, инсталлятор dropbox (часто используется и инсталлятор WinRAR, так что эти программы не стоит применять в реальном тестировании). Стоит проверить этот файл антивирусной программой до тестирования, чтобы быть уверенным в отсутствии ложноположительного срабатывания.
  4. Машина с антивирусом, на которой у вас есть разрешение на проведение теста. Подойдёт виртуальная машина с установленным антивирусом. Это не обязательный компонент: альтернативой служит онлайн-сервис проверки Virustotal.

Также предполагаем, что либо используемый в шелле порт открыт для соединений в файерволе, либо пользователь разрешит “установщику dropbox” такое соединение вручную. Если shellter не установлен (используем бесплатную версию 7.2, не Shellter Pro), поставьте утилиту командами (третья поставит wine): 

apt-get update
apt-get install shellter
apt-get install wine

запущенными с правами root’a.

Shellter в режиме Auto

Разберемся, как работает shellter в режиме “Auto”. Интерфейс программы вызывает острый приступ ностальгии по временам чёрно-зелёных мониторов

Shellter в режиме Auto

Работа автоматизирована до полной потери интереса к процессу. Указываем файл, в который будем вставлять зловредный код (полный путь). Shellter проверяет, подходит ли файл для внедрения.

Основное условие: файл не должен быть упакован (сжат). Наш файл-инсталлятор подходит.

shellter трассирует ассемблерные инструкции

Далее в течение одной минуты (в Wine, без него - полминуты) shellter трассирует ассемблерные инструкции, пытаясь найти потенциальные точки внедрения. Программа сохраняет исходный файл во временной директории. Однако если имя файла уже занято, бросает в консоль сообщение об ошибке и продолжает работу.

Важно! Чем большую процессорную мощность вы выделите shellter’у, тем быстрее он будет дизассемблировать и, соответственно, больше вероятность, что найдет подходящее место для внедрения. Кроме того, нужно учитывать, что антивирусная программа выполняет аналогичные действия: прослеживает инструкции, анализируя, к каким результатам приводит их вызов. Логично, что чем быстрее мы будем исследовать файл, тем больше вероятность, что shellter сможет выбрать место для внедрения, которое не будет легко обнаружено антивирусной программой.


Настройка сохранения функциональности программы

Указываем, нужно ли сохранять функциональность программы. Это снижает шансы на поиск точки внедрения, но значительно снижает риск обнаружения (запуск в песочнице покажет “нормальную” активность программы). Выберем сохранение функционала исходной программы (Y – Yes). Кроме того, эта опция служит для встраивания нескольких “нагрузок” в один файл, если это нужно.

сохранение функциональности программы

Выбор внедряемой загрузки

Затем shellter предлагает указать, какую нагрузку мы внедряем. В базовой поставке присутствуют несколько вариантов, один из которых такой, как требуется. Понятно, что этот вариант работы используется далеко не всегда, так как разработчики антивирусов также в курсе того, какие нагрузки предлагает shellter. Обратите внимание: сначала выбираем, что нам нужна нагрузка из списка (L-listed), а уже затем её номер в списке. Здесь многие часто ошибаются.

Выбор внедряемой загрузки

Готово! Файл модифицирован и находится там, где мы его изначально поместили. Если мы сравним hash’и нового и исходного файла, то увидим, что они различаются. К сожалению, shellter не подбирает балластную нагрузку, чтобы дуплицировать md5-hash, да это и не всегда возможно. Поэтому желательно выбирать файл, который антивирус не сможет проверить на соответствие знакомой чек-сумме (то есть не системный файл windows, например). 

Проверка обхода антивирусов

Чтобы проверить, насколько наш файл хорошо обойдет антивирусную защиту, загрузим его на сайт онлайн-проверки virustotal (3).

Проверка обхода антивирусов

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

В следующей статье рассмотрим “ручной” вариант работы shellter, внесем изменения для улучшения результатов и сравним проверкой, получилось ли улучшить действие shellter.

Список источников

  1. https://en.wikipedia.org/wiki/Billion_laughs_attack
  2. https://docs.microsoft.com/en-us/windows/security/threat-protection/microsoft-defender- antivirus/utilize-microsoft-cloud-protection-microsoft-defender-antivirus
  3. https://www.virustotal.com/gui/

Внимание! Данный материал предоставлен в ознакомительных целях. Ни автор, ни участники портала codeby.net не несут ответственности за любой вред, причинённый применением информации из данного материала.