Оглавление


В марте 2024 года команда Solar 4RAYS проводила расследование в компании из промышленного сектора. В процессе исследования атакованных систем удалось обнаружить, что для загрузки вредоносного ПО злоумышленники использовали уязвимость в продукте DameWare Mini Remote Control. Кроме этого, уязвимость позволила им выполнить загрузку в пространство ядра из-под учетной записи LocalSystem собственного вредоносного драйвера, предназначенного для обхода средств защиты, и отключающего компоненты самозащиты антивирусного решения, установленного в ИТ-инфраструктуре компании.

Краткое содержание отчета:

  • В процессе ежедневного мониторинга событий АВПО в компании из промышленного сектора нами были обнаружены следы группировки, которую мы обозначили как NGC4020.
  • Первые попытки закрепления группировки в инфраструктуре компании датируются декабрем 2022 года.
  • Для проникновения в инфраструктуру атакующие воспользовались RCE-уязвимостью CVE-2019-3980.
  • В ходе атаки злоумышленники загружали на системы жертв имплант, позволяющий отключать различные механизмы средств защиты.
  • Ошибка, допущенная атакующими при создании задачи, не позволила им развить атаку.


Обзор инцидента

В процессе ежедневного мониторинга событий детектирования угроз средствами АВПО у наших заказчиков, в одной из систем в конце марта был обнаружен вредонос по пути «C:\ProgramData\programs\scvrc.exe» (MD5: 10b69cd3a532986818e08b959076125a). Для установления причин появления данного файла, систему предоставили для анализа группе реагирования Solar 4RAYS.

В результате мы выяснили, что файл был создан более месяца назад – в середине февраля, а «scvrc.exe» оказался ReverseShell на языке Java, при этом атакующие не использовали никакой обфускации: даже адрес сервера управления хранился в виде строкового значения и мог быть обнаружен в выводе утилиты Strings. Также в строках мы обнаружили и ссылку на GitHub-проект, где находился исходный файл данного Reverse Shell.

После размещения файла в системе фиксируется выполнение только лишь системных утилит для разведки «net.exe» и «hostname.exe». Свидетельства закрепления атакующими данного Reverse Shell отсутствовали, а после перезагрузки системы файл больше не запускался, на что указывали артефакты системы. Дальнейшей активности атакующих в системе не обнаружено.

Нужно было понять, каким образом Reverse Shell был развернут на системе.

В окрестности создания файла вредоноса в системе фиксируется создание еще одного файла: «C:\Windows\Temp\dwDrvInst.exe» (MD5: 08646ed56dc1176343c5713da8ab0cd5), который оказался самораспаковывающимся архивом с ранее обнаруженным файлом «scvrc.exe», а также директорией «jre-1.8» с легитимными файлами Java (распаковываются рядом с «scvrc.exe» и предназначены для запуска Java-программ).

Создание в системе файла «C:\Windows\Temp\dwDrvInst.exe» является характерным признаком эксплуатации RCE-уязвимости CVE-2019-3980 в ПО «DameWare Mini Remote Control», которая позволяет загрузить и запустить произвольный исполняемый файл в целевой системе. Для подтверждения данной гипотезы требуется посмотреть содержимое лог-файла «C:\Windows\dwrcs\DWRCSAccess.log», где могут быть обнаружены записи об ошибках «Using Smart Card Authentication Failed». Общий текст ошибки выглядит следующим образом:

Таким образом, система была скомпрометирована через RCE-уязвимость, но, проанализировав весь лог-файл «DWRCSAccess.log», мы обнаружили, что февраль 2024 – это не первый раз, когда атакующие получили доступ к системе.

В декабре 2022 года при аналогичной эксплуатации уязвимости в системе был размещен еще один вредонос: «C:\ProgramData\Oracle\Java\RuntimeBroker.exe», а в окрестности вновь фиксировалось размещение легитимных файлов Java по пути «C:\Windows\SysWOW64\config\systemprofile\AppData\Roaming\kmp64». Мы проанализировали «RuntimeBroker.exe» и поняли, что это тот же «scvrc.exe», но с другим C2, и этот файл снова не закреплен атакующими.

