В ходе кампании, нацеленной на японскую организацию из сферы промышленного производства, злоумышленники из группировки SilverFox применили ранее не документированные для этого кластера методы. Атака начиналась с фишингового письма под видом счёта-фактуры. После перехода по ссылке жертва загружала ZIP-архив, размещённый через легитимную инфраструктуру доставки файлов QQ. Второй этап загрузки осуществлялся через облачное хранилище Tencent Cloud. Такая схема позволяла маскировать трафик под обычную сетевую активность и усложняла его выявление стандартными средствами фильтрации.
Описание
Полученный архив содержал загрузчик, который извлекал два компонента: вредоносный файл PDFCORE8.dll и одно из двух легитимных приложений - ConvertToPDF.exe или PDFDirect.exe, разработанных компанией Zeon. Оба приложения имели действительную цифровую подпись и не были модифицированы. Однако злоумышленники поместили свою DLL в тот же каталог, что и доверенный исполняемый файл. При запуске приложение загружало PDFCORE8.dll из локальной рабочей папки, что приводило к выполнению вредоносного кода. Согласно публичным данным, ни один из этих двух исполняемых файлов ранее не фиксировался как точка для подгрузки DLL в атаках SilverFox.
Исследование Cato CTRL показало, что PDFCORE8.dll представляет собой самодостаточную среду выполнения второго этапа. Внутри неё зашифрованы три уязвимых драйвера (BootRepair.sys, EnPortv.sys и wsftprm.sys), а также скрипт-наблюдатель. Драйверы расшифровываются по мере необходимости и развёртываются в ядре операционной системы. SilverFox и ранее применял технику BYOVD (использование легитимных, но уязвимых драйверов), однако BootRepair.sys и EnPortv.sys ранее не связывались с этой группой. Третий драйвер, wsftprm.sys, уже фигурировал в публичных отчётах о деятельности SilverFox. Объединение трёх разных драйверов в одной схеме позволяет злоумышленникам выбирать подходящий вариант в зависимости от окружения: если один драйвер недоступен или заблокирован, в ход идёт другой.
После установки связи с уязвимым драйвером вредоносная программа перебирает запущенные процессы и идентифицирует продукты безопасности - средства антивирусной защиты, обнаружения вторжений и мониторинга. Пользовательский компонент определяет идентификатор целевого процесса, после чего через драйвер отправляется запрос на принудительное завершение процесса на уровне ядра. Такой обходной путь позволяет останавливать даже защищённые процессы, которые обычное пользовательское приложение завершить не может. Перед выполнением дальнейших действий PDFCORE8.dll также восстанавливает чистую копию системной библиотеки ntdll.dll, удаляя возможные перехватчики, установленные продуктами безопасности. Это снижает видимость вызовов API со стороны пользовательских средств мониторинга.
Для сокрытия своих намерений вредоносная программа динамически собирает имена системных библиотек (например, kernel32.dll) из отдельных символов непосредственно перед использованием. Необходимые функции API загружаются через LoadLibraryW и GetProcAddress только в момент вызова, что затрудняет статический анализ. Финальная полезная нагрузка доставляется с сервера управления и внедряется в легитимный процесс svchost.exe методом перехвата контекста потока: злоумышленники создают процесс в приостановленном состоянии, записывают в его память шелл-код, модифицируют счётчик команд и возобновляют выполнение. После инъекции код работает в контексте доверенного системного процесса, не создавая дополнительных потоков.
Для сохранения активности в системе после перезагрузки создаётся запланированное задание Windows, которое запускает загрузчик второго этапа при входе пользователя. Помимо этого, SilverFox внедрил два независимых механизма восстановления. Первый - внутренний мониторинг внутри PDFCORE8.dll, который периодически проверяет, работает ли инъецированный процесс. Если процесс завершён, загрузчик создаёт его заново. Второй - внешний скрипт-наблюдатель (зашифрован в той же DLL), который каждые 30 секунд проверяет через утилиты Windows, активен ли сам загрузчик. Если загрузчик остановлен, скрипт перезапускает его. Такая двухуровневая архитектура означает, что для полного прерывания атаки необходимо одновременно удалить и полезную нагрузку, и управляющий загрузчик, и скрипт-наблюдатель.
Скачанный шелл-код сохраняется в реестре Windows по пути HKCU\Console\0 в виде двоичных данных. Отдельно в HKLM\SOFTWARE\IpDates_sun хранится конфигурация сервера управления (IP-адрес и порты). Перед выполнением загрузчик заменяет в шелл-коде маркер FaCai2024 на актуальные данные сервера, что позволяет использовать один и тот же шелл-код с разными адресами без его перекомпиляции. После подстановки выполняется собственно ValleyRAT (также известный как Winos 4.0) - удалённый доступ, дающий операторам полный контроль над скомпрометированной системой.
Платформа Cato SASE Platform, как сообщается, заблокировала распространение вредоносного PDFCORE8.dll на этапе загрузки, не допустив развёртывания драйверов и инъекции. Для организаций, не имеющих подобных средств защиты, основными точками обнаружения могут служить: запуск ConvertToPDF.exe или PDFDirect.exe из временных папок; загрузка PDFCORE8.dll из того же каталога; появление служб ядра с именами BootRepair.sys, EnPortv.sys или wsftprm.sys; создание приостановленного процесса svchost.exe с последующей записью в память и модификацией контекста потока; запись данных в HKCU\Console\0 и HKLM\SOFTWARE\IpDates_sun; повторяющиеся вызовы tasklist, find и timeout из cmd.exe; а также сетевые соединения с инфраструктурой QQ и Tencent Cloud, за которыми следуют подозрительные локальные загрузки.
Кампания демонстрирует, как SilverFox систематически расширяет набор инструментов, комбинируя легитимное программное обеспечение, облачные сервисы, уязвимые драйверы, перехват системных вызовов и многоуровневое восстановление. Каждый отдельный элемент - доверенное приложение, подписанный драйвер, обычный облачный хостинг - не вызывает подозрений, но в совокупности они образуют устойчивую цепочку компрометации, способную обходить многие существующие средства защиты.
Индикаторы компрометации
IPv4
- 43.128.26.132
Domain
- file.wx2.qq.com
- hrefbfdhfhgre-1422102728.cos.ap-hongkong.myqcloud.com
SHA256
- 01ccc662c4b5d6ff79ede2e5dd7e508c7e2029fcc13e988e22345b0e5413ed01
- 0952f2aacbeb3477b2465dfe3bac85d7906e958f866478cdbffec9be8cdb01c9
- 0a0353fddca1ba1432b35411a8ce2536c9b35aad25d0819296748e13423c813b
- 0ef3119504f8aa3a534bfdbe20ed88727deabdf4e8f6e3e31298a34eef768662
- 1355d2d73a1f21b4fa4e1b97432015052c004a0ca20a0b72d47011940fd51c6a
- 18db6fbabcf73332eb9bb392f7ae0cc3381f3528983587e17b7ceba8dc37e9f6
- 1f0f08699f74eb2fb690edd064cba4f2fad06761f67d0bbb585e5cd03c77ea17
- 25c5ef94956a60ea6bb764f8abc82898906662207b59506b9647fd1c57bbb66b
- 2a5c7af5106a2cbd6b0f5a96a3716b29271f0b476a3c21a7c9b59fdc7d5e561b
- 2b8a15c5d7e23a69b8052e1ec298c075324e8fa95ea06d191124326b848cb0ff
- 31a276aae8a45873beecf4137bb27cd5a6dedde882a7b1e79f70ad0abeaa3ee1
- 36eb85e475954e2815c40e0c1546895de5419aa704cadf01d9e096a70ee84517
- 381dbc9012d02b3a42916813b99e481b1cc89d15da918b58db40ce330cc13fca
- 5e9c2eb32e1c5e0e9f69c8eda4e5ff2ec9e46d43e75ce098b830016ae17f291a
- c0ec1488902568be9a4960c670dfa5edac0e096d106d782fa6bc26ee56793b75