РАЗБОР Статья

Этичный хакинг: RCE, ботнет и грань закона

Сергей Попов
Сергей Попов Red Team · 6,7 тыс. сообщений
Подписаться
967
[ обложка статьи ]
Режим чтения
Расколотый керамический глобус на чёрном антистатическом коврике: в изломе видна плотная сеть миниатюрных плат роутеров и серверов — скрытая ботнет-армия. На поверхности лазером выгравирована надпи...


Три критические RCE с CVSS 9.8 - CVE-2025-24893 в XWiki Platform, CVE-2020-8515 в роутерах DrayTek Vigor, CVE-2020-5722 в Grandstream UCM6200 - прямо сейчас в каталоге CISA KEV с пометкой actively exploited. У всех трёх EPSS в top 1%: вероятность эксплуатации в ближайшие 30 дней выше 84%. На авторизованном пентесте корпоративной wiki я наткнулся на CVE-2025-24893 - eval injection без аутентификации, один GET-запрос до RCE. Полез в Shodan оценить масштаб: больше тысячи публичных XWiki-серверов без патча. Часть уже с подозрительными callback-ами. И тут встал вопрос, который техническими навыками не решается: массово пропатчить чужие серверы - или координировать ответственное раскрытие уязвимостей и ждать, пока ботнет-оператор опередит патч?

Три CVE с CVSS 9.8: от уязвимости к ботнет-армии​

Бизнес-логика атакующих определяет urgency реагирования. Устройства с заводскими паролями, протухшими прошивками и выставленными наружу панелями управления дают initial access за секунды - Exploit Public-Facing Application (T1190). Скомпрометированные хосты перепродаются как residential proxy, используются для DDoS-as-a-Service, раздачи ransomware или криптомайнинга. Ботнет Hoaxcalls распространялся именно через CVE-2020-8515 и CVE-2020-5722, по данным Unit 42 (Palo Alto Networks) - с тремя векторами DDoS: UDP flood, DNS flood и HEX flood. В 2016 году ботнет Mirai из IoT-устройств ударил по DNS-провайдеру Dyn через OS Exhaustion Flood (T1499.001, Impact по ATT&CK), положив X, Reddit и Netflix. Камера за $30 без пароля - часть армии.

CVE-2025-24893: eval injection в XWiki без аутентификации​

XWiki Platform - open-source wiki для корпоративных баз знаний. Уязвимость сидит в эндпоинте SolrSearch: параметр text передаётся в движок рендеринга без нейтрализации. Произвольный Groovy-код, инжектированный через URL, исполняется на сервере с правами процесса XWiki. Один GET-запрос - и ты внутри:
Код:
GET /xwiki/bin/get/Main/SolrSearch?media=rss&text=%7D%7D%7D%7B%7Basync%20async%3Dfalse%7D%7D%7B%7Bgroovy%7D%7Dprintln(%22RCE_TEST%22)%7B%7B/groovy%7D%7D%7B%7B/async%7D%7D HTTP/1.1
Host: target:8080
Тройная закрывающая скобка }}} вырывается из текущего контекста рендеринга, блок {{groovy}} исполняет код на сервере. Уязвимость попадает сразу под CWE-95 (Eval Injection - код инжектируется в динамически оцениваемое выражение) и CWE-94 (Code Injection - более широкая категория). CVSS-вектор: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - сетевой доступ, низкая сложность, никаких привилегий, никакого участия пользователя, полный impact на confidentiality, integrity и availability.

CISA внесла CVE-2025-24893 в каталог KEV 30 октября 2025 года с предписанием "Apply mitigations per vendor instructions or discontinue use""Примените меры по снижению рисков в соответствии с указаниями поставщика или прекратите использование" и дедлайном 20 ноября. SSVC-решение: Act (exploitation: active, automatable: yes, technical impact: total). На AlienVault OTX - 50 pulses с тегом actively_exploited_kev. EPSS: 0.9997, percentile 0.9998. На Exploit-DB два рабочих эксплойта: EDB-52136 (Al Baradi Joy, апрель 2025) и EDB-52429 - модуль Metasploit (Maksim Rogov, сентябрь 2025). Порог эксплуатации снижен до трёх команд в msfconsole: use exploit/multi/http/xwiki_eval_injection -> set RHOSTS -> run.

