- Сообщения
- 25,912
- Решения
- 10
- Реакции
- 13,780
Что такое вредоносное ПО XWorm?
XWorm — это вредоносное ПО, нацеленное на операционные системы Windows. Он известен своей скрытностью и настойчивостью, а также широким спектром вредоносных действий, от удаленного управления рабочим столом до программ-вымогателей и кражи информации.К сожалению, злоумышленники широко используют эту угрозу — нередко можно увидеть ее в десятке наиболее часто используемых вредоносных программ по версии ANY.RUN .
Динамический анализ песочницы XWorm
В ходе поиска новых угроз мы обнаружили интересный образец , загруженный нашими пользователями в Публичные материалы. Скачал с файлообменника «Mediafire» в RAR-архиве с паролем:
После запуска угроза была идентифицирована сетевыми правилами Suricata как XWorm:

Мы решили проверить образец на VT, чтобы убедиться, что это действительно XWorm, но на момент написания статьи нам не удалось его там найти:

Первичный анализ по индикаторам, установленным на процессе 2784, выявил, что ПО добавляет в автозагрузку свой ярлык ( MITRE T1547.001 ) и использует планировщик задач ( MITRE T1053.005 ):

Использование планировщика необходимо для перезапуска программного обеспечения с повышенными привилегиями, на что указывает параметр «/RL HIGHEST».

Согласно данным файловой операции, программное обеспечение устанавливается в каталог Public ( MITRE T1074.001 ):

Интересно, что программа пытается подключиться к удаленному серверу, но ответа не получает ( MITRE T1571 ):

Мы решили перезапустить образец и проверить наличие дополнительных действий. К сожалению, он вылетел практически сразу после запуска:

Мы заинтересовались выяснением причины «сбоя» и обнаружили, что образец, запущенный пользователем, и образец, перезапущенный нами, демонстрируют разные модели поведения. В частности, перезапущенный образец запрашивает службу для определения внешнего IP-адреса ( MITRE T1590.005 ) перед сбоем. Обычно помимо IP-адреса такие сервисы предоставляют возможность определить, работает ли программное обеспечение на виртуальном хосте:

Именно это и делает XWorm — он пытается проверить, запущен ли он на физической машине пользователя или нет.
Чтобы решить эту проблему, в ANY.RUN есть полезная функция под названием Residential Proxy , которая позволяет скрыть ваше фактическое местоположение и убедить программное обеспечение в том, что оно работает на компьютере реального пользователя. Вы можете выбрать любое местоположение, если оно нацелено на вредоносное ПО, требующее IP-адреса из определенных стран:

Перезапуск с включенной опцией Residential Proxy прошел успешно, и XWorm продемонстрировал свою активность.
Дополнительно мы активировали опцию прокси-сервера MITM, чтобы узнать, какие данные передаются в Telegram ( MITRE T1102 ):

Очевидно, что программное обеспечение передает свою версию (XWorm V3.1), имя пользователя машины, версию операционной системы и, вероятно, хэш новой жертвы ( MITRE T1082 ).
Статический анализ X-червей
Первый шаг — поместить нашего субъекта в DIE — утилиту для первоначального анализа.
Как мы видим, мы имеем дело с .NET-вариантом, поэтому сразу открыли его в dnSpy.

Нас сразу встречает неутешительная картина — обфускации подверглись все участники программы ( MITRE T1027 ). Компания DIE не смогла распознать пакер даже при проверке «эвристического сканирования».
Нашей первой мыслью было попробовать использовать de4dot для упрощения дальнейшего анализа.


Как видим, мало что изменилось, поэтому надо продолжать анализировать то, что имеем.
Реверс-инжиниринг: дополнительные методы защиты от уклонения и усиление устойчивости
Чтобы замедлить анализ и скрыться от систем обнаружения, в образце используются следующие технологии:1. Обнаружение виртуализации с помощью WMI-запроса «Select * from Win32_ComputerSystem» и проверка на работу в средах VmWare или VirtualBox ( MITRE T1047 )

2. Обнаружение отладчика с помощью функции API CheckRemoteDebuggerPresent.

3. Проверка загруженной динамической библиотеки SbieDll.dll, характерной для Sandboxie, которая представляет собой изолирующую программу на основе песочницы.

4. Запрос на проверку того, размещена ли текущая машина или находится в дата-центре (это окончательно проясняет, почему образец изначально «разбился»)

Образец также закрепляется за счет использования реестра и планировщика задач:

