ARMORY CASTLE эксплуатировал уязвимость нулевого дня в BeyondTrust
ARMORY CASTLE, предположительно связанный с КНР актор, занимавшийся шпионажем и ранее отслеживавшийся как UNC5221, в конце августа 2026 года эксплуатировал уязвимость BeyondTrust Remote Support CVE-2026-102764 как уязвимость нулевого дня. Она затрагивает поддерживаемые устройства с версиями до 26.2.3 включительно и позволяет удалённому атакующему без аутентификации выполнять произвольные файловые операции. Это потенциально может привести к получению контроля на уровне хоста и доступу к хранящимся учётным данным.
Эксплуатация и веб-шелл SAWFLY
Следы эксплуатации обнаружили в журналах доступа к устройствам, syslog, messages, thin-scc, brain и SSL. После эксплуатации ARMORY CASTLE отправил POST-запросы на обфусцированный PHP-путь. Примерно через 11 минут актор развернул веб-шелл SAWFLY в корневом каталоге веб-интерфейса устройства.
SAWFLY, это обфусцированный PHP-веб-шелл. Он проверяет наличие параметра _c94mfe, декодирует его содержимое из Base32 и расшифровывает встроенным 256-битным ключом RC4, а затем выполняет полученный PHP-код через eval(). Вывод веб-шелл шифрует и кодирует в Base32 перед отправкой оператору. Если ожидаемого параметра нет, SAWFLY отвечает кодом HTTP 404, снижая вероятность обнаружения сканерами.
Получение прав и закрепление
Чтобы получить root-доступ, ARMORY CASTLE скопировал /bin/sh в /usr/bin/dbus-authd, изменил владельца файла на root и установил бит SUID. В результате из непривилегированной учётной записи службы сайта появился исполняемый файл бэкдора с правами root. Актор также использовал утилиту BeyondTrust bt-secrets для доступа к хранилищам паролей, специфичным для сайта, и глобальным хранилищам. Затем он удалил связанные журналы и архивы.
Для закрепления ARMORY CASTLE задействовал механизм запуска устройства. Актор создал каталог /home/bomgar/sbin/post_boot.d/, добавил туда скрипт zz-root-persist и изменил шаблоны конфигурации, чтобы учётная запись службы сайта получила права root без пароля. Кроме того, он удалил активные журналы и другие артефакты, чтобы затруднить расследование.
Туннелирование через BARECLAW
Для перемещения внутри компании и получения сетевого доступа актор развернул BARECLAW, SOCKS5-туннелизатор на языке C. Он использует транспорт WebSocket, встроенную библиотеку CivetWeb и функциональность OpenSSL. BARECLAW слушал TCP-порт 19800, применял пользовательский путь WebSocket и аутентификацию по токену, вёл журнал в тихом режиме и шифровал сеансы на основе XOR. TLS не был включён.
Изменения в haproxy.conf направляли внешние запросы к пути WebSocket на локальный слушатель BARECLAW. Туннель проходил через обратный прокси-сервер устройства, а слушатель оставался привязанным к localhost.
Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.
Ознакомиться подробнее с отчетом можно по ссылке.



