Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Project-CVE-2026-33017 — CVE-2026-33017 - Exploit de RCE no autenticado en Langflow | Kitploit
Herramientas/GitHubGitHub/e4zyy/project-cve-2026-33017
ReconocimientoMecanismos de PersistenciaAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPost-ExplotaciónComando y ControlHerramienta de Acceso RemotoDesarrollo de Payloads
GitHube4zyy/project-cve-2026-33017

Project-CVE-2026-33017

121hace 1 mesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →

CVE-2026-33017 - Exploit de RCE no autenticado en Langflow

Ver Repositorio
Compartir

CVE-2026-33017 Script de Langflow — Explicación del Código

codificado por: Xer0TLabs x Persephrak Decentralized Syndicate

Propósito de este documento

Este documento es una explicación de alto nivel del programa Python suministrado para revisión, respuesta a incidentes y análisis defensivo. Intencionalmente no incluye instrucciones de operación, orientación sobre selección de objetivos, ejemplos de payloads ni procedimientos para obtener acceso a un sistema.

El script se etiqueta a sí mismo como un exploit para un supuesto problema de ejecución remota de código no autenticada en Langflow. Este README describe lo que el código intenta hacer; no valida de forma independiente el identificador CVE, las versiones afectadas, el comportamiento del endpoint, los avisos del proveedor ni la efectividad del script.

Comportamiento general

El programa está estructurado como una herramienta de automatización de línea de comandos que intenta enviar datos JSON especialmente construidos a un endpoint HTTP de Langflow. Su premisa prevista es que el Python controlado por el usuario incrustado en una definición de flujo será procesado por la aplicación remota.

Si esa premisa se cumple en un objetivo, el script está diseñado para convertirlo en ejecución arbitraria de comandos del sistema operativo. Más allá de una verificación básica de ejecución, contiene rutinas destinadas a establecer persistencia, crear una sesión remota interactiva, ejecutar comandos de reconocimiento y generar un par de claves SSH localmente.

Debido a que estas capacidades podrían comprometer sistemas sin autorización, el código debe tratarse como una herramienta potencialmente maliciosa o de doble uso. No debe ejecutarse contra sistemas a menos que la actividad esté explícitamente autorizada y regida por un alcance de prueba definido.

Componentes principales

Importaciones y comportamiento TLS

El programa importa módulos estándar de Python para análisis de argumentos, manejo de JSON, solicitudes HTTP, sockets, hilos, ejecución de subprocesos y acceso a archivos.

Desactiva la verificación normal de certificados TLS a nivel global mediante ssl._create_unverified_context. Esto hace que las solicitudes HTTPS acepten certificados inválidos o no confiables. Aunque a veces se ve en código de prueba, esto es inseguro en producción porque debilita la protección contra la interceptación y la suplantación de identidad.

Clases Colors y Logger

Colors define secuencias de escape ANSI de terminal utilizadas para imprimir salida con colores.

Logger es una pequeña clase de utilidad que imprime mensajes informativos, de éxito, advertencia y error. Su método banner() muestra el título del script, la vulnerabilidad reclamada, el rango de productos afectados reclamado, la severidad y el estado CISA KEV. Estas afirmaciones son texto de presentación en el programa y no son prueba de que las afirmaciones sean precisas.

Clase CVE202633017Exploit

Esta es la clase principal. Cuando se inicializa, esta:

  • Almacena la URL objetivo suministrada y elimina una barra diagonal final.
  • Agrega un prefijo http:// si falta.
  • Establece un identificador de flujo predeterminado.
  • Construye una ruta de solicitud para un endpoint público de construcción de flujos.
  • Utiliza un tiempo de espera HTTP de 30 segundos.

El ID de flujo predeterminado es un valor fijo similar a un UUID. El programa permite sobrescribirlo mediante una opción de línea de comandos.

Construcción del payload

_build_malicious_payload(command) crea un objeto JSON que se asemeja a un grafo de flujo con un nodo. El nodo está marcado como un CustomComponent e incluye código fuente de Python en un campo code.