Реверс-инжиниринг: извлечение конфигурации Xworm
После краткого рассмотрения содержимого методов был найден конструктор, поразительно похожий на блок с настройками.Изучив перекрестные ссылки, мы приходим к методу, который выглядит следующим образом:
Как мы видим, некоторые поля проходят этап переназначения, после обработки методом «Vc1fSJ4D04O6qGeP2fzA5lFCv8a7buXvJb4sHwuhuifI09pX». Давайте посмотрим на это поближе.
Сначала хэш MD5 вычисляется на основе значения поля «hArf0quX6jL4F88ywQTiLn52eBzsJ6HreaOqb0WGSa89u» из предполагаемого раздела настроек.
Затем полученное значение дважды копируется во временный массив (возможно, разработчик вредоносной программы допустил ошибку отклонения на единицу при использовании метода Array.Copy, в результате чего MD5 не копируется полностью дважды; последний скопированный байт после первого копирования перезаписывается при последующем копировании, так что последний байт результирующего массива всегда равен нулю). Полученный массив используется как ключ для расшифровки входящих строк base64 с использованием AES в режиме ECB.
Также интересно, что используемое поле также является мьютексом.
Теперь у нас есть вся необходимая информация для расшифровки настроек.
Наш окончательный ключ AES выглядит так: «01d31d5e811fce422987107f962c4001d31d5e811fce422987107f962c406600».
И вот мы добрались до ядра выборки нашей цели.
Результат можно посмотреть в CyberChef здесь .
Окончательное сопоставление конфигурации выглядит следующим образом:
Хозяин | 6[.]tcp.eu.ngrok[.]io |
Порт | 13394 |
AES-ключ | Рабы!-.;!2Swezy999!(xxx |
Сплиттер | Xwormmm |
Время сна | 3 |
USB-файл | USB.exe |
Мьютекс | Lz8qftMH08V7f1rq |
Файл журнала | %temp%\\Log.tmp |
токен телеграмма | 6674821695:AAExQsr6_hmXk6hz7CN4kMSi9cs9y86daYM |
Идентификатор чата Telegram | 5865520781 |
Посмотрите это в действии сами здесь .
МОК
Проанализированные файлы
MD5 | F6BB396FD836F66CD9F33CA4B0262DD7 |
SHA1 | BFC7036E32A59AC25DB505D263B5F4CADE24C53C |
SHA256 | 1073FF4689CB536805D2881988B72853B029040F446AF5CED18D1BC08B2266E1 |
SS | 6144:bfIbSc83qUhcX7elbKTua9bfF/H9d9n+:bLc83q3X3u+G |
МИТРА (АРМАТАК)
Тактика | Техника | Описание |
---|---|---|
TA0003: Настойчивость | T1547: ключи запуска реестра/папка запуска | Добавляет ярлык в папку автозагрузки |
TA0003: Настойчивость | T1053: Запланированная задача | Использует планировщик задач |
TA0009: Коллекция | T1074: Промежуточное хранение локальных данных | Вредоносная программа сохраняется в папке Public. |
TA0011: Командование и контроль | T1571: Нестандартный порт | Подключается к удаленному серверу |
TA0043: Признание | T1590: IP-адреса | Проверяет IP работающей системы |
TA0011: Командование и контроль | T1102: Двунаправленная связь | Общается через Telegram |
TA0007: Открытие | T1082: Обнаружение системной информации | Собирает информацию о компьютере жертвы |
TA0005: Уклонение от защиты | T1027: Запутывание команд | Запутывает исполняемый файл |
TA0002: Исполнение | T1047: Инструментарий управления Windows | Собирает системную информацию для обнаружения виртуализации. |
TA0005: Уклонение от защиты | T1027: Встроенные полезные нагрузки | Сохраняет информацию во мьютексе |
DNS-запросы
- 6[.]tcp[.]eu[.]ngrok[.]io
Больше образцов для ваших исследований
https://app.any.run/tasks/d3858744-f1b2-4a9b-8ef7-deccada2a160/https://app.any.run/tasks/75f66fd6-d989-4f06-a348-c65e135e8ab4/
https://app.any.run/tasks/5fab7db5-267e-46f6-a374-0f42de1cb328/
https://app.any.run/tasks/b9275944-39fe-42cb-9eae-6b2e05f0892f/
https://app.any.run/tasks/803758bf-387b-42e2-80cc-f20e7140cac4/
ANY.RUN - Interactive Online Malware Sandbox
Cloud-based malware analysis service. Take your information security to the next level. Analyze suspicious and malicious activities using our innovative tools.
