Перенос RCE на плк WAGO с помощью Claude

Исследователи Forescout Research – Vedere Labs с помощью Claude от Anthropic перенесли готовый эксплойт с программируемого логического контроллера WAGO 750-852 на WAGO 750-831 с прошивкой V01.04.16. На реальном устройстве удалось добиться удалённого выполнения кода без аутентификации: контроллер исполнил переданный исследователями ARM-шеллкод. Эксперимент не был автономным. Специалист постоянно направлял Claude Code, которому предоставили исходный эксплойт, бинарный файл прошивки и физический WAGO 750-831. Агент имел доступ к терминалу, инструменту обратной разработки Ghidra и самому контроллеру.
В основе атаки лежала CVE-2021-31886, критическая ошибка переполнения стека в FTP-сервере Nucleus. Уязвимость срабатывает при неправильной обработке команды USER, доступна до входа в систему и атакуется через TCP-порт 21. Siemens присвоила ей 9,8 балла по шкале CVSS. CVE-2021-31886 входила в набор из 13 уязвимостей NUCLEUS:13, который Forescout и Medigate раскрыли в ноябре 2021 года. Nucleus поддерживает Siemens, поэтому одна и та же ошибка могла затронуть разные устройства, использующие этот сетевой стек.
Работа началась на Claude Sonnet 4.6, но первые попытки получить RCE зашли в тупик, и исследователи переключились на Claude Opus 4.6. Эксплойт для WAGO 750-852 нельзя было просто запустить на новой модели: обычная обработка FTP-команд в WAGO 750-831 обнуляла 256 байт подконтрольного атакующему буфера. Вместе с ними стирался шеллкод, не успевавший перейти к исполнению. Здесь и понадобился разбор прошивки, поведения FTP-сервера и отличий конкретной реализации.
На WAGO 750-852 использовалась последовательность USER, затем QUIT. Claude заменил вторую команду на CWD и убрал стандартное завершение строки CRLF, то есть возврат каретки и перевод строки. По объяснению Forescout, отсутствие CRLF «не позволяло соответствующему пути обработки завершиться обычным образом». Буфер перестал очищаться в критический момент, и ARM-шеллкод сохранялся достаточно долго для запуска. Это была небольшая на вид правка протокольной последовательности, но именно она отделяла неработающий перенос от выполнения кода.
Сначала исследователи подтвердили управление потоком выполнения при помощи NOP-шеллкода, состоящего из операций без действия. Переход от него к двум рабочим нагрузкам занял у Claude 12 минут. Первая отправляла ICMP echo-запросы на систему под контролем атакующего. Вторая посылала UDP-пакет со строкой PWNED. Код выполнялся в контексте callback-функции приёма Ethernet-пакетов, что накладывало ограничения. Демонстрация закончилась передачей сетевых пакетов: полноценный устойчивый имплант и более широкий контроль над технологическим процессом получены не были.
Финальная стадия разработки RCE заняла 8 часов 32 минуты и обошлась в 535,74 доллара за обращения к API. Это не выглядело ни дешёвым, ни быстрым способом работы для квалифицированного исследователя. Forescout сформулировала оценку прямо: «Можно утверждать, что тот же исследователь сумел бы выполнить первоначальный перенос RCE без ИИ быстрее и с меньшими затратами, заодно сохранив контроллер в рабочем состоянии». Claude ускорял отдельные переходы, например создание полезной нагрузки, но требовал длительного контроля и уже готовой технической базы.
Контроллер действительно сохранить не удалось. В следующем сеансе команда попыталась превратить эксплойт в имплант командования и управления, C2. Во время этой работы агент выполнил запись в область памяти, отображённую на флеш-накопитель, после чего WAGO 750-831 оказался необратимо выведен из строя. По оценке Forescout, «более непосредственный риск состоит не в том, что агент самостоятельно решит атаковать контроллер, а в том, что авторизованный агент совершит ошибочное действие в физической системе, где сбой имеет реальные эксплуатационные последствия». На промышленном объекте цена такой записи могла бы измеряться уже не стоимостью лабораторного ПЛК.
В первом сеансе Claude заметил ещё одну возможную ошибку в цикле извлечения FTP-команд. Она, по предварительному ручному разбору, отличается от CVE-2021-31886 и может оказаться отдельной, ранее неизвестной уязвимостью. Forescout отложила находку для самостоятельного исследования, поэтому CVE-идентификатора у неё пока нет. Формулировка лаборатории осторожна: проверка «позволила предположить, что это может быть отдельная, ранее не выявленная уязвимость».
Готовый общедоступный эксплойт CVE-2021-31886 обнаружить не удалось. The Hacker News провела 1 сентября поиск по GitHub и не получила результатов по этому идентификатору; поиск охватывал названия и описания репозиториев, но не содержимое файлов. Записи также отсутствовали в Exploit-DB и Packet Storm. Эти проверки говорят лишь о том, что легко находимого публичного кода в перечисленных источниках на тот момент не было. Они не доказывают отсутствие закрытых разработок, файлов с иным названием или эксплойтов, размещённых вне этих площадок.
Для затронутых контроллеров WAGO у CERT@VDE нет исправляющего обновления: «В настоящий момент обновления для этой версии отсутствуют». Владельцам оборудования рекомендовано отключить FTP на порту 21 либо заблокировать доступ к нему, разделить сеть на сегменты и отслеживать аномалии трафика. Статус WAGO 750-882 и WAGO 750-885/0xx-xxx остаётся неясным: обе модели пропущены и в разделе мер снижения риска, и в таблице исправлений соответствующего бюллетеня. В документации Siemens сказано, что для всех версий Nucleus NET исправление не планируется, тогда как выпуски Nucleus ReadyStart V3 начиная с V2013.08.1 уже содержат исправление CVE-2021-31886.
Ранее Vedere Labs показывала на нескольких уязвимостях контроллеров Schneider Electric Modicon, как RCE можно объединить с другими ошибками и получить глубокое боковое перемещение внутри сети операционных технологий, OT. Тогда Forescout писала, что рассмотренные уязвимости «вероятно, не должны находиться в верхней части вашего списка приоритетов». Распространение ИИ-инструментов заставляет пересматривать такой расчёт: адаптация промышленного эксплойта всё ещё требует специалиста, аппаратуры и времени, но часть трудоёмкого анализа агент способен взять на себя. Неназванные ведомства отдельно оценили неуточнённую активность как вероятную подготовку к длительной разведке и развитию возможностей, не приписав её конкретному государству, группе или оператору. В совместном бюллетене ведомств сказано: «Использование ИИ для создания сценариев эксплуатации представляет собой развитие возможностей субъектов угрозы, резко снижая техническую квалификацию и время, необходимые для разработки рабочих сценариев эксплуатации ICS и вредоносных инструментов». ICS здесь означает промышленные системы управления.
Отдельная серия атак показала, что сложный RCE нужен злоумышленникам далеко не всегда. Федеральное бюро расследований США, FBI, и Агентство по охране окружающей среды, EPA, сообщили об атаках на предприятия водоснабжения как минимум в семи штатах, происходивших с 27 июля. В некоторых случаях работа коммунальных систем ухудшилась. Целями стали доступные из интернета контроллеры Rockwell Automation MicroLogix: атакующие меняли их IP-адреса и пароли. Программную уязвимость они не эксплуатировали. Устройства уже были выставлены наружу и настроены так, что посторонние могли менять параметры напрямую.


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

Ссылка