
Dockerfile 및 Kubernetes 매니페스트: CVE-2024-3094 재현용
CVE-2024-3094 재현을 위한 Dockerfile 및 Kubernetes 매니페스트
취약한 xz 유틸리티의 debian 버전을 기본 이미지로 사용합니다. 또한 라이브러리를 패치해야 합니다. 패치된 liblzma 라이브러리 버전은 xzbot 저장소에서 가져왔습니다.
FROM debian:experimental-20240311@sha256:16cc2b09c44d991d36f63153f13a7c98fb7da6bd2ba9d7cc0f48baacb7484970
# use debian with a vulnerable version of xz utils as the base image
RUN apt-get update && apt-get install -y openssh-server
RUN mkdir /var/run/sshd
RUN echo 'root:root123' | chpasswd
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
RUN sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
EXPOSE 22
COPY liblzma.so.5.6.0.patch /root/
# in order to exploit the vulnerability you must use a patched library because
# the exploit author originally hardcoded his public key
# in the patched library this key has been swapped out
ENV LD_PRELOAD=/root/liblzma.so.5.6.0.patch
# load the patched library via LD_PRELOAD
CMD ["/usr/sbin/sshd", "-D"]
먼저, 이전 단계에서 만든 이미지로 간단한 Pod를 배포해야 합니다:
apiVersion: v1
kind: Pod
metadata:
name: cve-2024-3094
labels:
app: cve-2024-3094
spec:
containers:
- name: cve-2024-3094
image: r0binak/xzk8s:v1
ports:
- containerPort: 22
그런 다음, 포트를 포워딩합니다:
kubectl port-forward backdoor-cve-2024-3094 2222:22
xzbot 익스플로잇을 사용해 보겠습니다:

마지막으로, 컨테이너 내부로 들어가 익스플로잇 결과를 확인해 보겠습니다:
