31 августа 2026 года началась кампания эксплуатации уязвимостей в серверах PaperCut, доступных из интернета. Злоумышленники использовали две уязвимости - CVE-2026-81578 и CVE-2026-82078. Первая позволяла без аутентификации менять настройки приложения, вторая - выполнить произвольный код в процессе службы PaperCut. Вместе они давали путь от простого веб-запроса до полного контроля над сервером. Атаку заметила группа Adversary Pursuit Group (APG) компании Blackpoint. Она расследовала инцидент на одном из серверов и вышла на инфраструктуру оператора.
Описание
Инфраструктура оператора оказалась плохо защищена: открытый каталог сервера содержал инструменты разработки, списки целей, результаты атак и служебные файлы. Восстановленная структура показала не разовую атаку, а долгую инженерную работу. В каталоге лежали несколько поколений эксплойтов (вредоносного кода, использующего уязвимость), скрипты для сканирования и проверки целей, а также файлы состояния с отметками времени. Эти файлы выглядели как контекст постоянного ИИ-агента: в них записано, что уже сделано, какие есть препятствия, какие шаги предстоят и какие артефакты нужны для продолжения. Рядом находились инструменты Hindsight (слой постоянной памяти для ИИ-агентов) и AionUI (интерфейс для координации агентных рабочих процессов).
Кампания, которую описала Blackpoint APG, управляла более чем 500 системами. Инструменты могли обрабатывать до 200 целей одновременно. Незавершённые или неудачные системы возвращались до 100 раундов повторных попыток. Успешные результаты при этом сохранялись между запусками. Оператор вёл отбор целей как конвейер. Несколько источников объединяли, кандидатов определяли по геолокации и фильтровали по странам. Затем проверяли доступность и удаляли уже обработанные системы. Такой подход позволял не тратить тяжёлые проверки на заведомо неподходящие серверы.
Изначально проект напоминал исследование уязвимостей. 31 августа оператор собирал рекомендации по PaperCut, сравнивал пропатченные и непропатченные сборки, искал публичные исследования. Вскоре работа перешла к локальной проверке эксплойта. Затем появился многопоточный инструмент проверки, написанный на языке Go. Он поддерживал HTTP и HTTPS, сохранял результаты в структурированном виде. Первые запуски выявили ошибки в обработке вывода и работе сессий. Разработчик добавил модульные тесты, проверку на состояние гонки и другие улучшения. Когда одно из сканирований прервали, контекст сохранился. Проект получил чёткие инженерные задачи. Нужно было добавить более дешёвый предварительный фильтр, сократить время ожидания и не тратить тяжёлую проверку на системы, которые не похожи на PaperCut.
По мере роста числа целей проект перешёл к массовой обработке. Появились очереди для систем, готовых к атаке, активных, недоступных, пропустивших отдельные этапы или ожидающих повторной попытки. Сбои классифицировали по причинам. Из 291 неудачной цели 161 система не выдала ожидаемый результат после срабатывания триггера. Ещё 60 не смогли создать администратора, 56 получили ошибку при обновлении конфигурации. Двенадцать столкнулись с превышением времени ожидания, две попали в прочие категории. Ошибки выполнения дополнительно делили: отказ в доступе Windows, отсутствие доменного контекста, не-Windows системы и редкие случаи. Такая детализация позволяла строить следующий запуск вокруг конкретной проблемы, а не повторять одно и то же действие вслепую.
Кампания не ограничилась одним путём эксплуатации. Когда прямой веб-эксплойт работал ненадёжно, оператор подключил модуль PaperCut для Metasploit. Позже появился отдельный режим с полезной нагрузкой для Windows. Масштабирование выявило новые инженерные проблемы. Например, все контейнеры пытались занять один и тот же порт, из-за чего часть полезных нагрузок не срабатывала. Инструмент изменили, чтобы каждый целевой хост получал уникальный порт. В другой раз исправление для прав локального администратора пропало после добавления обходного пути. Проверка восстановила потерянную логику. Общий код научился автоматически определять HTTP или HTTPS, что позволило завершить дополнительные цели. Проверку успеха тоже исправили: раньше инструмент считал сессию открытой до её реального появления.
Сбор учётных данных шёл по такому же принципу. Когда средства защиты блокировали вспомогательные программы, передача больших файлов реестра срывалась. Тогда оператор перешёл к сбору только небольших значений, нужных для локальной расшифровки. Оператор фиксировал все изменения и решения в файлах состояния. Они связывали этапы проекта: что завершено, что в работе, что мешает, что делать дальше и где лежат артефакты. К сентябрю рабочий набор сократился до 398 активных кандидатов. Из них 367 уже числились как неудачные или незавершённые. Ещё 31 прошли ранние этапы, но не дошли до сбора учётных данных. Отдельная проверка нашла ещё 58 успешных наборов. Двадцать семь завершённых систем перенесли в новую партию, а оставшиеся 31 отправили по более узкому пути повторных попыток.
ИИ не изобрёл новую технику эксплуатации. Его вклад оказался в другом. ИИ сокращал трудозатраты на исследование, разработку, отладку, классификацию, отслеживание и повторные попытки для сотен реальных систем. Восстановленный проект не доказывает полностью автономную атаку. Ни один файл не показывает, что модель сама нашла уязвимость нулевого дня, выбрала цели и взломала их без человека. Однако ИИ-помощь глубоко встроилась в инженерный и операционный цикл. Традиционная автоматизация умеет повторять команду или возобновлять известный этап. Здесь же проект сохранял сбои, сужал списки целей, менял код и переносил решения в следующие запуски. Защитникам стоит обновить PaperCut до последней версии и ограничить доступ к административным интерфейсам. Стоит также следить за подозрительными дочерними процессами сервера, проверять создание привилегированных учётных записей, изменения конфигурации и необычные исходящие подключения. Важнее ориентироваться на поведение, а не на статические индикаторы: имена файлов, учётных записей и портов легко меняются. Окно между раскрытием уязвимости и её эксплуатацией сокращается. Поэтому непрерывный мониторинг и быстрая реакция становятся не менее важными, чем установка патчей.
Индикаторы компрометации
Domain
- 45.142.193.132
SHA256
- 08387ff35cc7854ddea1e2106b1150e9fe80646541c95c5a7121b77c9bc0228e
- 092788c6598784d91b411dde40f274c73448f6c803f57c8d0ca85a22d0516e19
- 243de5404091bcd920041cf2f4dd22e80f2c2922022854991d2b5e0ac78f2fee
- 4cd2a9d574febb1545966561d598c57194da47b09f9175dd888e6aa5d267f91c
- 5cc0eee4a1d8dbb737838e25f1e9ae37170a54ae757c431b5d6422904538bde3
- 6106fa15dc10764114d039f26a96d793c559f04b080a27af9f2f27c2eeb391e0
- 6b5c50c2f88861943426b054fe3ff42f59ffd29d3dcf3cb1bb6c785b12077ee3
- 844d80da0d8690586f156e1793cde12b5e93a24540e511d4ddb71489cf5a8796
- b1adeecb0f2df0d66298a4f3f9a866ddf4c83731892a13ec9b97d405fd50d7b9
- b3d73d0a9d26bde03be3511e7293bf67c907fb00d5b6bb8c189a8f37b15987fe
- ca996a2dea2529a1e94d7db141259f4fc700b9ab30da36d8b479b81a9b90973b
- eb4a6a99019f5c5e35f5f3a86867ad65ff1e7338d4937544313b448172988f86
- f03e9c6b1923556269004db628e23d373e11224304e136612a61b1e7ae1b7f1f
- f5eebbce3769c8880646c6e8c26d86fbd00e21e193024295641d82c40822adcf