MD5

c9c4d91d627ff9a18974ab5965d05e88

SHA1

fdd45f60377efb79914bdb79348f7851097a5e54

SHA256

2561f881352018072cdf9d71ac4e428c67b8f78f5e214ce465474da572ce88ec

File name

RuntimeBroker.exe

File type

Zip archive, with extra data prepended

Compile date

2022-10-10 12:57:42

File size

46.23 KB

После предоставления заказчику данной информации выяснилось, что во время пандемии для некоторого количества систем в его инфраструктуре был проброшен порт DameWare во внешнюю сеть. Таким образом была обнаружена еще одна система, к которой на момент исследования также можно было получить доступ извне через DameWare, и в ней мы обнаружили идентичные незакрепленные Reverse Shell от 2022 и 2024 годов, а еще - следы разведки, но здесь антивирусное ПО уже не обнаружило оба файла. Почему?

Первые отличия от результатов исследования предыдущей системы были обнаружены в артефакте ShimCache, где для файла «C:\Windows\Temp\dwDrvInst.exe» было создано три записи при атаке в феврале 2024 года, что означает наличие сразу трех нагрузок, которые были запущены через RCE-уязвимость.

Вторая нагрузка нашлась быстро: это был файл вредоносного ПО QuasarRAT «C:\Windows\SysWOW64\svcmw\svcmnc.exe», который атакующие закрепили с помощью создания задачи в планировщике. А третья нагрузка была обнаружена в сбивающей с толку директории агента администрирования защитного решения «C:\Program Files (x86)\Kaspersky Lab\NetworkAgent\klcsdb.exe». Сам файл был закреплен в системе в ветке реестра Run «SOFTWARE\Microsoft\Windows\CurrentVersion\Run\klcsdb».

Первый запуск данного файла был выполнен из директории «C:\Windows\Temp\», где мы нашли лог-файлы «StartLog.txt» и «ElevatedLog.txt». Вероятно, запуск выполнен напрямую через уязвимость DameWare, а, что более важно, анализируя изменения реестра во временной окрестности запуска, мы зафиксировали отключение компонентов защиты установленного антивирусного решения.

Файл «StartLog.txt» содержал лишь одну строку:

А файл «ElevatedLog.txt» являлся логом работы вредоносного ПО:

Далее мы обнаружили аналогичные файлы в той же самой директории агента администрирования защитного решения. Файлы были созданы в результате перезагрузки системы и повторного выполнения «klcsdb.exe» из ветки реестра Run. Также при повторном запуске «klcsdb.exe» в системе фиксируется создание службы «ZeroRingProxy», выполняющей загрузку драйвера kernelproxy.sys.

И, казалось бы, атакующие провели успешную атаку:

1. запустили Reverse Shell через RCE-уязвимость в ПО DameWare;

2. отключили АВПО (технические подробности приведены ниже), а также добавили эксплойт для его отключения в автозагрузку;

3. закрепились в системе с помощью QuasarRAT.

Дальнейшее изучение логов показало, что после перезагрузки системы на следующий день активность атакующих закончилась. Изучив артефакты, мы сделали вывод, что атакующие совершили ошибку при создании задачи для закрепления импланта: с момента размещения вредоноса и до предоставления системы на анализ в журналах фиксировалось событие Event ID 101 «TaskStartFailedEvent, ResultCode:2147943645», где код ошибки означает «Пользователь, под которым необходимо выполнить задачу, не вошел в систему».

При исследовании параметров задачи мы обнаружили, что ее запуск должен выполняться с использованием доменной системной учетной записи, при этом в задаче был указан параметр «Run only when user is logged on» - что и является ошибкой. Для выполнения задач с правами системы требуется указывать иной параметр.

Таким образом, заказчик не пострадал, а мы получили интересные образцы вредоносного ПО, которые далее будут описаны в данной статье.



Техническое описание

