Кто оставил ИИ-агента без присмотра рыться в файлах минфина Таиланда?

Некто арендовал сервер, поставил на него ИИ-ассистента Hermes, отключил в нём функцию запроса разрешений и направил его против Министерства финансов Таиланда — ведомства, которое отвечает за казну страны и сбор налогов. Дальше агент действовал сам: сканировал хосты в поисках возможностей получить root-доступ, шарил по файловым системам, залез в папку с кадровыми делами сотрудников, часть которых датирована 2012 годом. Никто не сидел рядом и не одобрял каждый его шаг.
Разоблачила операцию банальная небрежность самого оператора: он оставил логи агента на веб-сервере с включённым листингом директорий — то есть содержимое папки можно было просто открыть в браузере. На это наткнулась компания , специализирующаяся на threat intelligence, вместе с исследователем Бобом Диаченко. В открытом доступе обнаружили 585 файлов и 470 мегабайт инструментов для постэксплуатации.
Сам Hermes — это опенсорсный ИИ-ассистент от Nous Research, задуманный для управления почтой, выполнения задач и приёма команд через Telegram или Slack. Ничего хакерского в нём изначально нет, и произошедшее не является уязвимостью самого инструмента. Использовалась легитимная, документированная функция под названием "YOLO mode" — со своим флагом командной строки. Включить её можно тремя способами: флагом --yolo при запуске, командой /yolo прямо в сессии, либо переменной окружения HERMES_YOLO_MODE=1. В руководстве Nous Research по настройке прямо написано: использовать это только в доверенных, изолированных средах.
Ситуация принципиально отличается от истории с Anthropic в ноябре, когда китайская группировка вынуждена была обманом заставлять Claude Code сотрудничать в шпионской операции — и как только это вскрылось, компания просто забанила аккаунты. Здесь банить некого. Hermes работал на собственной машине оператора, без какого-либо надзора со стороны разработчика — нет ни аккаунтов, которые можно заблокировать, ни мониторинга активности.
К моменту запуска агента злоумышленник уже находился внутри сети. нашла скрытый веб-шелл на сервере министерства, скрипты со ссылками на конкретные внутренние Hadoop-системы по именам, а также украденные пароли от почтовых ящиков, зашитые прямо в тестовый почтовый скрипт. Как именно произошло первое проникновение — неизвестно до сих пор. Национальный CERT и агентство кибербезопасности Таиланда получили уведомление 15 июля. На момент проверки The Hacker News 24 июля ни одно из ведомств так ничего публично и не сообщило. Доказательств того, что данные реально покинули сеть, найдено не было.
Разделение труда между человеком и машиной прослеживается довольно чётко. Человек делал то, что требовало знания цели изнутри: составил список паролей из реальных аббревиатур отделов министерства, а не из типового словаря, написал шеллкод с зашитыми путями во внутреннюю интранет-сеть ведомства. Агенту же достались рутинные повторяющиеся операции — запускать сканирование, читать вывод, решать, что делать дальше, и повторять цикл заново. Никаких признаков того, что ИИ сам находил новые уязвимости или выбирал цели, не обнаружено. Инструменты использовались стандартные: LinPEAS для поиска путей повышения привилегий в Linux, поиск файлов с расширенными правами, обход директорий.
Действия агента задокументированы в пяти файлах логов с именами вида call_00_.txt: сканирование ядра на уязвимости против хоста министерства, повторный запуск LinPEAS, поиск бинарников с повышенными правами, листинг файловой системы и, наконец, рекурсивный обход веб-рута, принадлежащего канцелярии постоянного секретаря. В этой директории лежали офисные документы, оценки эффективности сотрудников и личные дела с 2012 года. Логи показывают, что агент читал содержимое папки — следов выгрузки файлов наружу не нашли.
Кастомизированный скрипт проверял систему на четыре свежие уязвимости ядра Linux 2026 года из трёх разных семейств: Copy Fail (CVE-2026-31431), Dirty Frag (CVE-2026-43284 и CVE-2026-43500) и DirtyClone (CVE-2026-43503). Каждая при определённых условиях позволяет локальному пользователю получить root, причём для Dirty Frag и DirtyClone требуется привилегия CAP_NET_ADMIN. Все четыре бага на момент подготовки атаки были буквально свежими, им исполнилось всего несколько недель. Никаких доказательств того, что какой-либо эксплойт реально сработал, или какая версия ядра стояла на серверах министерства, не нашлось.
По следам атрибуции картина складывается такая: SSH-сессия оператора на промежуточный сервер шла с адреса 103.97.0[.]57, расположенного в Гонконге. Пароль от веб-интерфейса Hermes содержал китайское слово "Leishen" (雷神, «бог грома»). Рядом с паролем нашли ключ для FOFA — китайского сервиса поиска сетевых активов. Тот же промежуточный сервер раньше использовался как контроллер ShadowPad, а сейчас на нём крутится C2-листенер VShell. оценивает с уровнем уверенности от низкого до среднего, что оператор говорит по-китайски или свободно им владеет. Конкретную хакерскую группировку никто не назвал, и вместе с Диаченко остаются единственным публичным источником по этому конкретному инциденту в министерстве.
Основная часть кастомного кода была нацелена на Hadoop-кластер министерства — систему для хранения и обработки больших объёмов данных. Скрипт hive_rce_py2.py подключался к HiveServer2 (SQL-интерфейсу Hadoop) через внутреннюю машину по порту 10000, эксплуатируя настройку аутентификации Apache по умолчанию — "NONE", которая, согласно собственной документации Apache, принимает любой пароль без проверки. После подключения устанавливался вредоносный Java-модуль HiveCmd.jar, зарегистрированный как пользовательская функция (UDF). Она позволяет выполнять команды на уровне операционной системы через обычные запросы к базе данных. Cloudera в своей документации прямо предупреждает: тот, кто способен установить такую функцию, может выполнять произвольный код от имени сервисного аккаунта Hive и получить доступ к чувствительным данным.
Отдельно нашли ранее не документированный имплант на Go, который оператор сам назвал "Hades". Собрано было 62 экземпляра под Windows и Linux. разобрала по одному образцу каждой ОС, остальные 60 копий отдельно не изучались, но построены на том же коде. Жёстко зашитые адреса связывают промежуточный сервер со вторым хостом в Гонконге. Доказательств того, что Hades реально добрался до какой-либо машины министерства, нет.
Среди прочих попыток разведки — тестирование стандартных учётных данных против внутренней консоли GlassFish (подтверждений успешного развёртывания нет), а также подготовленный эксплойт-код для трёх старых уязвимостей: Polkit, Sudo и IIS 6.0.
Рекомендации по защите достаточно конкретные: проверить настройки аутентификации HiveServer2 и убедиться, что она не выставлена на "NONE", ограничив круг тех, кто может устанавливать пользовательские функции; следить за веб-серверами, которые подключаются к внутренним портам Hadoop вроде 10000 и 50070 — само по себе это уже подозрительно; рекурсивно искать в веб-рутах PHP-файлы с именами, начинающимися на точку и маскирующимися под системный кэш (найденный пример — /storage/Counter/nine/.journald-cache.php, невидимый при обычном листинге директорий); и, конечно, патчить системы — все четыре перечисленные уязвимости ядра 2026 года, Sudo до версии 1.9.5p2 или новее, Polkit против CVE-2021-4034, а также любые оставшиеся установки IIS 6.0 WebDAV.
Похожие развёртывания Hermes можно вычислять по характерному заголовку сервера "HermesWebUI" в веб-панели — поиск по этой строке дал около 5900 событий сканирования за месяц по состоянию на 23 июля, согласно отчёту , хотя это подсчёт обнаружений, а не уникальных машин. Более надёжный индикатор — папка /hermes-results/, куда агенты записывают результаты с предсказуемыми именами файлов: такой поиск в тот же день дал 575 совпадений в индексе открытых директорий , каждое из которых представляет пару «хост — файл».
Разоблачила оператора не какая-то система контроля над ИИ, а обычная ошибка конфигурации — включённый листинг директорий. С точки зрения атакуемой стороны команды в шелле и используемые инструменты выглядят одинаково независимо от того, кто их выполняет: живой человек или агент, оставленный работать без присмотра. Обычная командная строка попросту не покажет, есть ли за ней кто-то в данный момент.


Новое на сайте

Ссылка