Проверка версии XWiki на авторизованном хосте: curl -s https://target/xwiki/rest -H 'Accept: application/json' - в ответе ищите поле version. Если версия попадает в affected - фиксируете в отчёте и рекомендуете emergency patching.

IoT-вектор: DrayTek и Grandstream в цепочке ботнета​

CVE-2020-8515 затрагивает DrayTek Vigor2960 1.3.1_Beta, Vigor3900 1.4.4_Beta, Vigor300B (несколько бета-версий): RCE от root через shell metacharacters в cgi-bin/mainfunction.cgi. CVSS 9.8, CWE-78 (OS Command Injection). Эксплуатируется in the wild с 27 марта 2020 года - более 2400 дней непрерывной активной эксплуатации. EPSS: 0.9999. CISA KEV с ноября 2021 года. Исправлено в v1.5.1. Пять лет - и до сих пор находятся непатченные экземпляры. Это к вопросу о том, как быстро обновляются IoT-устройства.

CVE-2020-5722 - SQL-инъекция без аутентификации в HTTP-интерфейсе Grandstream UCM6200. Позволяет выполнять shell-команды от root на версиях до 1.0.19.20 или инжектировать HTML в emails восстановления пароля на версиях до 1.0.20.17. CVSS 9.8, CWE-89 (SQL Injection). EPSS: 0.8429.

Оба CVE в CISA KEV, оба получили SSVC-решение Act (патчить немедленно), оба использовались для распространения ботнета Hoaxcalls. Третья версия Hoaxcalls, по данным Radware, распространялась с 75 серверов одновременно - добавив неисправленную уязвимость ZyXEL Cloud CNM SecuManager как новый вектор. Атакующие наращивают поверхность быстрее, чем вендоры закрывают дыры.

Правовые рамки takedown ботнета: этичный взлом и закон​

1793419054570.webp

Этика хакинга упирается в один критерий: авторизация. Техническая разница между построением ботнета и его ликвидацией минимальна. Один и тот же PoC для CVE-2025-24893 может запустить println("RCE_TEST") или Runtime.getRuntime().exec("rm -f /tmp/botpayload"). Payload разный, TTPs идентичные. Для суда разница не в коде, а в наличии юридического основания.

Rule 41 и судебные ордера: как FBI легально ломает роутеры​

В США ключевой механизм takedown ботнетов - поправки 2016 года к Rule 41 Federal Rules of Criminal Procedure. До 2016 года судьи могли выдавать ордера на обыск цифровых устройств только в пределах своего округа. Поправки позволили выдавать nationwide warrants - разрешение на копирование, изъятие и удаление данных с устройств в любой точке страны, если те заражены malware.

По данным анализа Lawfare Media, этот механизм применялся в нескольких disruption-операциях:

Volt Typhoon / KV botnet (январь 2024). PRC-группировка использовала ботнет из сотен домашних роутеров Cisco и Netgear - устаревших, без security updates от вендора - для разведки критической инфраструктуры США. ФБР перехватило контроль, используя "собственные функции малвари" для идентификации заражённых нод и "коммуникационные протоколы malware" для отправки команды самоудаления. По сути - массовый RCE на частных устройствах, санкционированный судом.

Fancy Bear (февраль 2024). GRU Military Unit 26165 использовала ботнет из домашних роутеров для сокрытия вредоносного трафика. ФБР по ордеру удалило malware с частных устройств.