Отключение средств защиты kis_off

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

MD5

6316f2ea8bd02ce6ceaf5dc4391eb0f5

SHA1

b34d44919a91e3dc837542aac5707d5d41a8e7e4

SHA256

89f6eb22b3eda77d74eb2e12215ad890d8249c319b66e291017ed2779e811423

File name

klcsdb.exe

PDB path

C:\Hobby\DEALER\inject_driver\inject_driver\Release\kis_off.pdb

File type

PE32 executable (GUI) Intel 80386, for MS Windows, 5 sections

Compile date

2024-02-12 10:05:02

File size

706.5 kB

При первом же рассмотрении импланта можно заметить многообещающий debug path, по большому счету описывающий функциональность и задачи образца, которые заключаются в отключении средств защиты зараженной системы с помощью дропающегося ring0-драйвера.

Перед запуском основной функциональности вредонос создает log-файл с именем StartLog.txt в той же папке, где и располагается сам. В него записывается самая базовая информация о процессе работы вредоноса(начало работы, уровень привилегий, с которыми был запущен сэмпл, и так далее). Далее проверяется наличие у зловреда прав администратора с помощью связки API-вызовов AllocateAndInitializeSid и CheckTokenMembership:

Если процесс был запущен без прав администратора, то вредонос будет пытаться повысить свои права, эксплуатируя уязвимость в Microsoft Kernel Streaming Server (компонент ядра Windows) – CVE-2023-36802, которая позволяет потенциальному злоумышленнику повысить права до SYSTEM.

Эксплойт актуален для Windows 10 вплоть до номера сборки 22621.

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

Microsoft Kernel Streaming Server (mskssrv.sys) является частью межпроцессного механизма для совместного использования потоков камеры. Драйвер mskssrv.sys работает либо с объектами регистрации контекста, либо с объектами регистрации потока, которые выделяются и инициализируется через соответствующий IOCTL – FRAMESERVER_INIT_CONTEXT (0x2f0400).

Поскольку объекты регистрации контекста меньше (0x78 байт), чем объекты регистрации потока (0x1D8 байт), из-за разницы в размерах двух объектов путаница типов приводит к уязвимости доступа Out-Of-Bound. Цель эксплуатации состоит в том, чтобы контролировать смежную память после объектов регистрации контекста. Для контроля доступа к памяти за пределами границ объектов регистрации контекста используется техника heap spraying, в нашем случае распыляются именованные каналы с именем "\\\\.\\pipe\\local_pipe":

Таким образом, можно перезаписывать токен текущего процесса токеном процесса, работающего с правами system. С более глубокими техническими подробностями этой уязвимости можно ознакомиться в репозитории команды Google Project Zero.

После процедуры повышения привилегий они снова проверяются, и если процесс имеет нужные права, тогда создается следующий log-файл с именем ElevatedLog.txt и на диск в ту же директорию дропается драйвер kernelproxy.sys.

MD5

38381a0dedac6b8f3a8c11db18b178b8

SHA1

44ab32ce32a0d91474206662d04fd74d1af7c773

SHA256

f01412d39ee940fd9b4ca47f56178f5544ff2b7ebfa723a45dcd440a07a9b3b5

File name

kernelproxy.sys

File type

PE32+ executable (native) x86-64, for MS Windows, 6 sections

Compile date

2024-02-12 10:04:48

File size

29.2 KB

Интересно, что драйвер был подписан конечным сертификатом 20 мая 2013 года, более того, сертификат истек уже 21 мая 2014 года:

Вероятно, этот сертификат оказался в руках злоумышленников вследствие утечки. Осталось выяснить, каким образом им удалось использовать сертификат с давно истекшим сроком действия.

