
Alguns laboratórios analisando a vulnerabilidade de backdoor do xz (CVE-2024-3094)
Laboratórios práticos e seguros para entender o backdoor na cadeia de suprimentos do xz-utils — criados para defensores, estudantes e membros de blue team.
[!WARNING] Este projeto lida com malware real, encontrado na natureza (o backdoor do xz 5.6.0 / 5.6.1). Ele é fornecido estritamente para educação defensiva e pesquisa autorizada. Tudo roda em uma máquina convidada descartável e isolada, sem rota para a internet. Não execute esses artefatos em uma máquina que você valoriza, em uma rede que você não controla ou contra qualquer sistema que você não esteja autorizado a testar. Consulte SECURITY.md.
| Lab | O que ele faz | Executa o payload? |
|---|---|---|
| Lab 1 — Inspecionar | Inicie uma sandbox descartável, obtenha o tarball malicioso offline e veja o disfarce: o diff do build-to-host.m4 entre git e tarball, os payloads dos test fixtures, o marcador mágico. | Não — apenas inspeção estática |
| Lab 2 — Detonar | Construa uma rede isolada de três VMs (analyst / compromised / normal, sem Docker). Do jumpbox do analyst, faça SSH para ambos os hosts para comparar latência e pcaps, e então acione o sshd com backdoor em compromised com sua própria chave Ed448 (via xzbot) para RCE de root pré-autenticação — enquanto normal permanece imune. | Sim — VMs isoladas, offline, sua chave |
Uma campanha de engenharia social de dois anos concedeu a um mantenedor malicioso autoridade de lançamento sobre o xz-utils. O payload foi incluído apenas no tarball de lançamento (não no git), oculto em test fixtures, e ativado em tempo de compilação em sistemas x86-64 com glibc. Em tempo de execução, ele usava um hook IFUNC da glibc em RSA_public_decrypt (alcançável via sshd → libsystemd → liblzma) para dar ao detentor da chave RCE pré-autenticação — um comando oculto no módulo RSA de um certificado SSH, criptografado com ChaCha20 e assinado com Ed448. Não é C2 nem um login mágico. Foi detectado por Andres Freund em 29 de março de 2024 por meio de uma lentidão de ~500 ms no SSH, antes de chegar às distros estáveis.
make setup # install/preflight checks (Multipass or Docker, tcpdump, etc.)
make lab1 # inspection sandbox
make lab2 # build the isolated 3-VM detonation network, then: multipass shell analyst
make clean # tear everything down, purge VMs / pcaps / generated keys
Os pré-requisitos e os guias passo a passo de cada laboratório estão em docs/.
sshd com backdoor do Lab 2 faz bind apenas em loopback / bridge interna, e o laboratório se recusa a rodar se o convidado conseguir alcançar a internet.MIT.