
RustyWater представляет собой основной полезный груз (payload) и основу всей враждебной операции в атаках группы Static Kitten.
RustyWater представляет собой основную полезную нагрузку и основу всей атакующей операции в атаках группировки Static Kitten.
RustyWater — это скомпилированный исполняемый файл на Rust (замаскированный под reddit.exe с поддельной иконкой Cloudflare), известный как RustyWater (или связанный с Archer RAT/RUSTRIC), обладающий сильными возможностями обхода AV/EDR через внедрение в процессы и персистентность в реестре.
1-АНТИ-АНАЛИЗ Reddit.exe реализует комплексную 8-уровневую систему анти-анализа, которая активно проверяет среду выполнения на признаки мониторинга, виртуализации или отладки. Каждый уровень действует как фильтр, гарантируя, что полезная нагрузка сработает только на настоящей цели.
Уровень 1: Проверка количества ядер процессора
Изначально «солдат» RustyWater осматривается, чтобы оценить мощность машины, на которой он оказался. Он спрашивает себя: сколько ядер у этого процессора? Среды анализа, такие как песочницы, обычно имеют ограниченные ресурсы и часто имеют два ядра или меньше. Если солдат обнаруживает, что машина слишком слабая, он немедленно решает, что среда небезопасна, и исчезает без следа, сводя на нет все усилия аналитиков.
На представленном изображении показан фрагмент кода программы Reddit.exe, иллюстрирующий этот механизм. Стрелка указывает на строку проверки «cpu count», где программа проверяет количество ядер процессора. Если количество равно двум или меньше, это означает, что окружающая среда подозрительна, и выполнение немедленно прекращается.

Уровень 2: Обнаружение артефактов виртуальной машины
Не удовлетворившись одной лишь проверкой ЦП, солдат копает глубже. Он знает, что виртуальные машины оставляют после себя специфические цифровые следы, словно хлебные крошки. Он сканирует список запущенных процессов в поисках знакомых имен, связанных с программным обеспечением для виртуализации: vmtoolsd.exe (VMware), vboxtray.exe (VirtualBox) и xenservice.exe (Xen). Он также проверяет наличие на диске определенных файлов драйверов, таких как vmmouse.sys или VBoxGuest.sys.
Логика проста: если на машине запущены инструменты VMware, скорее всего, это ВМ. Если это ВМ, скорее всего, это среда анализа. Если это среда анализа, солдат прерывает миссию.

Уровень 3: Сканирование реестра на наличие инструментов анализа
Затем солдат углубляется в реестр Windows — обширную базу данных системных настроек. Он знает, что аналитики безопасности часто оставляют свои инструменты, и эти инструменты оставляют артефакты. Он ищет ключи реестра, связанные с программным обеспечением для отладки и мониторинга, таким как Wireshark, Process Hacker, OllyDbg и IDA Pro. Наличие любого из этих ключей подтверждает, что среда враждебна, что вызывает немедленное завершение работы.

Уровень 4: Анализ объема оперативной памяти
Если система сообщает менее 4 ГБ, солдат подозревает ограниченную ресурсами песочницу и останавливает выполнение. Эта проверка является надежным способом отсеять многие автоматизированные системы анализа.

Уровень 5: Обнаружение отладчика
Теперь солдат проверяет свое непосредственное окружение. Он использует простой, но эффективный вызов Windows API — IsDebuggerPresent — чтобы определить, выполняется ли он под управлением отладчика. Отладчик подобен микроскопу: если он присутствует, это означает, что кто-то следит за каждой инструкцией солдата. Солдат не будет действовать под таким наблюдением.

Уровень 6: Проверка времени работы системы
Само время становится фактором. Солдат проверяет, как долго система работает после последней загрузки. Песочницы и среды анализа часто загружаются свежими, прямо перед выполнением образца. Если время работы системы менее 15 минут, солдат помечает ее как подозрительную среду с коротким временем жизни и отступает.