В 2022 году Microsoft обновила свою политику подписи драйверов. В связи с этим, начиная с Windows 10 версии 1607, Windows не загружает новые kernel-mode драйверы, которые не были подписаны на портале разработчиков Microsoft (аналогично для Windows Server 2016). В целях же обеспечения работоспособности и совместимости старых драйверов Microsoft оставила несколько исключений. Драйверы с перекрестной подписью будут по-прежнему допускаться, если выполняется хотя бы одно из условий:

  • система была обновлена с более ранней версии Windows до Windows 10 версии 1607;
  • Secure Boot отключен в BIOS;
  • драйвер был подписан с помощью конечного сертификата, выпущенного до 29 июля 2015 года.

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

Для загрузки драйвера процессу назначаются привилегии SeLoadDriverPrivilege:

Далее создается сервис с именем ZeroRingProxy:

Отметим, что служба регистрирует драйвер в группу FSFilter Bottom, что определяет его как minifilter driver с высоким порядком загрузки (Altitude = 47777). Необходимость создания службы такого типа связана с отключением minifilter антивируса. Эту функциональность опишем далее.

После регистрации службы user-mode модуль klcsdb.exe отправляет драйверу IOCTL для отключения защитных функций установленного на системе антивирусного решения.

IOCTL

Description

0xA3632014

Disabling [AV name] minifilter

0xA3632020

Disabling [AV name] create process callbacks

0xA3632018

Disabling [AV name] create thread callbacks

0xA363201C

Disabling [AV name] load image callbacks

0xA3632028

Disabling [AV name] object callbacks

0xA3632024

Disabling [AV name] registry callback

0xA363202C

Disabling [AV name] ppl protection for avp.exe

Строки Description взяты из ElevatedLog.txt, куда они пишутся при выполнении соответствующего кода. Рассмотрим функциональность некоторых кодов управления более подробно.


Disabling minifilter

MiniFilter – это технология фильтрации файловой системы в операционной системе Windows, которая позволяет разработчикам создавать драйверы фильтров для мониторинга и обработки операций, связанных с файловой системой.

Компоненты безопасности многих защитных решений, используют minifilter для сбора информации об операциях в файловой системе и обнаружения необычного поведения. Кроме этого, minifilter используют для защиты продукта от несанкционированного доступа и отключения злоумышленниками, а также для контроля за доступом к файловой системе и для мониторинга операций в целом. Кроме того, он отслеживает запускаемые приложения и анализирует их на наличие потенциальных угроз. Согласно публично доступной информации, проанализированный нами minifilter является частью защитных продуктов «Лаборатории Касперского». Вредоносный драйвер создает и регистрирует собственный minifilter, находит смещение callback-функции минифильтра защитного решения и “заменяет” их фиктивной функцией-заглушкой, таким образом блокируя компонентам защитного решения возможность мониторинга событий файловой системы:

Disabling kernel callbacks

Следующим этапом зловред пытается удалить kernel callbacks, связанные с созданием процесса, созданием потока, загрузкой кода в пространство ядра или user space, обращениями к реестру, доступом к процессам и потокам.

Kernel Callbacks (обратные вызовы ядра) — популярный механизм для продуктов AV/EDR, который позволяет отслеживать активность процессов в системе. Windows предоставляет возможность уведомлять поставщиков безопасности о таких событиях, как создание процесса, создание потока, обращение к реестру, загрузка кода в пространстве ядра или в пользовательском пространстве, доступ к процессам и потокам и т.д. При уклонении от обнаружения, если атакующий сможет удалить, например, уведомление о создании процесса, то сможет запустить вредоносный процесс, не будучи обнаруженным. В этой статье сосредоточимся на процедуре обратного вызова создания процесса – PsSetCreateProcessNotifyRoutine.

Kernel Notify Routines используются загруженными драйверами для уведомления ядром о системной активности. Когда регистрируется функция обратного вызова, адрес функции обратного вызова добавляется в массив. Например, массив, содержащий все зарегистрированные функции обратного вызова, соответствующие PsSetCreateProcessNotifyRoutine, называется PspCreateProcessNotifyRoutine. Собственно, первым делом вредоносный драйвер ищет этот массив:

Затем вредонос будет искать адреса загруженных драйверов АВПО, обратные вызовы которых следует удалить.

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