El código fuente insertado intenta invocar un comando del sistema operativo. Primero intenta una API de Python y recurre a una llamada de subproceso si ocurre un error. La estructura JSON luego se devuelve al código de envío de solicitudes.

Esta es la lógica central del exploit: asume que el servicio receptor ejecutará el código enviado mientras procesa el grafo.

Rutina de solicitud HTTP

_send_exploit_request(payload_data) serializa el payload como JSON y realiza una solicitud HTTP POST al endpoint construido. Incluye cabeceras convencionales similares a las de un navegador y devuelve tanto el texto del cuerpo de la respuesta como el estado HTTP.

Los errores HTTP se capturan y se devuelven en lugar de terminar el programa. Otras excepciones, como fallos de conexión o tiempos de espera, se convierten en cadenas y se devuelven con estado 0.

Verificación de vulnerabilidad

check_vulnerability() envía un payload que contiene un comando marcador y luego trata tanto una respuesta HTTP exitosa como cualquier respuesta que contenga la palabra error como evidencia de que el objetivo "parece vulnerable".

Este no es un método de verificación confiable. Una respuesta 200, una respuesta 500 o un error de aplicación pueden ocurrir por muchas razones no relacionadas con la ejecución de código. El script no observa de forma independiente la salida del marcador, por lo que puede producir falsos positivos.

Ejecución de un solo comando

execute_command(command) envuelve el comando suministrado en el payload de flujo malicioso y lo envía. Interpreta HTTP 200 o 500 como un posible resultado exitoso.

Nuevamente, los códigos de estado por sí solos no demuestran ejecución remota de comandos. Desde una perspectiva de revisión de código defensiva, este método intenta hacer que la herramienta sea flexible al permitir que un operador suministre comandos arbitrarios del sistema operativo.

Rutina de persistencia de clave SSH

_build_ssh_payload() e inject_ssh_key() están diseñados para modificar la configuración SSH remota y los archivos de claves autorizadas. Las acciones intentadas incluyen crear directorios SSH, agregar una clave pública SSH, cambiar permisos, modificar la configuración del demonio SSH, reiniciar el servicio SSH, crear un mecanismo de persistencia basado en cron y eliminar artefactos del historial del shell.

Estos son comportamientos de persistencia y evasión de defensas, no una verificación benigna de vulnerabilidad. El programa puede afirmar éxito simplemente basándose en un estado HTTP, sin confirmar que algún archivo o servicio fue realmente modificado.

Rutina de shell inversa

_build_reverse_shell_payload() ensambla múltiples mecanismos de respaldo destinados a hacer que el objetivo inicie una conexión de red saliente hacia un host y puerto controlados por el operador.

spawn_reverse_shell() inicia un listener TCP local en un hilo en segundo plano, espera brevemente, envía el payload remoto y luego espera una conexión.

_start_listener() acepta una conexión y proporciona un bucle de comandos interactivo simple. Esta es una capacidad de acceso remoto. Tiene manejo de errores limitado, no autentica la conexión entrante y no es adecuado para administración segura ni infraestructura de pruebas legítima.

Rutina de cadena completa

full_exploit_chain() combina múltiples comportamientos:

  • Intenta la verificación débil de vulnerabilidad.
  • Envía comandos de reconocimiento del sistema operativo.
  • Opcionalmente intenta la persistencia de clave SSH.
  • Opcionalmente inicia el flujo de trabajo de shell inversa.

La lista de reconocimiento está destinada a revelar identidad, privilegios, información del sistema operativo, archivos, procesos, servicios en escucha, cuentas y tareas programadas. Esto es característico de la enumeración posterior al compromiso.

Generación local de claves SSH

generate_ssh_key_pair(key_path) invoca el programa local ssh-keygen para crear un par de claves RSA de 4096 bits si los archivos solicitados no existen ya.

Crea un comentario de clave que hace referencia al CVE reclamado y está destinado a respaldar la función de persistencia SSH. Esto afecta a la máquina en la que se ejecuta el propio script, no al objetivo remoto.

Descargar herramienta