Hafnium / Exchange (2021). После эксплуатации zero-day в Microsoft Exchange для установки web shell'ов Microsoft выпустил патч, но многие не обновились. ФБР использовало сами web shell'ы для отправки команды самоудаления. Юрист James Dempsey, по данным того же анализа Lawfare, отметил: правительство "перешло Рубикон" - впервые удалённо зашло на компьютеры лиц, не подозреваемых в правонарушениях, и удалило код с уведомлением постфактум.

Ключевой момент: ФБР действовало по судебному ордеру, с контролем со стороны суда. Исследователь без ордера получает уголовное дело, каким бы благородным ни был мотив.

Российское право: самовольный патчинг устройств = состав преступления​

В российском законодательстве аналога Rule 41 для исследователей не существует. Статьи 272-273-274 УК РФ криминализируют неправомерный доступ к компьютерной информации (272), создание и распространение вредоносных программ (273), нарушение правил эксплуатации средств хранения и обработки информации (274).

Суд оценивает не результат, а факт доступа без авторизации. Если пентестер обнаруживает CVE-2025-24893 на чужом XWiki-сервере и отправляет PoC-запрос для "проверки" - это потенциальный состав ст. 272, даже если цель была подтвердить наличие уязвимости. Мотивация "я хотел предотвратить ботнет" не исключает уголовную ответственность.

ПараметрСША (Rule 41)Россия (ст. 272-274 УК)
Механизм авторизации takedownNationwide warrant (судебный ордер)Нет механизма для исследователей
Кто выполняет disruptionФБР / правоохранителиПравоохранители (через ГосСОПКА)
Роль исследователяПередача данных, техническая экспертизаПередача данных в НКЦКИ / CERT
Самовольный патчингНезаконен без ордера (CFAA)Незаконен (ст. 272 УК)
Проверка PoC на чужом хостеНезаконна без авторизацииНезаконна без авторизации

Практический вывод: самовольный патчинг чужих устройств в российской юрисдикции - уголовное преступление вне зависимости от мотивации. Даже если обнаружен активный ботнет IoT устройств. Даже если промедление приведёт к масштабной DDoS-атаке. Закон тут однозначен.

Ответственное раскрытие уязвимостей: workflow для пентестера​

1793419133451.webp

Если желание "всё равно что-то сделать" сильнее инстинкта самосохранения - ниже workflow, который не заканчивается уголовным делом. Этот процесс - единственный путь, где белый хакинг остаётся белым.

Пять шагов от находки до патча​

  1. Recon и fingerprinting - только пассивно. Оцениваете масштаб уязвимости через Shodan, Censys, поисковые дорки. Не отправляете PoC на чужие серверы. Фиксируете количество потенциально затронутых хостов - это нужно для приоритизации в отчёте для CERT. Отправка payload на хост без авторизации - уже потенциальный состав правонарушения. Тут я видел, как у коллег чесались руки "просто проверить" - не надо.
  2. Документация без эксплуатации. Создаёте отчёт: описание уязвимости, затронутые версии, вектор атаки, impact. Включаете CVSS-вектор и EPSS-оценку - для CVE-2025-24893 EPSS 0.9997 сразу сигнализирует о критической urgency. Скриншоты и логи - только с авторизованного хоста (scope пентеста, bug bounty программа вендора). Как отмечает анализ ITU Online, "permission is not a courtesy in ethical hacking - it is the legal foundation""В этичном хакинге разрешение - это не проявление вежливости, а правовой фундамент", и это не красивая фраза, а прямое следствие законов о компьютерных преступлениях.
  3. Уведомление вендора или CERT. Отправляете отчёт напрямую вендору (security@vendor) или через национальный CERT. В России - НКЦКИ (ГосСОПКА), для международных продуктов - CERT/CC, JPCERT, NCSC-UK. Стандартный дедлайн disclosure policy: 90 дней до публичного раскрытия. Для уязвимостей с активной эксплуатацией (actively exploited по KEV) - обсуждайте сокращённый таймлайн с координатором.
  4. Координация публикации. После выхода патча публикуете advisory с деталями. До патча - никаких PoC в открытом доступе. Публичный PoC для CVE с EPSS 0.9997 превратит тысячи серверов в ботнет до того, как администраторы успеют обновиться. По CISA SSVC, для CVE-2025-24893 решение - Act: exploitation active, automatable yes. Атакующие уже автоматизировали эксплуатацию. Гонка со временем - реальна.
  5. OPSEC исследователя. Зашифрованные каналы связи с вендором (PGP/S-MIME). Не обсуждайте детали уязвимости удаленного выполнения кода в публичных чатах до выхода патча. Храните всю переписку с вендором и CERT - это доказательство добросовестности при потенциальных вопросах от правоохранителей. В российской юрисдикции фиксируйте каждое действие документально: timestamp, описание, обоснование. Правовые риски пентестера реальны даже при полном соблюдении disclosure policy.

