Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Project-CVE-2026-33017 — CVE-2026-33017 - Exploit RCE non autenticato in Langflow | Kitploit
Strumenti/GitHubGitHub/e4zyy/project-cve-2026-33017
RicognizioneMeccanismi di PersistenzaAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPost-ExploitCommand and ControlStrumento di Accesso RemotoSviluppo Payload
GitHube4zyy/project-cve-2026-33017

Project-CVE-2026-33017

CVE-2026-33017 - Exploit RCE non autenticato in Langflow

9h 34m faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Vedi Repository
Condividi

Script Langflow CVE-2026-33017 — Spiegazione del Codice

codificato da: Xer0TLabs x Persephrak Decentralized Syndicate

Scopo di questo documento

Questo documento è una spiegazione di alto livello del programma Python fornito, per revisione, risposta agli incidenti e analisi difensiva. Intenzionalmente non include istruzioni operative, indicazioni sulla selezione dei target, esempi di payload o procedure per ottenere accesso a un sistema.

Lo script si definisce come un exploit per una presunta vulnerabilità di esecuzione remota di codice non autenticata in Langflow. Questo README descrive ciò che il codice tenta di fare; non valida in modo indipendente l'identificativo CVE, le versioni interessate, il comportamento degli endpoint, gli advisory dei vendor o l'efficacia dello script.

Comportamento generale

Il programma è strutturato come uno strumento di automazione da riga di comando che tenta di inviare dati JSON appositamente costruiti a un endpoint HTTP di Langflow. La sua premessa dichiarata è che Python controllato dall'utente, incorporato in una definizione di flusso, verrà elaborato dall'applicazione remota.

Se questa premessa regge su un target, lo script è progettato per trasformarla in esecuzione arbitraria di comandi del sistema operativo. Oltre a un controllo di esecuzione di base, contiene routine progettate per stabilire persistenza, creare una sessione remota interattiva, eseguire comandi di ricognizione e generare localmente una coppia di chiavi SSH.

Poiché queste capacità potrebbero compromettere sistemi senza autorizzazione, il codice deve essere trattato come potenzialmente dannoso o come strumento a duplice uso. Non deve essere eseguito contro sistemi a meno che l'attività non sia esplicitamente autorizzata e disciplinata da un ambito di test definito.

Componenti principali

Import e comportamento TLS

Il programma importa moduli Python standard per l'analisi degli argomenti, la gestione JSON, le richieste HTTP, i socket, i thread, l'esecuzione di sottoprocessi e l'accesso ai file.

Disabilita globalmente la normale verifica dei certificati TLS tramite ssl._create_unverified_context. Ciò fa sì che le richieste HTTPS accettino certificati non validi o non attendibili. Sebbene a volte presente nel codice di test, questo è pericoloso in produzione perché indebolisce la protezione contro l'intercettazione e l'impersonificazione.

Classi Colors e Logger

Colors definisce sequenze di escape ANSI per terminale utilizzate per stampare output colorati.

Logger è una piccola classe di utilità che stampa messaggi informativi, di successo, di avviso e di errore. Il suo metodo banner() visualizza il titolo dello script, la presunta vulnerabilità, la presunta gamma di prodotti interessati, la gravità e lo stato CISA KEV. Queste affermazioni sono testo di presentazione nel programma e non sono prova che le affermazioni siano accurate.

Classe CVE202633017Exploit

Questa è la classe principale. Quando viene inizializzata:

  • Memorizza l'URL target fornito e rimuove una barra finale.
  • Aggiunge un prefisso http:// se manca.
  • Imposta un identificativo di flusso predefinito.
  • Costruisce un percorso di richiesta per un endpoint pubblico di build di flusso.
  • Utilizza un timeout HTTP di 30 secondi.

L'ID di flusso predefinito è un valore fisso simile a un UUID. Il programma consente di sovrascriverlo tramite un'opzione da riga di comando.

Costruzione del payload

