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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2023-0386-OverlayFS — Copy fake in-memory files to disk using overlayFS | Kitploit
도구/GitHubGitHub/pwncone/cve-2023-0386-overlayfs
Privilege EscalationVulnerability AnalysisExploitationLearning & EducationBinary Exploitation
GitHubpwncone/cve-2023-0386-overlayfs

CVE-2023-0386-OverlayFS

Copy fake in-memory files to disk using overlayFS

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2023-0386 - OverlayFS / FUSE

원본 CVE 소스는 xkaneiki 작성: https://github.com/xkaneiki/CVE-2023-0386/tree/main

익스플로잇을 1개의 셸에서 실행할 수 있도록 다시 작성됨 (원래 익스플로잇은 2개의 셸 필요).

root@kitploit:~
# Compile
make all
# Create mount point for fuse filesystem
mkdir -p /tmp/fusepwn/lower
# Start fuse (which serves a SUID binary)
./fuse /tmp/fusepwn/lower
# Run exploit (which copies fuse's fake SUID binary onto disk with real SUID privs via overlayfs)
./exp
# Run shell
/tmp/fusepwn/upper/bin

정리

root@kitploit:~
# unmount fuse filesystem
fusermount -u /tmp/fusepwn/lower
# remove all 
rm -rf /tmp/fusepwn
# unmount overlayfs (root only. not required)
umount /tmp/fusepwn/merge

참고

  • findmnt를 사용하여 마운트된 파일 시스템 확인
  • overlayfs 마운트는 root만 볼 수 있음 (이유는 확실하지 않음)

작동 방식

fuse.c는 /tmp/fusepwn/lower에 마운트된 fuse 파일 시스템을 생성하고 root 소유의 가짜 SUID 바이너리를 제공합니다. 이것은 인메모리 파일 시스템이므로 권한 설정에 대해 거짓말을 할 수 있습니다.

그런 다음 exp.c는 /tmp/fusepwn에 overlayfs 마운트를 생성하고 가짜 SUID 바이너리(/tmp/fusepwn/lower/bin)를 엽니다. 열리면 overlayfs가 copy-up을 수행하여 가짜 SUID 바이너리를 실제 SUID 권한과 root 소유로 디스크에 기록합니다.

취약점은 overlayfs가 하위 파일 시스템에서 제공하는 모든 파일 권한을 맹목적으로 신뢰한다는 점에 있습니다. 하위 파일 시스템이 커널이라면 괜찮습니다 (root 권한 없이 조작할 수 없기 때문). 하위 파일 시스템을 사용자가 조작할 수 있다면 문제가 됩니다. FUSE를 사용하는 것처럼 파일이 무엇인지 속일 수 있기 때문입니다.

패치

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4f11ada10d0ad3fd53e2bd67806351de63a4f9c3

패치는 파일의 UID/GID가 사용자의 네임스페이스 내에서 유효한지 확인합니다. 유효하지 않으면 copy-up이 실패합니다.

예:

  • 우리는 bob입니다
  • proc/self/uid_map에서 1000(bob의 UID)을 0(root)으로 매핑하여 root로 새 네임스페이스를 생성합니다
  • root 소유 파일에 대해 copy-up을 트리거하려고 시도합니다
  • overlayfs는 bob의 매핑을 확인하고 사용자의 네임스페이스가 실제로 파일처럼 0(root)이 아닌 1000(bob)임을 확인하고 copy-up을 실패시킵니다

유용한 자료

  • 도움이 되는 블로그: https://engineering.facile.it/blog/eng/write-filesystem-fuse/
  • FUSE 구현 예제: https://man.openbsd.org/fuse_main.3

다이어그램

diagram

도구 다운로드