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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/e4zyy/project-cve-2026-33017
РазведкаМеханизмы персистентностиАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийПост-эксплуатацияКомандование и УправлениеИнструмент Удаленного ДоступаРазработка Полезной Нагрузки
GitHube4zyy/project-cve-2026-33017

Project-CVE-2026-33017

CVE-2026-33017 — Эксплойт неаутентифицированного удаленного выполнения кода (RCE) в Langflow

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

Популярное

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

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

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

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

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

CVE-2026-33017 Langflow Script — Пояснение кода

автор: Xer0TLabs x Persephrak Decentralized Syndicate

Назначение этого документа

Этот документ представляет собой высокоуровневое объяснение предоставленной Python-программы для анализа, реагирования на инциденты и защитного анализа. Он намеренно не содержит инструкций по эксплуатации, рекомендаций по выбору целей, примеров полезных нагрузок или процедур получения доступа к системе.

Скрипт позиционирует себя как эксплойт для заявленной проблемы неаутентифицированного удалённого выполнения кода в Langflow. Этот README описывает, что код пытается сделать; он не подтверждает независимо идентификатор CVE, затронутые версии, поведение конечных точек, рекомендации вендора или эффективность скрипта.

Общее поведение

Программа структурирована как инструмент автоматизации командной строки, который пытается отправить специально сконструированные JSON-данные на HTTP-конечную точку Langflow. Его предполагаемая предпосылка заключается в том, что управляемый пользователем Python, встроенный в определение потока, будет обработан удалённым приложением.

Если эта предпосылка выполняется на цели, скрипт предназначен для превращения её в произвольное выполнение команд операционной системы. Помимо базовой проверки выполнения, он содержит процедуры, предназначенные для установления персистентности, создания интерактивной удалённой сессии, выполнения команд разведки и генерации пары SSH-ключей локально.

Поскольку эти возможности могут скомпрометировать системы без авторизации, код следует рассматривать как потенциально вредоносный инструмент или инструмент двойного назначения. Его не следует запускать против систем, если только деятельность явно не авторизована и не регулируется определённой областью тестирования.

Основные компоненты

Импорты и поведение TLS

Программа импортирует стандартные модули Python для разбора аргументов, обработки JSON, HTTP-запросов, сокетов, потоков, выполнения подпроцессов и доступа к файлам.

Она глобально отключает обычную проверку TLS-сертификатов через ssl._create_unverified_context. Это заставляет HTTPS-запросы принимать недействительные или ненадёжные сертификаты. Хотя это иногда встречается в тестовом коде, это небезопасно в производственной среде, поскольку ослабляет защиту от перехвата и подмены.

Классы Colors и Logger

Colors определяет ANSI-последовательности терминала, используемые для вывода цветного текста.

Logger — это небольшой служебный класс, который выводит информационные сообщения, сообщения об успехе, предупреждения и ошибки. Его метод banner() отображает название скрипта, заявленную уязвимость, заявленный диапазон затронутых продуктов, серьёзность и статус CISA KEV. Эти утверждения являются презентационным текстом в программе и не являются доказательством их точности.

Класс CVE202633017Exploit

Это основной класс. При инициализации он:

  • Сохраняет предоставленный URL цели и удаляет завершающий слэш.
  • Добавляет префикс http://, если он отсутствует.
  • Устанавливает идентификатор потока по умолчанию.
  • Формирует путь запроса для публичной конечной точки сборки потока.
  • Использует 30-секундный HTTP-таймаут.

Идентификатор потока по умолчанию — это фиксированное значение, похожее на UUID. Программа позволяет переопределить его через опцию командной строки.

Конструирование полезной нагрузки

_build_malicious_payload(command) создаёт JSON-объект, напоминающий граф потока с одним узлом. Узел помечен как CustomComponent и включает исходный код Python в поле code.

Вставленный исходный код пытается вызвать команду операционной системы. Сначала он пробует один Python API и переключается на вызов подпроцесса в случае ошибки. Затем JSON-структура возвращается в код отправки запроса.

Это основная логика эксплойта: она предполагает, что принимающая служба выполнит отправленный код при обработке графа.

Процедура HTTP-запроса

_send_exploit_request(payload_data) сериализует полезную нагрузку как JSON и выполняет HTTP POST-запрос к сконструированной конечной точке. Он включает обычные заголовки, похожие на браузерные, и возвращает как текст тела ответа, так и HTTP-статус.

HTTP-ошибки перехватываются и возвращаются, а не завершают программу. Другие исключения, такие как сбои подключения или таймауты, преобразуются в строки и возвращаются со статусом 0.

Проверка уязвимости

check_vulnerability() отправляет полезную нагрузку, содержащую маркерную команду, а затем рассматривает либо успешный HTTP-ответ, либо любой ответ, содержащий слово error, как доказательство того, что цель «выглядит уязвимой».