_build_malicious_payload(command) crea un oggetto JSON che assomiglia a un grafo di flusso con un nodo. Il nodo è marcato come CustomComponent e include codice sorgente Python in un campo code.

Il sorgente inserito tenta di invocare un comando del sistema operativo. Prima prova un'API Python e ripiega su una chiamata a sottoprocesso se si verifica un errore. La struttura JSON viene quindi restituita al codice di invio della richiesta.

Questa è la logica principale dell'exploit: presuppone che il servizio ricevente esegua il codice inviato durante l'elaborazione del grafo.

Routine di richiesta HTTP

_send_exploit_request(payload_data) serializza il payload come JSON ed effettua una richiesta HTTP POST all'endpoint costruito. Include intestazioni convenzionali simili a quelle di un browser e restituisce sia il testo del corpo della risposta sia lo stato HTTP.

Gli errori HTTP vengono catturati e restituiti anziché terminare il programma. Altre eccezioni, come errori di connessione o timeout, vengono convertite in stringhe e restituite con stato 0.

Controllo della vulnerabilità

check_vulnerability() invia un payload contenente un comando marcatore e poi tratta sia una risposta HTTP riuscita sia qualsiasi risposta contenente la parola error come prova che il target "sembra vulnerabile".

Questo non è un metodo di verifica affidabile. Una risposta 200, una risposta 500 o un errore dell'applicazione possono verificarsi per molte ragioni non correlate all'esecuzione del codice. Lo script non osserva in modo indipendente l'output del marcatore, quindi può produrre falsi positivi.

Esecuzione di un singolo comando

execute_command(command) avvolge il comando fornito nel payload di flusso dannoso e lo invia. Interpreta HTTP 200 o 500 come un possibile esito positivo.

Ancora una volta, i codici di stato da soli non dimostrano l'esecuzione remota di comandi. Da una prospettiva di revisione difensiva del codice, questo metodo tenta di rendere lo strumento flessibile consentendo a un operatore di fornire comandi OS arbitrari.

Routine di persistenza della chiave SSH

_build_ssh_payload() e inject_ssh_key() sono progettate per modificare la configurazione SSH remota e i file delle chiavi autorizzate. Le azioni tentate includono la creazione di directory SSH, l'aggiunta di una chiave pubblica SSH, la modifica dei permessi, la modifica delle impostazioni del demone SSH, il riavvio del servizio SSH, la creazione di un meccanismo di persistenza basato su cron e la rimozione di artefatti della cronologia della shell.

Questi sono comportamenti di persistenza ed elusione delle difese, non un controllo benigno della vulnerabilità. Il programma può dichiarare il successo semplicemente in base a uno stato HTTP, senza confermare che un file o un servizio sia stato effettivamente modificato.

Routine di reverse shell

_build_reverse_shell_payload() assembla molteplici meccanismi di fallback progettati per indurre il target a avviare una connessione di rete in uscita verso un host e una porta controllati dall'operatore.

spawn_reverse_shell() avvia un listener TCP locale in un thread in background, attende brevemente, invia il payload remoto e poi attende una connessione.

_start_listener() accetta una connessione e fornisce un semplice ciclo di comandi interattivo. Questa è una capacità di accesso remoto. Ha una gestione degli errori limitata, non autentica la connessione in entrata e non è adatta per amministrazione sicura o infrastruttura di test legittima.

Routine a catena completa

full_exploit_chain() combina molteplici comportamenti:

  • Tenta il debole controllo della vulnerabilità.
  • Invia comandi di ricognizione del sistema operativo.
  • Tenta facoltativamente la persistenza della chiave SSH.
  • Avvia facoltativamente il flusso di lavoro della reverse shell.

L'elenco di ricognizione è progettato per rivelare identità, privilegi, informazioni sul sistema operativo, file, processi, servizi in ascolto, account e attività pianificate. Questa è una caratteristica dell'enumerazione post-compromissione.

