Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2024-3094 — # Laboratório educacional replicando o backdoor do XZ Utils (CVE-2024-3094) com um par de chaves Ed448 personalizado. Inclui um liblzma corrigido, serviço systemd e cliente de exploração para pesquisa de segurança autorizada. | Kitploit
Ferramentas/GitHubGitHub/h3raklez/cve-2024-3094
Análise de VulnerabilidadesExploraçãoAnálise de MalwareCriptografiaTestes de PenetraçãoSegurança da Cadeia de SuprimentosAprendizado e EducaçãoLabs e Prática
GitHubh3raklez/cve-2024-3094

CVE-2024-3094

# Laboratório educacional replicando o backdoor do XZ Utils (CVE-2024-3094) com um par de chaves Ed448 personalizado. Inclui um liblzma corrigido, serviço systemd e cliente de exploração para pesquisa de segurança autorizada.

4há 5 mesesAinda não revisado
Ver Repositório

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2024-3094 — Backdoor do XZ Utils

Apenas para fins educacionais e de pesquisa de segurança autorizada.

Descrição da vulnerabilidade

CVE-2024-3094 é um backdoor introduzido nas versões 5.6.0 e 5.6.1 do XZ Utils (liblzma), descoberto em 29 de março de 2024 pelo pesquisador de segurança Andres Freund. Foi atribuída a ele uma pontuação CVSS de 10.0 (Crítico).

Este é um ataque à cadeia de suprimentos realizado ao longo de mais de dois anos por um ator de ameaças conhecido como "Jia Tan" (JiaT75), que construiu confiança dentro do projeto até obter o status de co-mantenedor e introduziu o backdoor diretamente nos tarballs de distribuição.

Mecanismo técnico

O backdoor opera da seguinte forma:

  1. O liblzma.so malicioso faz hook da função RSA_public_decrypt() no OpenSSH por meio do mecanismo IFUNC do glibc, interceptando o processo de autenticação SSH.
  2. Quando um cliente se conecta, o backdoor avalia um campo específico no certificado SSH apresentado.
  3. Se esse campo contiver um payload criptografado com ChaCha20 e assinado com uma chave privada Ed448 específica, o backdoor executa o comando incorporado via system() com privilégios do sshd (root).
  • Se a assinatura for inválida, o sshd continua seu fluxo normal sem qualquer anomalia.
  • Requisitos de exploração

    • Sistema com glibc (suporte a IFUNC)
    • XZ Utils 5.6.0 ou 5.6.1 instalado
    • sshd iniciado via systemd (requisito crítico — o hook de IFUNC não é ativado se o sshd for iniciado manualmente a partir da linha de comando)
    • Sistema x86-64

    Distribuições originalmente afetadas

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

    Ambiente de laboratório

    Este laboratório replica o mecanismo do backdoor usando chaves Ed448 personalizadas em vez das chaves do ator original (que nunca foram tornadas públicas).

    Por que usamos chroot

    Em sistemas reais afetados, não havia chroot. O backdoor operava diretamente no sshd do sistema, que carregava o liblzma.so malicioso como qualquer outra biblioteca compartilhada — completamente transparente para o sistema e seus administradores.

    Neste laboratório, usamos chroot apenas por um motivo prático: precisamos executar um sshd com uma versão específica do liblzma.so sem substituir as bibliotecas do sistema host. Esta é uma decisão de design para o ambiente de pesquisa, não um reflexo de como o backdoor operava em produção.

    Componentes

    ComponenteDescrição
    env_fs/Sistema de arquivos Ubuntu 22.04 mínimo usado como chroot
    env_fs/usr/lib/x86_64-linux-gnu/liblzma.so.5liblzma 5.6.1 patchado com chave Ed448 personalizada
    /etc/systemd/system/xzback.serviceserviço systemd que inicia o sshd vulnerável na porta 2024
    /xzbot/xzbotcliente de exploração compilado a partir do código-fonte

    Stack do alvo

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

    Modificações feitas para este alvo

    O backdoor original exige condições muito específicas que não existem automaticamente em um ambiente de laboratório. As seguintes modificações foram necessárias:

    1. Substituição do liblzma.so

    O liblzma.so.5 incluído no repositório original do MagpieRYL usa uma chave Ed448 desconhecida que é inconsistente com o binário xzbot incluído. O liblzma.so.5.6.1 original e autêntico foi baixado do snapshot do Debian (sha256 verificado) e patchado usando patch.py do amlweems/xzbot com seed=0:

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

    A chave pública Ed448 original do ator foi substituída por:

    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 no serviço systemd

    O serviço original usa Type=notify, o que exige que o sshd envie uma notificação de inicialização ao systemd. O sshd dentro do chroot não a envia, causando timeouts. Alterado para Type=simple.

    3. Diretórios efêmeros do chroot

    O sshd exige /run/sshd para separação de privilégios. Esse diretório não existe no chroot e é apagado a cada reinicialização porque run/ é um tmpfs. Resolvido com um ExecStartPre que o regenera automaticamente antes de cada início do serviço.


    Uso

    Exploração a partir da mesma máquina

    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
    

    Exploração a partir de outra máquina

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

    Localização dos arquivos gerados pela exploração

    O comando é executado dentro do chroot, portanto qualquer arquivo criado em /tmp/ no contexto do backdoor é armazenado em:

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

    Ou seja, se o comando for echo pwned > /tmp/result, o arquivo será encontrado em:

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

    Para localizar qualquer arquivo gerado pela exploração:

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

    Nota sobre handshake failed: EOF

    A mensagem ssh: handshake failed: EOF é o comportamento esperado e correto. O backdoor executa o comando e fecha a conexão sem estabelecer uma sessão SSH. Isso não indica falha.


    Importante

    Este laboratório usa um par de chaves criptográficas personalizado (seed=0). O liblzma.so patchado só aceita payloads assinados com a chave privada correspondente, que é a usada pelo xzbot compilado neste ambiente. Qualquer outro cliente receberá EOF sem execução.


    Referências

    • Divulgação original da Openwall
    • amlweems/xzbot
    • MagpieRYL/CVE-2024-3094-backdoor-env-container
    • Análise do Datadog Security Labs
    • Wikipedia — Backdoor do XZ Utils

    Aviso legal

    Esta ferramenta é fornecida apenas para fins educacionais e testes de segurança autorizados. O uso não autorizado contra sistemas que você não possui ou para os quais não tem permissão explícita por escrito para testar é ilegal. O autor não é responsável por qualquer uso indevido.

    Baixar ferramenta