Недавно в Group-IB обратилась европейская компания-производитель электромонтажного оборудования — ее сотрудник получил по почте подозрительное письмо с вредоносным вложением. Ilya Pomerantsev, специалист по анализу вредоносного кода CERT Group-IB, провел детальный анализ этого файла, обнаружил там шпионскую программу AgentTesla и рассказал, чего ждать от подобного ВПО и чем оно опасно.
Этим постом мы открываем серию статей о том, как проводить анализ подобных потенциально опасных файлов, а самых любопытных ждем 5 декабря на бесплатный интерактивный вебинар по теме «Анализ вредоносного ПО: разбор реальных кейсов». Все подробности — под катом.
Механизм распространения
Нам известно, что вредоносное ПО попало на машину жертвы через фишинговые письма. Получатель письма был, вероятно, поставлен в скрытую копию.
Анализ заголовков показывает, что отправитель письма был подделан. В действительности письмо ушло с vps56[.]oneworldhosting[.]com.
В аттаче письма находится архив WinRar qoute_jpeg56a.r15 с вредоносным исполняемым файлом QOUTE_JPEG56A.exe នៅខាងក្នុង។
ប្រព័ន្ធអេកូមេរោគ
Теперь посмотрим, как выглядит экосистема исследуемого вредоносного ПО. На схеме ниже изображена его структура и направления взаимодействия компонентов.
Теперь рассмотрим каждый из компонентов ВПО подробнее.
Загрузчик
Исходный файл QOUTE_JPEG56A.exe представляет собой откомпилированный AutoIt v3 скрипт.
Для обфускации исходного скрипта использовался обфускатор с аналогичными PELock AutoIT-Obfuscator характеристиками.
Деобфускация производится в три этапа:
Снятие обфускации For-If
Первым делом необходимо восстановить поток управления скрипта. Запутывание потока управления (Control Flow Flattening) — один из наиболее распространенных способов защиты бинарного кода приложений от анализа. Запутывающие преобразования резко увеличивают трудоемкость выделения и распознавания алгоритмов и структур данных.
Восстановление строк
Для шифрования строк используются две функции:
gdorizabegkvfca — выполняет Base64-подобное декодирование
xgacyukcyzxz — простой побайтовый XOR первой строки с длиной второй
Снятие обфускации BinaryToString и ប្រតិបត្តិ
Основная нагрузка хранится в разделенном виде в директории ពុម្ពអក្សរ секции ресурсов файла.
Для дешифровки извлеченных данных используется WinAPI-функция CryptDecrypt, а в качестве ключа применяется сессионный ключ, сгенерированный на основе значения fZgFiZlJDxvuWatFRgRXZqmNCIyQgMYc.
Дешифрованный исполняемый файл поступает на вход функции រត់PE, которая осуществляет ProcessInject в RegAsm.exe при помощи встроенного កូដសែល (ត្រូវបានគេស្គាល់ផងដែរថាជា RunPE ShellCode). Авторство принадлежит пользователю испанского форума indetectables[.]net под ником Wardow.
Стоит также отметить, что в одной из веток этого форума обсуждался обфускатор для ស្វ័យប្រវត្តិ с аналогичными выявленным в процессе анализа сэмпла свойствами.
ខ្លួនគាត់ផ្ទាល់ កូដសែល довольно прост и привлекает к себе внимание лишь позаимствованной у хакерской группы AnunakCarbanak. функцией хеширования API-вызовов.
Нам также известны случаи использования Frenchy Shellcode различных версий.
Помимо описанного функционала мы также выявили неактивные функции:
Блокировка ручного завершения процесса в менеджере задач
Перезапуск дочернего процесса в случае его завершения
ឆ្លងកាត់ UAC
Сохранение полезной нагрузки в файл
Демонстрация модальных окон
Ожидание смены позиции курсора мыши
AntiVM и AntiSandbox
ការបំផ្លាញខ្លួនឯង
Выкачивание полезной нагрузки из сети
Нам известно, что такой функционал характерен для протектора CypherIT, которым, судя по всему, и является исследуемый загрузчик.
Основной модуль ВПО
Далее кратко опишем основной модуль ВПО, а более подробно рассмотрим его во второй статье. В данном случае он представляет собой приложение на ណេត.
В ходе анализа мы выявили, что использовался обфускатор ConfuserEX.
IELibrary.dll
Библиотека хранится в виде ресурса основного модуля и является известным плагином для ភ្នាក់ងារ Tesla, который предоставляет функционал для извлечения различной информации из браузеров Internet Explorer и Edge.
ភ្នាក់ងារ Tesla គឺជាកម្មវិធីចារកម្មម៉ូឌុលដែលបានចែកចាយដោយប្រើគំរូសេវាមេរោគដែលស្ថិតក្រោមការបង្ហាញពីផលិតផលដែលត្រូវបានគេលួចចូលកូដស្របច្បាប់។ ភ្នាក់ងារ Tesla មានសមត្ថភាពទាញយក និងបញ្ជូនព័ត៌មានសម្ងាត់របស់អ្នកប្រើប្រាស់ពីកម្មវិធីរុករកតាមអ៊ីនធឺណិត កម្មវិធីអ៊ីមែល និងម៉ាស៊ីនភ្ញៀវ FTP ទៅកាន់ម៉ាស៊ីនមេ ទៅកាន់អ្នកវាយប្រហារ កត់ត្រាទិន្នន័យក្ដារតម្បៀតខ្ទាស់ និងចាប់យកអេក្រង់ឧបករណ៍។ នៅពេលនៃការវិភាគ គេហទំព័រផ្លូវការរបស់អ្នកអភិវឌ្ឍន៍មិនអាចប្រើបានទេ។
Точкой входа служит функция GetSavedPasswords класса InternetExplorer.
В целом, исполнение кода линейно и не содержит средств защиты от анализа. Внимания заслуживает лишь нереализованная функция GetSavedCookies. Видимо, функционал плагина предполагалось расширить, но это так и не было сделано.
Закрепление загрузчика в системе
Изучим, каким образом загрузчик закрепляется в системе. Исследуемый экземпляр не осуществляет закрепления, однако в аналогичных событиях оно происходит по следующей схеме:
Содержимое файла загрузчика дополняется нулевым символом и сохраняется в папку %Temp%<Произвольное имя папки><Имя файла>
В реестре создается ключ на автозапуск для файла скрипта HKCUSoftwareMicrosoftWindowsCurrentVersionRun<Имя скрипта>
Итак, по результатам первой части анализа нам удалось установить названия семейств всех компонентов изучаемого ВПО, разобрать схему заражения, а также получить объекты для написания сигнатур. Мы продолжим разбор этого объекта в следующей статье, где более детально рассмотрим основной модуль ភ្នាក់ងារ Tesla. Не пропустите!
Кстати, 5 декабря приглашаем всех читателей на бесплатный интерактивный вебинар по теме «Анализ вредоносного ПО: разбор реальных кейсов», где автор этой статьи, специалист CERT-GIB, в онлайн-режиме покажет первый этап анализа ВПО — полуавтоматическую распаковку сэмплов на примере трех реальных мини-кейсов из практики, а вы сможете принять участие в анализе. Вебинар подойдет специалистам, которые уже имели опыт анализа вредоносных файлов. Регистрация строго с корпоративной почты: ចុះឈ្មោះ. Ждем вас!