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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
copyfail-rs — # CVE-2026-31431용 Rust 익스플로잇 AF_ALG splice를 통한 Linux 커널 페이지 캐시 쓰기 프리미티브로, /etc/passwd 패치 또는 셸코드 실행을 통해 루트 권한 상승을 가능하게 합니다. | Kitploit
도구/GitHubGitHub/boos4721/copyfail-rs
Privilege EscalationExploit FrameworksVulnerability AnalysisExploitationLearning & EducationPayload DevelopmentBinary Exploitation
GitHubboos4721/copyfail-rs

copyfail-rs

# CVE-2026-31431용 Rust 익스플로잇 AF_ALG splice를 통한 Linux 커널 페이지 캐시 쓰기 프리미티브로, /etc/passwd 패치 또는 셸코드 실행을 통해 루트 권한 상승을 가능하게 합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

copyfail-rs

CVE-2026-31431(Copy Fail)의 Rust 구현 — AF_ALG splice를 통한 Linux 커널 페이지 캐시 쓰기 프리미티브.

中文文档 / Chinese README

CVE-2026-31431

Linux 커널의 algif_aead 구현은 권한이 없는 사용자가 splice() 시스템 콜을 통해 읽기 가능한 모든 파일의 페이지 캐시에 임의의 데이터를 쓸 수 있게 합니다. authencesn AEAD 알고리즘은 seqno_lo(사용자 제어 AAD 바이트 4-7)를 오프셋 assoclen + cryptlen의 대상 scatterlist에 기록하며, 이는 splice()를 통해 페이지 캐시 페이지에 연결될 때 임의의 4바이트 쓰기를 초래합니다. 디스크의 콘텐츠는 변경되지 않지만, 이후 모든 읽기 작업은 손상된 페이지 캐시 데이터를 보게 됩니다.

영향을 받는 커널: Linux < 6.12.23, < 6.13.11, < 6.14.2

기능

플래그설명
--check안전한 사전 점검: 확인된 su 대상을 검사하고 종료
--escalate페이지 캐시의 /etc/passwd를 패치하여 root 비밀번호를 제거한 후 su root 실행
--set-password먼저 권한 상승 후, stdin에서 새 root 비밀번호를 읽어 chpasswd로 적용
--uid/etc/passwd에서 현재 사용자의 UID를 0으로 변경한 후 su <username> 실행
--backup <path>덮어쓰기 전에 su 바이너리 백업
--exec <path>덮어쓰기 후 root로 특정 명령 실행

권한 상승 모드

1. --uid — 페이지 캐시 쓰기를 통해 /etc/passwd의 현재 사용자 UID 필드를 0000으로 변경합니다. 패치 후, 자신의 비밀번호로 su <username>을 실행하면 root 셸이 열립니다. 이 도구는 인증 후 셸 시작 전에 페이지 캐시를 비우려 시도하므로, SSH가 계정을 계속 UID 0으로 인식할 가능성을 줄입니다. root 비밀번호 수정이 필요 없습니다. 4자리 UID(1000-9999) 모두에서 작동합니다.

2. --escalate — 페이지 캐시 쓰기를 통해 /etc/passwd의 root 줄을 패치합니다: root:x:0:0:root:... → root::0:0:root :.... 줄 길이를 동일하게 유지하기 위해 주석 필드에 공백이 채워집니다. 패치 후, su root는 비밀번호 없이 작동합니다.

3. --set-password — 먼저 권한을 상승시키고(root 비밀번호 제거), 그 다음 stdin에서 새 비밀번호를 읽어 chpasswd로 적용합니다.

4. 기본 모드(플래그 없음) — su 바이너리의 페이지 캐시를 아키텍처별 셸코드 페이로드(x86_64, x86, aarch64)로 덮어쓴 후 su를 실행하여 root 셸을 획득합니다.

빌드

root@kitploit:~
cargo build
cargo build --release
cargo test
cargo clippy

사용법

root@kitploit:~
./copyfail-rs --check
./copyfail-rs --uid
./copyfail-rs --escalate
printf '%s\n' 'mypassword' | ./copyfail-rs --set-password
./copyfail-rs --backup /tmp/su.bak
./copyfail-rs --exec /bin/bash

복구

페이지 캐시 수정은 휘발성입니다 — 캐시를 비우면 원래 디스크 콘텐츠가 복원됩니다:

root@kitploit:~
echo 3 > /proc/sys/vm/drop_caches

검증 환경

문서

  • 빠른 시작
  • 취약점 원리
  • 데모
  • 방어 및 완화

라이선스

이 프로젝트는 공인된 보안 테스트 및 교육 목적으로만 제공됩니다.

도구 다운로드
OS커널결과
Ubuntu 22.04.2 LTS6.8.0-87-generic--escalate 통과, --set-password 통과, --uid 통과
Ubuntu 22.04.2 LTS6.8.0-107-generic--escalate 통과, --uid 통과
Ubuntu 25.106.17.0-5-genericsplice EINVAL, 커널 패치됨
Ubuntu 25.106.17.0-8-generic--uid 통과
Alpine Linux edge6.19.12익스플로잇 실행됨, 페이지 캐시 쓰기가 커널 수정으로 차단됨