
Research of CVE-2024-3094 vulnerability.
Este repositório contém os resultados da análise da vulnerabilidade crítica CVE-2024-3094 (backdoor na biblioteca liblzma do pacote xz-utils, que leva a RCE através do processo OpenSSH).
No âmbito do projeto, foi preparado um ambiente de teste isolado, desenvolvido um modelo de ameaças e escritas verificações automatizadas.
Dockerfile — Script de construção do ambiente (Debian Bookworm) com todas as dependências (OpenSSH, Python 3, venv, pytest, pwntools).tests/ — Diretório com testes automatizados (pytest):
test_vulnerability.py / tests_vulnerability.py — testes de integração da funcionalidade SSH e testes Mock para verificar o comportamento do sistema de deteção do backdoor.exploit/ — Scripts Proof of Concept (PoC) para emulação do ataque.docs/ — Modelo de ameaças (Threat Model) em formato Markdown e gráficos.reports/ — Relatórios dos resultados da análise estática/dinâmica.Todos os testes e investigações são realizados num contentor Docker isolado, de modo a não colocar em risco o sistema anfitrião.
A imagem configura um servidor SSH (com a palavra-passe root:screencast) e prepara um ambiente virtual Python com todas as bibliotecas necessárias.
docker build -t cveanalysis:20243094 .
O contentor é executado em segundo plano. A porta SSH interna (22) é encaminhada para a porta 2222 da máquina anfitriã.
docker run -d -p 2222:22 --name cve-test cveanalysis:20243094
Para executar todos os ficheiros de teste (test_vulnerability.py e tests_vulnerability.py), execute o comando a partir da sua máquina anfitriã:
docker exec -it cve-test pytest -v tests/*
O que os testes verificam:
root:screencast).Se pretender testar os scripts da pasta exploit/ (ou ligar-se via SSH manualmente) a partir da sua máquina anfitriã, utilize a porta encaminhada 2222:
# Exemplo de entrada manual
ssh [email protected] -p 2222
# Palavra-passe: screencast
# Exemplo de execução do seu script PoC (se necessitar de execução externa)
python3 exploit/PoC.py 127.0.0.1
Após concluir a análise, pare e remova o contentor de teste:
docker stop cve-test
docker rm cve-test