Уровень 7: Анализ имени пользователя
Затем солдат проверяет личность пользователя. Он сравнивает текущее имя пользователя с черным списком распространенных учетных записей для анализа: «sandbox», «virus», «malware», «analysis», «vmware» и «test». Эти имена пользователей часто используются в изолированных средах анализа. Если имя пользователя совпадает с любым элементом списка, миссия немедленно прерывается.

Уровень 8: Проверка MAC-адреса и аппаратного профиля
Наконец, солдат смотрит на сетевую карту машины. Он проверяет MAC-адрес на наличие известных префиксов производителей, используемых программным обеспечением для виртуализации. MAC-адрес, начинающийся с 00:0C:29, принадлежит VMware, а 08:00:27 — VirtualBox. Он также сканирует аппаратные профили на наличие строк «VMware» или «VirtualBox» в описании системы. Если что-то из этого найдено, солдат понимает, что находится внутри виртуальной машины, и выдергивает штекер.

Имплант хитро маскируется под легитимный компонент обновлений Windows, что делает его менее подозрительным для случайных наблюдателей. Механизм персистентности включает:
Это гарантирует, что каждый раз при входе пользователя в систему Reddit.exe автоматически выполняется с его привилегиями.

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

Почему атакующие используют explorer.exe для внедрения в процесс?
Атакующие намеренно выбрали explorer.exe в качестве цели для внедрения своего вредоносного шелл-кода. Этот выбор не случаен — он основан на стратегических преимуществах:

Поместите HTTP-полезную нагрузку: зашифруйте ее с помощью XOR-шифрования, чтобы избежать обнаружения в сети.
Изменение метаданных файла для обхода обнаружения
После сборки полезной нагрузки reddit.exe необходимо изменить ее метаданные, чтобы она выглядела как легитимная, не вызывающая подозрений программа. Решения безопасности и EDR-инструменты проверяют эти поля метаданных, поэтому их изменение необходимо для обхода.
Какие метаданные являются целью?
Версия файла: номер версии файла Версия продукта: номер версии продукта Описание файла: описание файла (отображается в Диспетчере задач) Имя продукта: название продукта Название компании: название компании-разработчика Авторские права: информация об авторских правах Исходное имя файла: оригинальное имя файла
Используемый инструмент: rcedit
Для выполнения этих изменений мы используем легковесный бесплатный инструмент rcedit, официально доступный на GitHub. Ссылка: https://github.com/electron/rcedit/releases/download/v2.0.0/rcedit-x64.exe

Я заметил, что атакующие не запускают reddit.exe напрямую на целевой системе. Вместо этого они полагаются на промежуточную программу, известную как CertificationKit.ini (дроппер), которая несет зашифрованную полезную нагрузку, расшифровывает ее во время выполнения и выполняет на машине жертвы.
И что дроппер был написан на Rust. Хотя он маскируется под безобидный конфигурационный файл (CertificationKit.ini), на самом деле это скомпилированный двоичный файл, отвечающий за развертывание и выполнение основной полезной нагрузки на целевой системе.
Эта техника дает несколько преимуществ:

Шифрование полезной нагрузки: Основная полезная нагрузка (reddit.exe) хранится в разделе ENCRYPTED_PAYLOAD и шифруется с помощью XOR-ключа, определенного в дроппере (XOR_KEY). Это гарантирует, что полезная нагрузка остается защищенной до момента выполнения.
Целевой путь: Дроппер записывает расшифрованную полезную нагрузку в расположение, указанное в конфигурации дроппера (TARGET_PATH). Этот путь должен быть правильно установлен на целевой каталог в системе жертвы.
Расшифровка во время выполнения: При выполнении дроппер расшифровывает полезную нагрузку с помощью XOR-ключа и развертывает ее как CertificationKit.ini в целевом расположении.
Такая настройка позволяет атакующим сохранять скрытность, обходить обнаружение и гарантировать, что полезная нагрузка будет доступна только при выполнении на системе жертвы.
