Истории из жизни вредоносов: знакомимся с Remnux

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Представим следующую ситуацию, у нас имеется файл, который скорее всего содержит вредоносный код. Варианты с отправкой этого файла сазу на virustotal.com мы пока рассматривать не будем, так как это слишком просто не спортивно.

Можно конечно, поднять виртуалку/контейнер с Windows/Linux и в нем с помощью специальных инструментов анализировать работу данного файла. Естественно, использовать свою рабочую машину для анализа вредоносов идея, мягко говоря, не очень хорошая. Рано или поздно (скорее рано) вы не уследите при анализе в отладчике, и вредонос выполнится полностью и захватит контроль над машиной. 

Поэтому, изоляция его работы внутри контейнера или виртуальной машины будет наилучшим решением. Можно, конечно, самостоятельно подготовить образ с нужным набором инструментов, но гораздо удобнее использовать уже готовый образ, содержащий основной набор инструментов, который, при необходимости уже можно дополнить своими средствами анализа.

Знакомьтесь, REMnux

Мы будем использовать REMnux в качестве нашего инструментария для анализа вредоносных программ. Данный образ доступен для загрузки на сайте REMnux.org. Он включает в себя сотни предварительно настроенных инструментов и поэтому очень популярен среди специалистов по анализу вредоносных программ.

Получить REMnux можно несколькими способами. Прежде всего можно загрузить готовую виртуальную машину в виде виртуального устройства (OVA). Удобно при использовании VirtualBox или VMware. В готовом образе создан пользователь remnux с паролем malware.

Установка REMnux

Также, можно установить с нуля в выделенной системе под управлением ОС Ubuntu. Для этого сначала загрузим установочный файл:

wget https://REMnux.org/remnux-cli

Проверьте, что хэш SHA256 загруженного файла соответствует ожидаемому значению. Сделать это можно с помощью следующей команды:

sha256sum remnux-cli

Настройте установщик REMnux, выполнив следующие команды:

mv remnux-cli remnux

chmod +x remnux

sudo mv remnux /usr/local/bin

Стоит отметить, что минимальная версия Ubuntu включает в себя очень мало компонентов. Поэтому установите GnuPG, чтобы установщик REMnux мог автоматически проверять подпись файлов конфигурации REMnux, которые он загрузит в процессе установки. Чтобы установить GnuPG, запустите:

sudo apt install -y gnupg

Теперь вы готовы к установке дистрибутива REMnux. Если вы планируете запустить REMnux локально, запустите установку, выполнив команду:

sudo remnux install

Как только установка REMnux завершится, перезагрузите вашу новую систему REMnux, набрав:

sudo reboot

Вариант из контейнера

Еще одним достаточно удобным вариантом использования REMnux является его запуск как контейнер Docker. Общий вид команды для запуска такого контейнера:

docker --rm -it -u remnux remnux/remnux-дистрибутив bash

Если у вас установлен Docker, вы можете запустить контейнер дистрибутива REMnux в интерактивном режиме, как описано ниже. Следующая команда автоматически загрузит образ дистрибутива (приблизительно 4 ГБ), если в вашей системе его еще нет.

Чтобы запустить версию REMnux, созданную поверх Ubuntu 20.04 (Focal):

docker run --rm -it -u remnux remnux/remnux-distro:focal bash

Чтобы сопоставить локальный каталог с каталогом контейнера /home/remnux/files, вы могли бы использовать команду, подобную этой, указав соответствующее имя каталога следующим образом:

docker run --rm -it -u remnux -v <local_directory>:/home/remnux/files remnux/remnux-distro bash

Для того, чтобы получить доступ к контейнеру дистрибутива REMnux с помощью SSH, вы можете вызвать его, сопоставив TCP-порт 22 вашей системы с внутренним TCP-портом 22 контейнера. Один из способов сделать это - использовать следующую команду, которая откроет прослушивание SSH и запустит контейнер в фоновом режиме.

Чтобы запустить версию REMnux, созданную поверх Ubuntu 20.04 (Focal):

docker run -d -p 22:22 remnux/remnux-distro:focal

Общие действия по анализу подозрительного файла

Полагаю, читатель уже развернул Remnux удобным для себя способом. И теперь самое время посмотреть этот инструмент на практике.

Какие основные действия мы должны выполнить при анализе подозрительного файла:

  1. Прежде всего необходимо изучить статические свойства данного файла для первоначальной оценки и формирования идей для дальнейшего исследования.

  2. Статически проанализируйте код для выявления его вредоносных возможностей.

  3. Изучите сетевые взаимодействия, чтобы начать понимать вредоносное поведение.

Как видно, после статического анализа нам все равно потребуется запустить подозрительный файл, для того, чтобы понять к каким ресурсам он будет обращаться.

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

Начинаем анализ

