Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2025-2825 — Analisi dettagliata e PoC exploit per CVE-2025-2825, un bypass dell'autenticazione in CrushFTP. Include template nuclei, scanner multi-thread e script per la creazione di utenti per test di penetrazione. | Kitploit
Strumenti/GitHubGitHub/iteride/cve-2025-2825
Autenticazione e AutorizzazioneAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingSviluppo Payload
GitHubiteride/cve-2025-2825

CVE-2025-2825

Analisi dettagliata e PoC exploit per CVE-2025-2825, un bypass dell'autenticazione in CrushFTP. Include template nuclei, scanner multi-thread e script per la creazione di utenti per test di penetrazione.

Vedi Repository
1191 anno 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 →
Condividi

CVE-2025-2825/CVE-2025-31161

Introduzione

Questo documento presenta l'analisi della vulnerabilità CVE-2025-2825, che colpisce il componente server di CrushFTP, una soluzione commerciale per la gestione e il trasferimento di file (FTP, SFTP, HTTP/S, interfacce simili a S3, ecc.).

Il difetto è classificato come authentication bypass (bypass dell'autenticazione) che consente a un attaccante remoto non autenticato di ottenere privilegi di amministratore. Lo sfruttamento riuscito garantisce accesso con privilegi crushadmin, visualizzazione e modifica dei file, gestione degli account ed esecuzione di operazioni amministrative tramite l'interfaccia web e l'API di CrushFTP.

Versioni interessate segnalate (secondo advisory pubblici e report dei ricercatori):

  • CrushFTP 10.0.0 — 10.8.3
  • CrushFTP 11.0.0 — 11.3.0

⚠️ Nota: in alcune pubblicazioni si trovano duplicati e sovrapposizioni degli identificativi CVE (ad esempio, CVE-2025-31161).


Obiettivo del report

Analizzare passo dopo passo la vulnerabilità e dimostrare l'intero ciclo di ricerca, che include:

  1. Raccolta e analisi dei materiali — sistematizzazione di advisory, PoC, analisi tecniche e pubblicazioni su CVE-2025-2825; formulazione dell'essenza del difetto e del suo impatto.
  2. Determinazione di CPE e condizioni — elenco di CPE/versioni e configurazioni rilevanti in cui la vulnerabilità è riproducibile (interfacce web, endpoint compatibili S3, ecc.).
  3. Sviluppo di PoC/Exploit — preparazione di un PoC riproducibile su un ambiente controllato; descrizione dell'architettura e delle misure per ridurre al minimo i danni.
  4. Metodi di verifica su larga scala — tre approcci per la ricerca sicura di host vulnerabili:
    • scansione attiva con nuclei;
    • scansione passiva con nuclei (in base a versioni e indicatori indiretti senza sfruttamento);
    • script personalizzato (Python/Go) per la verifica controllata.
  5. Raccomandazioni e mitigazione — consigli pratici per l'individuazione, il patching e la protezione delle istanze.
  6. Pratiche sicure di test — checklist per eseguire test solo in ambienti autorizzati.

Impatto pratico

Secondo i report pubblici, la vulnerabilità presenta un rischio critico:

  • Lo sfruttamento garantisce accesso amministrativo all'istanza CrushFTP.
  • Conseguenze: furto/modifica dei file, creazione/eliminazione di utenti, installazione di backdoor, utilizzo del server per ulteriori attacchi.
  • Il CVSS è valutato come critico (circa 9.8).
  • Nella community sono stati registrati PoC e segni di sfruttamento "in the wild" (in ambiente reale).

CPE / configurazioni interessate

Sono critiche le istanze con queste caratteristiche:

  • Prodotto: CrushFTP (qualsiasi edizione con interfaccia web).
  • Versioni: 10.0.0 — 10.8.3, 11.0.0 — 11.3.0.
  • Configurazioni a rischio elevato:
    • Interfaccia web amministrativa pubblica abilitata (HTTP/S).
    • Endpoint API compatibili S3 attivati.
    • Nessuna misura di protezione aggiuntiva (filtro IP, 2FA).
    • Configurazioni errate di proxy/bilanciatori che espongono endpoint interni verso l'esterno.

Comprensione della vulnerabilità

CrushFTP implementa il supporto a un'API simile a S3. Per l'autenticazione viene utilizzato l'header Authorization nella forma:

Authorization: AWS4-HMAC-SHA256 Credential=<AccessKey>/<Date>/<Region>/s3/aws4_request, SignedHeaders=<Headers>, Signature=<Signature>

Il server estrae l'AccessKey dalla sezione Credential e dovrebbe verificare la firma. Tuttavia, nel codice è stato commesso un errore nella gestione del flag lookup_user_pass.

  • Codice vulnerabile (frammento semplificato):
// ServerSessionHTTP.java, metodo loginCheckHeaderAuth()
if (this.headerLookup.containsKey("AUTHORIZATION") &&
    this.headerLookup.getProperty("AUTHORIZATION").trim().startsWith("AWS4-HMAC")) {
    
    boolean lookup_user_pass = true;   // ← errore critico
    
    if (s3_username3.indexOf("~") >= 0) {
        user_pass = user_name.substring(user_name.indexOf("~") + 1);
        user_name = user_name.substring(0, user_name.indexOf("~"));
        lookup_user_pass = false;
    }
    
    if (this.thisSession.login_user_pass(
            lookup_user_pass,
            false,
            user_name,
            lookup_user_pass ? "" : user_pass)) {
        // Autenticazione riuscita
    }
}
  • Logica successiva:

Il flag lookup_user_pass viene passato direttamente come anyPass:

if (anyPass && user.getProperty("username").equalsIgnoreCase(the_user)) {
    return user;  // autenticazione senza verifica della password
}

In sintesi:

  • Se il nome utente è specificato senza il simbolo ~, il flag rimane true.

  • La verifica della password non viene eseguita.

  • Un attaccante può autenticarsi indicando solo un nome utente esistente (ad esempio, crushadmin).

  • Insieme a un cookie CrushAuth formalmente valido e al parametro c2f, ciò consente di bypassare l'autenticazione e ottenere accesso amministrativo.

Correzione

Nella versione 11.3.1 e successive, gli sviluppatori:

  • Hanno aggiunto il parametro s3_auth_lookup_password_supported (impostato di default su false), che blocca lo scenario vulnerabile.

  • Hanno introdotto controlli anticipati sul nome utente con ~.

  • Hanno separato la logica dei flag, eliminando la sostituzione lookup_user_pass → anyPass.

  • Raccomandazione: aggiornare immediatamente CrushFTP alla versione 11.3.1+ oppure applicare la soluzione alternativa disabilitando s3_auth_lookup_password_supported.


POC/Exploit

Lo sfruttamento di CVE-2025-2825 è piuttosto semplice e non richiede una preparazione complessa. L'attaccante deve solo inviare una richiesta HTTP appositamente predisposta contenente due elementi chiave:

  • Header Authorization in formato AWS S3, con un nome utente esistente corretto (campo Credential con AccessKey/username).
  • Cookie CrushAuth nel formato atteso e parametro c2f nell'URL/nel corpo della richiesta, i cui valori corrispondono logicamente (il formato del cookie deve corrispondere alla struttura prevista dal server).

Se il server è vulnerabile (versione compresa tra 10.0.0—10.8.3 o 11.0.0—11.3.0 e patch correttiva non applicata), questa combinazione fa sì che il gestore dell'autenticazione segua il percorso vulnerabile, in cui il flag di ricerca della password (lookup_user_pass) viene interpretato come "qualsiasi password è accettata" e l'utente viene autenticato solo tramite il nome, senza verifica della password.

Nota importante:

Lo sfruttamento di questa vulnerabilità richiede in genere l'invio di due richieste consecutive. La prima, la cosiddetta richiesta di "riscaldamento" (warm-up), avvia il processo di autenticazione vulnerabile sul server. Un segno caratteristico che il server è entrato nello stato desiderato è la ricezione di un errore 502 Bad Gateway o semplicemente il superamento del timeout. Subito dopo viene inviata la seconda richiesta, quella principale, che esegue l'azione utile (ad esempio, la creazione di un utente) mentre il server si trova nello stato vulnerabile all'attacco.

GET /WebInterface/function/?command=getUserList&serverGroup=MainUsers&c2f=1111 HTTP/1.1
Host: target-server:8080
Cookie: CrushAuth=1743113839553_vD96EZ70ONL6xAd1DAJhXMZYMn1111
Authorization: AWS4-HMAC-SHA256 Credential=crushadmin/

Per il test ho utilizzato il lab recentemente pubblicato su HTB — Soulmate, che richiede appunto lo sfruttamento di CrushFTP.

crush

Ulteriore avanzamento:

Grazie a questa vulnerabilità, è possibile aggiungere un nuovo utente con privilegi di amministratore tramite il comando setUserItem. A tale scopo, eseguire new_user.py

Scarica lo strumento