Generazione locale di chiavi SSH

generate_ssh_key_pair(key_path) invoca il programma locale ssh-keygen per creare una coppia di chiavi RSA a 4096 bit se i file richiesti non esistono già.

Crea un commento sulla chiave che fa riferimento al presunto CVE ed è progettato per supportare la funzione di persistenza SSH. Questo influisce sulla macchina su cui viene eseguito lo script stesso, non sul target remoto.

Interfaccia a riga di comando

main() definisce le opzioni da riga di comando per la selezione del target, un ID di flusso, l'esecuzione di un singolo comando, la gestione delle chiavi SSH, le impostazioni della reverse shell, l'esecuzione a catena completa, la generazione automatica delle chiavi e l'output verboso.

Il codice esegue solo una validazione limitata. Ad esempio, le modalità reverse shell e catena completa richiedono un host e una porta locali. Non valida autorizzazione, ambito, proprietà del target, sicurezza dell'URL o se il target sia effettivamente un'istanza Langflow.

Problemi di affidabilità e qualità del codice

  • Il controllo della vulnerabilità non prova l'esecuzione del codice e potrebbe etichettare erroneamente un target come vulnerabile.
  • Lo script disabilita la verifica dei certificati, esponendo le proprie richieste all'intercettazione.
  • Tratta gli errori del server come possibili successi, rendendo gli esiti ambigui.
  • Diversi moduli e variabili importati sono inutilizzati o solo parzialmente utilizzati.
  • La variabile encoded_key viene calcolata ma mai utilizzata.
  • La logica di persistenza SSH presuppone percorsi, gestori di servizi, permessi e layout di configurazione che potrebbero non esistere.
  • La costruzione dei comandi e l'uso delle virgolette sono fragili e possono fallire con caratteri speciali.
  • Il listener della reverse shell è semplicistico, privo di autenticazione e inaffidabile per I/O interattivo.
  • Il flusso di lavoro a catena completa invia azioni potenzialmente distruttive o altamente invasive senza una conferma robusta o un rollback.
  • Lo script non contiene registrazione di audit, applicazione dell'ambito, limitazione della velocità o salvaguardie appropriate per uno strumento di test autorizzato.

Rilevanza difensiva

I team di sicurezza che revisionano questo codice dovrebbero trattare quanto segue come indicatori di tentata exploitazione o attività post-compromissione:

  • Attività HTTP POST diretta a un endpoint pubblico di build di flusso.
  • Definizioni di flusso contenenti codice sorgente inatteso di componenti personalizzati.
  • Processi figlio avviati dall'account di servizio Langflow.
  • Modifiche inattese ai file delle chiavi autorizzate SSH, alla configurazione del demone SSH, alle voci cron o ai file della cronologia della shell.
  • Connessioni TCP in uscita insolite originate dall'host Langflow.
  • Esecuzione di comandi di scoperta del sistema da parte del processo o dell'account di servizio Langflow.

Per le decisioni di remediation, fare affidamento sugli advisory di sicurezza ufficiali di Langflow, sulle note di rilascio e sul processo di gestione delle vulnerabilità della propria organizzazione piuttosto che sulle dichiarazioni di versione e gravità incorporate in questo script.

Gestione responsabile

Non eseguire o ridistribuire questo programma come strumento di distribuzione o accesso. Se è stato trovato su un sistema, conservarlo come prova, registrare hash e timestamp, limitare l'accesso alla copia, ispezionare i log di servizio e di rete pertinenti e seguire il processo di risposta agli incidenti dell'organizzazione.

Per una valutazione autorizzata legittima, utilizzare un ambito scritto, un piano di validazione non distruttivo, una condizione di arresto documentata e un report incentrato sulla remediation. Evitare persistenza, reverse shell, modifiche alle credenziali, cancellazione della cronologia o qualsiasi azione che possa interrompere i sistemi o lasciare accessi non autorizzati.

Scarica lo strumento