Для обратных вызовов остальных типов процесс отключения Kernel Callbacks будет аналогичным.


Disabling ppl protection

Protected Process Light (PPL) — технология, которая используется в Windows для контроля запущенных процессов, их защиты от потенциально опасных процессов и внедрения вредоносного кода. В подавляющем большинстве антивирусных продуктов данный механизм используется для защиты собственных файлов. Таким образом, данный код управления предназначен для отключения этой защиты процесса avp.exe для дальнейших операций с ним.

Способ изменения статуса защиты относительно прост:

1. Вызывается PsLookupProcessByProcessId для получения информации о структуре процесса EPROCESS по его PID.

2. В EPROCESS находит структуру PS_PROTECTION, в которой хранится уровень защиты процесса.

3. Изменяет значения структуры PS_PROTECTION для выставления режима отсутствия защиты целевого процесса:

Далее управление снова переходит на модуль user mode, где происходит изменение различных параметров защиты продукта через реестр. Аналогичные действия ВПО совершает и в отношении Windows Defender, отключая через реестр опции защиты.

Далее в корневую папку антивирусного решения дропается библиотека product_improvement.dll.

MD5

74f0df4817fd6f1196cafa7536e0ef71

SHA1

f3c08dc9473bb5d5e0f5be36d94e81dbcf5d0f2a

SHA256

9d1d59cd9134a90643539b0c8ea935a45b2962809ba945deaf71355f2a124069

File name

product_improvement.dll

File type

PE32 executable (DLL) (GUI) Intel 80386, for MS Windows, 7sections

Compile date

2024-02-12 10:04:13

Debug path

C:\Hobby\DEALER\inject_driver\inject_driver\Release\product_impr ovement.pdb

File size

116.5 KB

При базовом анализе файла на себя сразу же обращают внимание две подозрительные секции:

Имена секций указывают на использование пакета Detours, который предназначен для перехвата вызовов Windows API в бинарных файлах. В нашем случае злоумышленники перехватывают вызов NtReadFile (user mode):

Функция-перехватчик представляет собой обертку вызова NtReadFile с дополнительной проверкой строки пути файла, прямое назначение которой нам определить не удалось. Если путь читаемого файла содержит в себе подстроку “mimic”, то чтения не произойдет, а функция вернет ноль. В противном случае, если подстроку “mimic” в пути файла найти не удалось, будет вызван NtReadFile, файл будет прочитан, и функция вернет NTSTATUS:

Вернемся к файлу klcsdb.exe, чтобы разобраться, для чего атакующим понадобилось перехватывать NtReadFile. Когда библиотека будет выгружена на диск, вредонос копирует файл avp.exe антивирусного решения из корневой директории продукта в директорию %TEMP%.

Далее этот файл из временной директории будет модифицирован, а именно, в таблицу импорта будет добавлена экспортная функция “ReadVersion” библиотеки product_improvement.dll:

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

После патчинга оригинальный исполняемый файл антивирусного решения будет переименован в avp.old, а пропатченный будет перемещен в корневую директорию. Таким образом, библиотека product_improvement.dll будет загружаться и хукать NtReadFile при каждом чтении файлов пропатченным процессом защитного решения. Вероятно, эти манипуляции предназначены для очередной попытки обхода средств защиты и препятствуют сканированию антивирусным движком файлов с подстрокой “mimic” в пути. На момент исследования атакованных систем мы не нашли артефактов, связанных с такой подстрокой.

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

После этого вредонос переходит к заключительной стадии своей работы, а именно к удалению самого себя. Для этого на диск в директорию %TEMP% дропается файл remover.

MD5

13a577a87cd61fa335b32afc219d8a79

SHA1

68d530b7bbab2bf40c08d7c7c375fb8cec48d184

SHA256

58fbf0806fd5e4bd7331503b53ee79e8464033b692430fd82086e0e03b27d403

File name

remover

File type

PE32 executable (console) Intel 80386, for MS Windows, 5 sections

Compile date

2024-02-12 10:04:22

Debug path

C:\Hobby\DEALER\inject_driver\inject_driver\Release\exe_remover. pdb

File size

17.5 KB

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

klcsdb.exe будет пытаться создать процесс со следующей командной строкой:

<exe_remover path_to_klcsdb_exe>

Таким образом удаляя себя.

Общая схема работы импланта приведена ниже:


QuasarRAT

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

MD5

f893cf56bb4d8fe3b7e3be319d83cc0c

SHA1

f94443a8d9f9b13a7de7b117781509ca9e001874

SHA256

78c843ca272102196176d8f0a3801762fcb359b85236225497597e508812905e

File name

svcmnc.exe

File type

PE32 executable (GUI) Intel 80386, for MS Windows, 23 sections

Compile date

2024-02-14 17:19:03

BuildID

3WkbQhQ9C7xIrQgzgS_4/T2V6lsGqO4SdRvxz9RI2/C9n3lPSxRaE0a6GmF42T/bJ_FoTXWngj4kGB4cZmq

File size

3.8 MB

При первичном анализе исполняемого файла выяснилось, что первый этап дроппера написан на Go, а в его секции «.rdata» лежит массив закодированный Base64:

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

Base64 декодируется и затем расшифровывается алгоритмом AES-256 c модом CFB и ключом, которым является имя атакуемого хоста.

После расшифровки снова получаем массив закодированный Base64, который декодируется и побайтово копируется в новую выделенную область памяти с правами RWX:

Дешифрованные данные представляют собой шеллкод DonutLoader:

DonutLoader загружает и выполняет в памяти QuasarRAT.

MD5

e2b547f4e32ceadaa889530cb6145733

SHA1

668aed4a79ee3c7abead9a5955f00d757bbae2d6

SHA256

e7556516b1c3224f0668450896db2dcd5c4c18f8ffd638bca20aed4cbf806de4

File name

<only_memory>

File type

PE32 executable (GUI) Intel 80386 Mono/.Net assembly, for MS Windows, 3 sections

Compile date

2024-02-09 14:22:30

InternalName

nGdistamalo.exe

File size

379.4 KB

Дата указывает на то, что файл был скомпилирован 09.02.2024, а поле StringFileInfo – что использовалась версия QuasarRAT 1.2.0.0.

Однако в репозитории QuasarRAT в GitHub клиент версии 1.2.0.0 будет отличаться количеством полей.

Количество и нейминг полей ITW-образца характерны для версии 1.3.0.0:

Кроме этого, ITW-образец полностью совпадает с клиентом версии 1.3.0.0 по функциональности, но некоторые строки в скомпилированном образце были изменены, например:

GitHub sample

ITW sample

“echo DONT CLOSE THIS WINDOW!”

“echo DOINDOW!”

“Adding to startup failed”

“Addiled”

“GetDirectory No permission”

“GetDirmission”

“GetDirectory No permission”

“GetDirission”

“GetDirectory Path too long”

“GetDirong”

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


ReveseTcp Java

Кроме упомянутого ранее QuasarRAT для удаленного управления системой атакующие воспользовались не самым популярным решением – reverse shell, написанным на Java. Вероятно, такой выбор был обусловлен минимальным рейтингом обнаружения этого java-импланта среди антивирусных решений.

MD5

08646ed56dc1176343c5713da8ab0cd5

SHA1

2b12a5fa5a252379db37040a4932c809ec667ac2

SHA256

0c308110c2ad0c582516c50736612c38e3cff1b17730e61b945d7def7f5b3b18

File name

dwDrvInst.exe

File type

PE32 executable (GUI) Intel 80386, for MS Windows, 6 sections

Compile date

2023-10-03 07:51:19

File size

14.1 MB

Первый файл в цепочке «dwDrvInst.exe» является SFX-дроппером, архив содержит jre-версии 1.8 и скомпилированный Java ReverseShell и выполняет SFX-скрипт, который распаковывает в определенную директорию содержимое, а также запускает следующий этап нагрузки:

Path=%programdata%\programs
Setup=scvrc.exe
Silent=1
Overwrite=1

Следующий этап нагрузки представляет собой скомпилированный с помощью launch4j Java ReverseShell:

MD5

10b69cd3a532986818e08b959076125a

SHA1

73b2edc566402b92d88144eadc0b3267668708ad

SHA256

eff020e3963f94f6591fe681feea7f78aa651192522a28f57176fa2e7dfa174a

File name

scvrc.exe

File type

Zip archive, with extra data prepended

Compile date

2024-02-08 11:55:59

File size

68.8 KB

Архив содержит два каталога. В первом – файл манифест с указанием названия Main-Class: reverse.shell.ReverseShell.

Второй каталог хранит файл ReverseShell.class.

В начале функции main указаны строки, представленные на рисунке ниже:

Судя по этим строкам, ReverseShell относится к проекту на GitHub Java Reverse TCP.

ReverseShell является кроссплатформенным, для этого функция detect() определяет, какой интерпретатор командной строки запустить:

Адрес сервера управления и порт хранятся в секции ресурсов и передаются в качестве аргументов командной строки.

C2 хранится в секции ресурсов файла и извлекается с помощью функций FindResourceExA и LoadResource:


Заключение

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

Подходы и техническая реализация уклонения и деактивации защитных решений отличаются лишь деталями, например, именами файлов их компонентов, а особое внимание злоумышленников к продуктам “Лаборатории Касперского” обусловлено их популярностью на территории РФ.

Мы поделились результатами нашего анализа с коллегами из “Лаборатории Касперского”. Вот их ответ:

“Защита наших пользователей является для «Лаборатории Касперского» наивысшим приоритетом. По итогам анализа материала и артефактов, найденных командой Solar 4RAYS, мы улучшили механизмы обнаружения и самозащиты наших продуктов от описанных и аналогичных инструментов и выпустили соответствующие обновления. В них, в частности, были усилены правила обнаружения для всей цепочки эксплуатации, в том числе обнаружение загрузки подозрительных драйверов при помощи компонента «Анализ поведения».

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

Мы благодарим коллег из Solar 4RAYS за оперативно предоставленную информацию.”

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

Поэтому во избежание подобных атак, необходимо не только использовать продукты безопасности, но и своевременно проводить их аудит, не забывая обновлять ОС на всех системах компании.



IOCs

File hashes

MD5

10b69cd3a532986818e08b959076125a
08646ed56dc1176343c5713da8ab0cd5
c9c4d91d627ff9a18974ab5965d05e88
f893cf56bb4d8fe3b7e3be319d83cc0c
6316f2ea8bd02ce6ceaf5dc4391eb0f5
38381a0dedac6b8f3a8c11db18b178b8
74f0df4817fd6f1196cafa7536e0ef71
13a577a87cd61fa335b32afc219d8a79

SHA1

73b2edc566402b92d88144eadc0b3267668708ad
2b12a5fa5a252379db37040a4932c809ec667ac2
fdd45f60377efb79914bdb79348f7851097a5e54
f94443a8d9f9b13a7de7b117781509ca9e001874
b34d44919a91e3dc837542aac5707d5d41a8e7e4
44ab32ce32a0d91474206662d04fd74d1af7c773
f3c08dc9473bb5d5e0f5be36d94e81dbcf5d0f2a
68d530b7bbab2bf40c08d7c7c375fb8cec48d184

SHA256

eff020e3963f94f6591fe681feea7f78aa651192522a28f57176fa2e7dfa174a
0c308110c2ad0c582516c50736612c38e3cff1b17730e61b945d7def7f5b3b18
2561f881352018072cdf9d71ac4e428c67b8f78f5e214ce465474da572ce88ec
78c843ca272102196176d8f0a3801762fcb359b85236225497597e508812905e
89f6eb22b3eda77d74eb2e12215ad890d8249c319b66e291017ed2779e811423
f01412d39ee940fd9b4ca47f56178f5544ff2b7ebfa723a45dcd440a07a9b3b5
9d1d59cd9134a90643539b0c8ea935a45b2962809ba945deaf71355f2a124069
58fbf0806fd5e4bd7331503b53ee79e8464033b692430fd82086e0e03b27d403


Сетевые индикаторы

Java ReverseTcp

5[.]252[.]178[.]142:3264
5[.]199[.]168[.]209:5623

QuasarRAT

hxxp://ap[.]kisupdater[.]com:7979



Приложение 1: Расширенная информация по файловым IOCs

Путь

Хэш-сумма MD5

Хэш-сумма SHA1

Хэш-сумма SHA256

Комментарий

C:\ProgramData\programs\scvrc.exe

10b69cd3a532986818e08b959076125a

73b2edc566402b92d88144eadc0b3267668708ad

eff020e3963f94f6591fe681feea7f78aa651192522a28f57176fa2e7dfa174a

Скомпилированный ReverseTcp Java

(https://github.com/ivan-sincek/java-reverse-tcp/)

С2: 5[.]252[.]178[.]142:3264

C:\Windows\Temp\dwDrvInst.exe

08646ed56dc1176343c5713da8ab0cd5

2b12a5fa5a252379db37040a4932c809ec667ac2

0c308110c2ad0c582516c50736612c38e3cff1b17730e61b945d7def7f5b3b18

sfx-архив, дропающий ReverseTcp Java

C:\ProgramData\Oracle\Java\RuntimeBroker.exe

c9c4d91d627ff9a18974ab5965d05e88

fdd45f60377efb79914bdb79348f7851097a5e54

2561f881352018072cdf9d71ac4e428c67b8f78f5e214ce465474da572ce88ec

Скомпилированный ReverseTcp Java

(https://github.com/ivan-sincek/java-reverse-tcp/)

С2: 5[.]199[.]168[.]209:5623

C:\Windows\SysWOW64\svcmw\svcmnc.exe

 

f893cf56bb4d8fe3b7e3be319d83cc0c

f94443a8d9f9b13a7de7b117781509ca9e001874

78c843ca272102196176d8f0a3801762fcb359b85236225497597e508812905e

QuasarRAT

C2: hxxp[://]ap[.]kisupdater[.]com:7979

C:\Program Files (x86)\Kaspersky Lab\NetworkAgent\klcsdb.exe

6316f2ea8bd02ce6ceaf5dc4391eb0f5

b34d44919a91e3dc837542aac5707d5d41a8e7e4

89f6eb22b3eda77d74eb2e12215ad890d8249c319b66e291017ed2779e811423

user-mode агент для отключения компонентов АВПО.


C:\Program Files (x86)\Kaspersky Lab\NetworkAgent\kernelproxy.sys

38381a0dedac6b8f3a8c11db18b178b8

44ab32ce32a0d91474206662d04fd74d1af7c773

f01412d39ee940fd9b4ca47f56178f5544ff2b7ebfa723a45dcd440a07a9b3b5

ring-0 драйвер, отключающий механизмы защиты ядра

<root_dir_kasp_lab>\product_improvement.dll

74f0df4817fd6f1196cafa7536e0ef71

f3c08dc9473bb5d5e0f5be36d94e81dbcf5d0f2a

9d1d59cd9134a90643539b0c8ea935a45b2962809ba945deaf71355f2a124069

Библиотека, хукающая ZwReadFile процесса avp.exe

%TEMP%\remover

13a577a87cd61fa335b32afc219d8a79

68d530b7bbab2bf40c08d7c7c375fb8cec48d184

58fbf0806fd5e4bd7331503b53ee79e8464033b692430fd82086e0e03b27d403

Удаляет файл, указанный в аргументах командной строки

C:\Windows\Temp\StartLog.txt

-

-

-

Лог процесса klcsdb.exe

C:\Windows\Temp\ElevatedLog.txt

-

-

-

Лог процесса klcsdb.exe

C:\Windows\Temp\SecondLogger.txt

-

-

-

Лог процесса klcsdb.exe