В качестве тестового примера мы будем исследовать артефакт Spyeye, взятый из виртуального зоопарка (https://github.com/ytisf/theZoo/tree/master/malware/). Несмотря на то, что авторы этого серпентария постарались защититься от случайного запуска, запаролив архивы, не лишним будет напомнить:

  1. Все действия, представленные далее приводятся исключительно с ознакомительной целью. Автор снимает с себя всякую ответственность за неправомерное использование представленных в статье материалов.

  2. Перед тем, как делать что-либо с артефактами, ознакомьтесь со статьей 273 УК РФ. 

Итак, загрузив в Remnux одну из версий артефакта я первым делом предлагаю провести статический анализ данного файла. В нашей специальной ОС для этого есть несколько инструментов. Традиционно мы не должны доверять результатам работы одного из них, поэтому посмотрим, что нам покажут несколько утилит.

О том, как устроены выполнимые файлы в ОС Windows на том же Хабре написана не одна статья, поэтому я не буду подробно останавливаться на структуре PE, MZ и прочих Dan/Rich заголовках и разделах. Желающие могут самостоятельно ознакомиться с данным интересным материалом.

Начнем наш анализ с использования утилиты peframe. Ее синтаксис до безобразия прост:

peframe имя_артефакта  

Данная утилита сообщает нам базовую информацию о данном файле: размер, хэш, адрес точки входа, разделы памяти. Из интересного, нам сообщают о некоторых фичах – антиотладке, упаковке кода и шифровании.

Далее нам рассказывается о возможных алгоритмах шифрования, упаковки и антиотладки.

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

Далее следует список используемых артефактом API функций ОС, dll библиотек, и в самом конце скромно притаилось упоминание о некоем выполнимом файле dropper.exe.

Так что, отчет получился довольно информативный.

Еще одна полезная утилита это readpe.

readpe имя_артефакта

Здесь в целом отчет получился аналогичный предыдущему, но, вызываемые функции разложены по библиотекам, что немного упрощает анализ. И кроме того, отдельно представлены функции вызываемые крайне подозрительным файлом dropper.exe.

И в завершении темы анализаторов упомяну pescan.

pescan -v имя_артефакта

Здесь отчет будет достаточно лаконичен даже с ключом verbose.

Однако и здесь нам сказали, что файл возможно упакован и указали секцию, которая сама себя модифицирует.

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

Стереть нельзя отправить

Одним из параметров, присутствующим в отчетах анализаторов является хэш. Например, peframe посчитал нам SHA256 хэш нашего артефакта. Что можно дальше делать с этой информацией? Например, можно воспользоваться уже упоминавшимся ресурсом Virustotal.com. Наверное многие слышали, что отправлять непосредственно файл на анализ это не очень хорошая идея. Так, если мы играем за плохих парней, то нам конечно интересно, какие антивири обнаружат наш свеженаписанный вредонос. А если мы играем за хороших парней, то нам может быть интересно, есть вредонос в подозрительном файле, который наш штатный антивирь считает чистым.

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

Во втором случае, если мы отправим подозрительный файл, например офисный документ на проверку, то содержимое этого файла станет известно “неопределенному кругу лиц”©Регуляторы. Дело в том, что Virustotal официально предлагает сторонним компаниям доступ за деньги к своей статистике по анализируемым файлам. И если в вашем загруженном файле будет какая-то конфиденциальная информация, то может получиться не очень хорошо. 

Что же делать, неужели Virustotal совсем бесполезен? Это не так, мы можем передать этому сайту хеш нашего артефакта и посмотреть, что он найдет.

Как видно, по хэшу SpyEye тоже прекрасно находится. Плохим парням это вряд ли поможет, так как запрос по хэшу тоже сохранится в статистике и впоследствии, файл с таким хэшем может вызвать пристальный интерес средств защиты.

Заключение

В этой статье мы рассмотрели установку и работу с некоторыми инструментами, входящими в состав REMnux. На самом деле возможности этого дистрибутива намного больше и его можно назвать аналогом Kali Linux только для реверсинга.

Пишите в комментах, насколько не/интересна тема REMnux, стоит ли дальше рассказывать про работу с данным дистрибутивом. 

Статья подготовлена в преддверии старта курса Информационная безопасность.Professional, На странице курса вы можете подробно ознакомиться с программой, а также зарегистрироваться на бесплатные вебинары:

  • Защита конечных точек

  • Роль ИБ в бизнесе

Источник: https://habr.com/ru/companies/otus/articles/771570/


Интересные статьи

Интересные статьи

Попытаемся спрогнозировать запросы на обслуживание оборудования, по истории запросов в Service Desk. Имеется однотипное оборудование компании, в разных регионах, например, станки, или сервера. Имеетс...
Дано: Есть игрушечная кольцевая железная дорога, состоящая из 13 одинаковых элементов. Вопрос: сколько еще таких элементов надо докупить, чтобы построить более длинную замкнутую, без пересечен...
Будь то накопившиеся военные долги или последствия послевоенных репараций, правительства часто сталкивались с финансовыми обязательствами, которые выплачивались в течение десятилетий ил...
Interactive rebase — один из самых универсальных инструментов Git'а. В этой статье от автора Git-клиента Tower рассказывается, как корректировать сообщения при коммитах и...
Всем привет, меня зовут Евгений Демиденко. Последние несколько лет я занимаюсь разработкой автоматизированной системы тестирования игр в Pixonic. Сегодня я хотел поделиться нашим опыт...