Программы-вымогатели постоянно развиваются, и Cactus не исключение. Когда я наткнулся на этот образец, я понял, что к нему стоит присмотреться. Он создан для обфускации, шифрования и обхода системы безопасности, но, как и любое вредоносное ПО, оставляет за собой следы. В этой серии я расскажу вам о процессе анализа программы-вымогателя Cactus, начав со статического анализа.
Зачем начинать со статического анализа? Это безопасный и важный первый шаг. Не запуская вредоносную программу, мы можем изучить её структуру, выявить потенциальные артефакты и собрать ценную информацию, которая заложит основу для более глубокого анализа. Будь то проверка формата файла, извлечение интересных строк или анализ метаданных, этот подход помогает нам составить чёткое представление о том, с чем мы имеем дело.
В этой статье мы:
Для продолжения вам понадобится безопасная лабораторная среда и несколько базовых инструментов. Если у вас ещё нет предпочитаемого набора, не волнуйтесь — он гибкий. Такие инструменты, как Detect It Easy (DIE) и PEStudio , отлично подойдут для начала. Если вы установили REMnux OS или FLARE-VM , половина работы уже сделана.
В следующем разделе мы сразу же приступим к открытию двоичного файла. Мы начнём постепенно разбираться на слои. Готовы? Приступим к работе.
Если вы хотите следовать моим инструкциям, прежде чем начать, вот хэш образца, который мы будем использовать:
SHA256 : 78c16de9fc07f1d0375a093903f86583a4e32037a7da8aa2f90ecb15c4862c17. Вы можете скачать его со следующего сайта: https://tria.ge/
Сначала я воспользуюсь Detect it Easy и Flare-VM, и вот здесь вы можете увидеть хеш:
Открыв двоичный файл вируса-вымогателя Cactus в нашем инструменте статического анализа, первое, что мы заметили, было следующее:
Похоже, что он упакован с помощью UPX (Ultimate Packer for Executables) версии 4.02. Инструмент также выявил дополнительные характеристики, указывающие на упаковку, включая высокую энтропию, коллизии секций и сжатые секции, помеченные как «UPX1» . Это распространённая тактика, используемая разработчиками вредоносных программ, чтобы скрыть истинную функциональность исполняемого файла и затруднить анализ.
При изучении функции карты памяти образец раскрывает структуру разделов. Двоичный файл включает два основных раздела: UPX1 , который обычно связан с упакованными данными, и .rsrc , который часто содержит ресурсы, такие как значки или метаданные. Кроме того, сегмент наложения в конце указывает на потенциально добавленные данные, возможно, файлы конфигурации или дополнительные полезные данные. Наличие корректного заголовка MZ подтверждает, что двоичный файл представляет собой исполняемый файл Windows. Эти наблюдения дополнительно подтверждают необходимость распаковки раздела, упакованного UPX, для раскрытия истинного содержимого и функциональности исполняемого файла:
При более внимательном рассмотрении энтропии образца становится ясно, что мы имеем дело с упакованным двоичным файлом. Раздел UPX1 выделяется значением энтропии около 7,94, что является классическим признаком сжатия или обфускации. Это идеально согласуется с ранним обнаружением упаковки UPX. Раздел .rsrc и оверлей, с другой стороны, демонстрируют более низкую энтропию, чего и следовало ожидать от несжатых данных и дополнительной добавленной информации. Это говорит мне об одном: прежде чем мы сможем разобраться в реальной функциональности этой вредоносной программы, нам нужно распаковать раздел UPX1 , чтобы увидеть, что на самом деле скрывается под ним.
После подтверждения упаковки UPX следующим шагом стала распаковка двоичного файла для доступа к его содержимому. С помощью инструмента UPX я сначала проверил образец, чтобы убедиться, что он действительно упакован (просто для уверенности). Как и ожидалось, инструмент определил файл как упакованный с помощью UPX 4.2.4. После этого я выполнил команду распаковки (upx -d) и успешно распаковал двоичный файл, снизив степень сжатия и создав распакованную версию с именем cactusunpack. Теперь, когда двоичный файл распакован, мы готовы к более глубокому анализу его базовой функциональности.
После распаковки двоичного файла я загрузил его в Detect It Easy (DIE) для проверки изменений и анализа новой структуры. Распакованный файл идентифицирован как исполняемый файл PE64 с размером файла 8,67 МБ и меткой времени, указывающей на то, что он был скомпилирован 24 марта 2023 года . Двоичный файл представляет собой 64-битное консольное приложение , предназначенное для Windows Server 2003 (AMD64) . Данные компоновщика указывают на использование GNU Binutils для компиляции. Эти данные дают нам первое реальное представление об архитектуре вредоносной программы и подтверждают, что мы успешно удалили слой упаковки UPX, что делает нас готовыми к более глубокому анализу.
Теперь, когда у нас есть импорт распакованного двоичного файла, мы получаем более чёткое представление о библиотеках, используемых вредоносной программой для своей работы. Среди импортированных DLL-файлов мы видим критически важные библиотеки Windows, такие как KERNEL32.DLL , ADVAPI32.DLL и USER32.DLL , которые предполагают выполнение операций на системном уровне и взаимодействие с API Windows.
Импортируемые сетевые компоненты, такие как WSOCK32.DLL и WS2_32.DLL, указывают на то, что эта вредоносная программа, вероятно, взаимодействует по сети, возможно, для отправки данных или получения команд. Кроме того, наличие SHELL32.DLL и RstrtMgr.DLL может указывать на манипуляции с файлами и потенциальные механизмы управления восстановлением или перезапуском. Эти импортируемые компоненты дают нам веские основания для понимания возможностей программы-вымогателя, давая нам направления для дальнейшего изучения её поведения.
Теперь давайте рассмотрим некоторые основные строки:
Если вы выполните поиск по запросу «шифр», вы обнаружите несколько интересных алгоритмов, задействованных в атаке. Например, мы можем увидеть строки типа chacha20_poly1305_tls_cipher и различные режимы шифрования DES ( des_cfb64_cipher, des_ofb_cipher и т. д.). Это говорит о том, что программа-вымогатель включает в себя криптографические функции, вероятно, для шифрования файлов жертвы или безопасной передачи данных. Наличие ChaCha20 (современного и эффективного шифра, часто используемого в защищенных протоколах) указывает на то, что вредоносная программа может использовать передовые схемы шифрования. Эти результаты крайне важны, поскольку они предоставляют прямые доказательства того, как работает программа-вымогатель, и могут также помочь в разработке потенциальных стратегий дешифрования или противодействия атакам.
Анализ строк двоичного файла позволил нам быстро выявить несколько закономерностей, которые дают представление о принципах работы вируса-вымогателя Cactus. Вирус-вымогатель активно использует каталог C:\ProgramData , который вредоносные программы часто используют для хранения временных или рабочих файлов из-за его доступности и малой видимости для пользователей. В этом каталоге упоминается файл ntuser.dat — вероятно, не настоящий системный файл, а обманное имя, выбранное для того, чтобы не привлекать внимания. Судя по контексту, этот файл, вероятно, используется для хранения ключей шифрования или других критически важных данных, необходимых для работы вредоносной программы.
Ещё одной интересной находкой стало наличие пакетного скрипта rn.bat , который, вероятно, отвечает за переименование файлов в процессе шифрования. Это соответствует типичному поведению программ-вымогателей, которые изменяют имена файлов, чтобы обозначить их статус шифрования, что ещё больше усложняет жертве ручное восстановление данных.
Аналогичным образом, файл update.log , также расположенный в папке C:\ProgramData , по-видимому, выполняет функцию журнала программы-вымогателя, потенциально регистрируя зашифрованные файлы, ошибки выполнения или временные метки. Такое поведение журнала свидетельствует о высокой степени сложности отслеживания действий программы-вымогателя.
Кроме того, в строках содержалось требование выкупа с сообщениями типа « Cactus получил доступ к вашим системам и зашифровал их» , а также инструкции связаться со злоумышленниками по электронной почте ( cactus@mexicomail.com ) или через чат Tox ( https://tox.chat/ ). Эти сообщения подтверждают стратегию программы-вымогателя, основанную на краже и шифровании данных, в сочетании с анонимными каналами связи для согласования условий оплаты без обнаружения.
Наконец, стоит отметить упоминания браузера Tor. Это говорит о том, что программа-вымогатель использует Tor для подключения к командным серверам или для анонимной оплаты. Объединяя эти элементы — манипуляцию файлами, криптографию, ведение журналов и анонимную коммуникацию — Cactus демонстрирует продуманный и многоуровневый подход к развертыванию программ-вымогателей.
Кажется, это идеальный момент, чтобы остановить наше продвижение. В следующей части я обнажу свой боевой нож (кодовое имя Гидра ) и вгрызусь в этот вирус-вымогатель, обнажив его внутренности и добыв новые данные. Мы тщательно изучим его внутренние механизмы, прежде чем приступить к динамическому анализу.
Зачем начинать со статического анализа? Это безопасный и важный первый шаг. Не запуская вредоносную программу, мы можем изучить её структуру, выявить потенциальные артефакты и собрать ценную информацию, которая заложит основу для более глубокого анализа. Будь то проверка формата файла, извлечение интересных строк или анализ метаданных, этот подход помогает нам составить чёткое представление о том, с чем мы имеем дело.
В этой статье мы:
- Внимательно изучите двоичную структуру Cactus, чтобы понять ее устройство.
- Извлеките ключевые строки, которые могут раскрыть команды, URL-адреса или другие индикаторы компрометации (IOC), а также другие интересные детали.
Для продолжения вам понадобится безопасная лабораторная среда и несколько базовых инструментов. Если у вас ещё нет предпочитаемого набора, не волнуйтесь — он гибкий. Такие инструменты, как Detect It Easy (DIE) и PEStudio , отлично подойдут для начала. Если вы установили REMnux OS или FLARE-VM , половина работы уже сделана.
В следующем разделе мы сразу же приступим к открытию двоичного файла. Мы начнём постепенно разбираться на слои. Готовы? Приступим к работе.
Если вы хотите следовать моим инструкциям, прежде чем начать, вот хэш образца, который мы будем использовать:
SHA256 : 78c16de9fc07f1d0375a093903f86583a4e32037a7da8aa2f90ecb15c4862c17. Вы можете скачать его со следующего сайта: https://tria.ge/
Сначала я воспользуюсь Detect it Easy и Flare-VM, и вот здесь вы можете увидеть хеш:
Открыв двоичный файл вируса-вымогателя Cactus в нашем инструменте статического анализа, первое, что мы заметили, было следующее:
Похоже, что он упакован с помощью UPX (Ultimate Packer for Executables) версии 4.02. Инструмент также выявил дополнительные характеристики, указывающие на упаковку, включая высокую энтропию, коллизии секций и сжатые секции, помеченные как «UPX1» . Это распространённая тактика, используемая разработчиками вредоносных программ, чтобы скрыть истинную функциональность исполняемого файла и затруднить анализ.
При изучении функции карты памяти образец раскрывает структуру разделов. Двоичный файл включает два основных раздела: UPX1 , который обычно связан с упакованными данными, и .rsrc , который часто содержит ресурсы, такие как значки или метаданные. Кроме того, сегмент наложения в конце указывает на потенциально добавленные данные, возможно, файлы конфигурации или дополнительные полезные данные. Наличие корректного заголовка MZ подтверждает, что двоичный файл представляет собой исполняемый файл Windows. Эти наблюдения дополнительно подтверждают необходимость распаковки раздела, упакованного UPX, для раскрытия истинного содержимого и функциональности исполняемого файла:
При более внимательном рассмотрении энтропии образца становится ясно, что мы имеем дело с упакованным двоичным файлом. Раздел UPX1 выделяется значением энтропии около 7,94, что является классическим признаком сжатия или обфускации. Это идеально согласуется с ранним обнаружением упаковки UPX. Раздел .rsrc и оверлей, с другой стороны, демонстрируют более низкую энтропию, чего и следовало ожидать от несжатых данных и дополнительной добавленной информации. Это говорит мне об одном: прежде чем мы сможем разобраться в реальной функциональности этой вредоносной программы, нам нужно распаковать раздел UPX1 , чтобы увидеть, что на самом деле скрывается под ним.
После подтверждения упаковки UPX следующим шагом стала распаковка двоичного файла для доступа к его содержимому. С помощью инструмента UPX я сначала проверил образец, чтобы убедиться, что он действительно упакован (просто для уверенности). Как и ожидалось, инструмент определил файл как упакованный с помощью UPX 4.2.4. После этого я выполнил команду распаковки (upx -d) и успешно распаковал двоичный файл, снизив степень сжатия и создав распакованную версию с именем cactusunpack. Теперь, когда двоичный файл распакован, мы готовы к более глубокому анализу его базовой функциональности.
После распаковки двоичного файла я загрузил его в Detect It Easy (DIE) для проверки изменений и анализа новой структуры. Распакованный файл идентифицирован как исполняемый файл PE64 с размером файла 8,67 МБ и меткой времени, указывающей на то, что он был скомпилирован 24 марта 2023 года . Двоичный файл представляет собой 64-битное консольное приложение , предназначенное для Windows Server 2003 (AMD64) . Данные компоновщика указывают на использование GNU Binutils для компиляции. Эти данные дают нам первое реальное представление об архитектуре вредоносной программы и подтверждают, что мы успешно удалили слой упаковки UPX, что делает нас готовыми к более глубокому анализу.
Теперь, когда у нас есть импорт распакованного двоичного файла, мы получаем более чёткое представление о библиотеках, используемых вредоносной программой для своей работы. Среди импортированных DLL-файлов мы видим критически важные библиотеки Windows, такие как KERNEL32.DLL , ADVAPI32.DLL и USER32.DLL , которые предполагают выполнение операций на системном уровне и взаимодействие с API Windows.
Импортируемые сетевые компоненты, такие как WSOCK32.DLL и WS2_32.DLL, указывают на то, что эта вредоносная программа, вероятно, взаимодействует по сети, возможно, для отправки данных или получения команд. Кроме того, наличие SHELL32.DLL и RstrtMgr.DLL может указывать на манипуляции с файлами и потенциальные механизмы управления восстановлением или перезапуском. Эти импортируемые компоненты дают нам веские основания для понимания возможностей программы-вымогателя, давая нам направления для дальнейшего изучения её поведения.
Теперь давайте рассмотрим некоторые основные строки:
Если вы выполните поиск по запросу «шифр», вы обнаружите несколько интересных алгоритмов, задействованных в атаке. Например, мы можем увидеть строки типа chacha20_poly1305_tls_cipher и различные режимы шифрования DES ( des_cfb64_cipher, des_ofb_cipher и т. д.). Это говорит о том, что программа-вымогатель включает в себя криптографические функции, вероятно, для шифрования файлов жертвы или безопасной передачи данных. Наличие ChaCha20 (современного и эффективного шифра, часто используемого в защищенных протоколах) указывает на то, что вредоносная программа может использовать передовые схемы шифрования. Эти результаты крайне важны, поскольку они предоставляют прямые доказательства того, как работает программа-вымогатель, и могут также помочь в разработке потенциальных стратегий дешифрования или противодействия атакам.
Анализ строк двоичного файла позволил нам быстро выявить несколько закономерностей, которые дают представление о принципах работы вируса-вымогателя Cactus. Вирус-вымогатель активно использует каталог C:\ProgramData , который вредоносные программы часто используют для хранения временных или рабочих файлов из-за его доступности и малой видимости для пользователей. В этом каталоге упоминается файл ntuser.dat — вероятно, не настоящий системный файл, а обманное имя, выбранное для того, чтобы не привлекать внимания. Судя по контексту, этот файл, вероятно, используется для хранения ключей шифрования или других критически важных данных, необходимых для работы вредоносной программы.
Ещё одной интересной находкой стало наличие пакетного скрипта rn.bat , который, вероятно, отвечает за переименование файлов в процессе шифрования. Это соответствует типичному поведению программ-вымогателей, которые изменяют имена файлов, чтобы обозначить их статус шифрования, что ещё больше усложняет жертве ручное восстановление данных.
Аналогичным образом, файл update.log , также расположенный в папке C:\ProgramData , по-видимому, выполняет функцию журнала программы-вымогателя, потенциально регистрируя зашифрованные файлы, ошибки выполнения или временные метки. Такое поведение журнала свидетельствует о высокой степени сложности отслеживания действий программы-вымогателя.
Кроме того, в строках содержалось требование выкупа с сообщениями типа « Cactus получил доступ к вашим системам и зашифровал их» , а также инструкции связаться со злоумышленниками по электронной почте ( cactus@mexicomail.com ) или через чат Tox ( https://tox.chat/ ). Эти сообщения подтверждают стратегию программы-вымогателя, основанную на краже и шифровании данных, в сочетании с анонимными каналами связи для согласования условий оплаты без обнаружения.
Наконец, стоит отметить упоминания браузера Tor. Это говорит о том, что программа-вымогатель использует Tor для подключения к командным серверам или для анонимной оплаты. Объединяя эти элементы — манипуляцию файлами, криптографию, ведение журналов и анонимную коммуникацию — Cactus демонстрирует продуманный и многоуровневый подход к развертыванию программ-вымогателей.
Кажется, это идеальный момент, чтобы остановить наше продвижение. В следующей части я обнажу свой боевой нож (кодовое имя Гидра ) и вгрызусь в этот вирус-вымогатель, обнажив его внутренности и добыв новые данные. Мы тщательно изучим его внутренние механизмы, прежде чем приступить к динамическому анализу.