Это не надёжный метод проверки. Ответ 200, ответ 500 или ошибка приложения могут возникать по многим причинам, не связанным с выполнением кода. Скрипт не наблюдает независимо вывод маркера, поэтому он может давать ложные срабатывания.

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

execute_command(command) оборачивает предоставленную команду в вредоносную полезную нагрузку потока и отправляет её. Он интерпретирует HTTP 200 или 500 как возможный успешный результат.

Опять же, одни только коды статуса не демонстрируют удалённое выполнение команд. С точки зрения защитного анализа кода, этот метод пытается сделать инструмент гибким, позволяя оператору предоставлять произвольные команды ОС.

Процедура персистентности SSH-ключа

_build_ssh_payload() и inject_ssh_key() предназначены для изменения удалённой конфигурации SSH и файлов авторизованных ключей. Предпринимаемые действия включают создание SSH-каталогов, добавление открытого SSH-ключа, изменение разрешений, изменение настроек демона SSH, перезапуск службы SSH, создание механизма персистентности на основе cron и удаление артефактов истории оболочки.

Это поведение персистентности и уклонения от защиты, а не безобидная проверка уязвимости. Программа может заявлять об успехе, основываясь лишь на HTTP-статусе, без подтверждения того, что какой-либо файл или служба действительно были изменены.

Процедура обратной оболочки

_build_reverse_shell_payload() собирает несколько механизмов отката, предназначенных для того, чтобы заставить цель инициировать исходящее сетевое соединение с хостом и портом, контролируемыми оператором.

spawn_reverse_shell() запускает локальный TCP-слушатель в фоновом потоке, коротко ожидает, отправляет удалённую полезную нагрузку, а затем ожидает соединения.

_start_listener() принимает соединение и предоставляет простой интерактивный цикл команд. Это возможность удалённого доступа. Она имеет ограниченную обработку ошибок, не аутентифицирует входящее соединение и не подходит для безопасного администрирования или легитимной тестовой инфраструктуры.

Процедура полной цепочки

full_exploit_chain() объединяет несколько поведений:

  • Пытается выполнить слабую проверку уязвимости.
  • Отправляет команды разведки операционной системы.
  • При необходимости пытается выполнить персистентность SSH-ключа.
  • При необходимости запускает рабочий процесс обратной оболочки.

Список разведки предназначен для раскрытия идентичности, привилегий, информации об операционной системе, файлов, процессов, прослушивающих служб, учётных записей и запланированных задач. Это характерно для перечисления после компрометации.

Локальная генерация SSH-ключа

generate_ssh_key_pair(key_path) вызывает локальную программу ssh-keygen для создания пары RSA-ключей длиной 4096 бит, если запрошенные файлы ещё не существуют.

Он создаёт комментарий к ключу, ссылающийся на заявленный CVE, и предназначен для поддержки функции персистентности SSH. Это влияет на машину, на которой запускается сам скрипт, а не на удалённую цель.

Интерфейс командной строки

main() определяет опции командной строки для выбора цели, идентификатора потока, выполнения одиночной команды, обработки SSH-ключа, настроек обратной оболочки, выполнения полной цепочки, автоматической генерации ключа и подробного вывода.

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

Проблемы надёжности и качества кода

  • Проверка уязвимости не доказывает выполнение кода и может ошибочно пометить цель как уязвимую.
  • Скрипт отключает проверку сертификатов, подвергая свои собственные запросы перехвату.
  • Он рассматривает ошибки сервера как возможный успех, делая результаты неоднозначными.
  • Некоторые импортированные модули и переменные не используются или используются лишь частично.
  • Переменная encoded_key вычисляется, но никогда не используется.
  • Логика персистентности SSH предполагает пути, менеджеры служб, разрешения и конфигурационные раскладки, которые могут не существовать.
  • Конструирование команд и кавычки хрупки и могут давать сбой со специальными символами.
  • Слушатель обратной оболочки примитивен, не имеет аутентификации и ненадёжен для интерактивного ввода-вывода.
  • Рабочий процесс полной цепочки отправляет потенциально разрушительные или крайне навязчивые действия без надёжного подтверждения или отката.
  • Скрипт не содержит журналирования аудита, контроля области действия, ограничения скорости или мер защиты, соответствующих авторизованному инструменту тестирования.

Защитная значимость

Командам безопасности, анализирующим этот код, следует рассматривать следующее как индикаторы попытки эксплуатации или активности после компрометации:

  • HTTP POST-активность, направленная на публичную конечную точку сборки потока.
  • Определения потоков, содержащие неожиданный исходный код пользовательских компонентов.
  • Дочерние процессы, запущенные учётной записью службы Langflow.
  • Неожиданные изменения файлов авторизованных SSH-ключей, конфигурации демона SSH, записей cron или файлов истории оболочки.
  • Необычные исходящие TCP-соединения, исходящие от хоста Langflow.
  • Выполнение команд обнаружения системы процессом Langflow или учётной записью службы.

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

Ответственное обращение

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

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

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