Vigilante хакинг: почему "этичная RCE для защиты" - ловушка​

Аргумент "я нашёл ботнет - я его обезврежу" звучит героически. Уголовное право не оперирует категориями героизма.

По MITRE ATT&CK техника T1190 (Exploit Public-Facing Application, Initial Access) описывает и действия оператора ботнета, и действия ФБР при takedown. D3FEND предлагает контрмеры на стороне защиты: Inbound Session Volume Analysis (D3-ISVA) для обнаружения аномалий, Protocol Metadata Anomaly Detection (D3-PMAD) для выявления нестандартных паттернов протоколов, Network Traffic Filtering (D3-NTF) и Inbound Traffic Filtering (D3-ITF) для блокировки вредоносного трафика. Все эти меры работают на стороне владельца инфраструктуры или CERT - не на стороне "этичного атакующего без ордера".

Ранний опыт takedown ботнета Coreflood (2011, по данным Lawfare Media) показателен: ФБР сократило количество заражённых машин в США с почти 800 000 до менее 100 000, информируя интернет-провайдеров об IP-адресах заражённых устройств. Провайдеры уведомляли абонентов и давали инструменты для очистки. Медленнее, чем "один скрипт на asyncio" - зато никого не посадили. 100 000 машин остались заражёнными, и это показало ограничения добровольного подхода.

Единственный безопасный путь при обнаружении массовой RCE уязвимости - координация через правоохранителей и CERT. Передайте данные в НКЦКИ, предоставьте техническую экспертизу, дайте fingerprinting-данные для идентификации уязвимых хостов - и позвольте людям с судебными ордерами (или хотя бы с юридическим основанием) делать disruption. Это не трусость. Это OPSEC.

Этичный хакинг RCE ботнет - тема, где технические навыки вторичны. Я знаю исследователей, которые находили массовую RCE, видели тысячи уязвимых хостов и физически не могли остановиться на disclosure. Руки тянутся к клавиатуре: "один Python-скрипт с asyncio пропатчит тысячу серверов за час". Технически - да. Но правовые последствия не масштабируются обратно: один запрос без авторизации - один эпизод, тысяча запросов - тысяча эпизодов. Уголовная ответственность за взлом растёт линейно с каждым хостом.

Парадокс в том, что текущая правовая рамка объективно тормозит оперативную нейтрализацию ботнетов. Между обнаружением критической RCE с EPSS 0.9997 и выходом патча проходят недели - за это время атакующие уже собрали армию. Координация через CERT работает, но медленно. Индустрии нужен формализованный механизм accelerated disclosure для CVE с EPSS выше 0.95: ускоренный процесс с участием CERT, вендора и исследователя, где timeline сжимается до дней вместо месяцев. Пока такого механизма нет - остаётся координированное раскрытие с полной документацией каждого шага. Если интересно посмотреть, как eval injection превращается в полноценный RCE на живом стенде - на HackerLab (ХакерЛаб) есть лабы под web-эксплуатацию, формула на бумаге понятна, но injection по-настоящему ощущается, когда сам прогоняешь payload.
Полезно

Комментарии

0