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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2021-3560-exploit — CVE-2021-3560 — accounts-daemon D-Bus 경쟁 조건을 통한 Polkit 권한 상승 익스플로잇 | Kitploit
도구/GitHubGitHub/jeanback1/cve-2021-3560-exploit
Privilege EscalationVulnerability AnalysisExploitationPenetration TestingLearning & EducationRed Teaming
GitHubjeanback1/cve-2021-3560-exploit

CVE-2021-3560-exploit

CVE-2021-3560 — accounts-daemon D-Bus 경쟁 조건을 통한 Polkit 권한 상승 익스플로잇

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2021-3560 — Polkit 권한 상승

CVE-2021-3560은 Linux 데스크톱 환경에서 사용되는 권한 부여 프레임워크인 Polkit(이전 PolicyKit)의 로컬 권한 상승 취약점입니다. 로컬의 권한이 없는 공격자는 accounts-daemon D-Bus 인터페이스의 경쟁 조건을 악용하여 권한이 있는 사용자를 생성하고, 암호를 설정한 후 궁극적으로 root 액세스 권한을 얻을 수 있습니다.


작동 방식

배경: Polkit + accounts-daemon

accounts-daemon (org.freedesktop.Accounts)은 사용자 계정(생성, 삭제, 암호 변경 등)을 관리하는 시스템 D-Bus 서비스입니다. 다음 메서드를 제공합니다:

메서드동작
CreateUser새 시스템 사용자 생성
SetPassword사용자 암호 설정
DeleteUser사용자 삭제

이러한 작업에는 인증이 필요합니다. D-Bus 호출이 도착하면 Polkit이 호출자와 accounts-daemon 사이에 위치합니다:

root@kitploit:~
호출자  →  D-Bus  →  Polkit (인증 확인)  →  accounts-daemon (작업 실행)

Polkit은 호출자에게 권한이 있는지 결정하고, 권한이 있으면 요청을 accounts-daemon으로 전달하여 실행합니다.

경쟁 조건 (Race Condition)

이 취약점은 TOCTOU (Time Of Check, Time Of Use) 경쟁 조건입니다. 핵심은 다음과 같습니다:

  1. D-Bus 메서드 호출이 accounts-daemon으로 전송됩니다 (예: CreateUser).
  2. Polkit이 이를 수신하고 인증 확인을 수행합니다. 일반적으로 Polkit 에이전트 대화 상자가 시간 초과되어 "인증되지 않음" 응답을 반환합니다. 그러나 버그로 인해 Polkit의 시간 초과/오류 처리가 특정 오류 조건을 성공으로 잘못 처리하거나 데몬 측 처리를 부분적으로 인증된 상태로 남겨둡니다.
  3. Polkit의 인증 결정이 이루어진 후 accounts-daemon이 처리를 완료하기 전에 정확히 적절한 시점에 D-Bus 호출이 종료되면, 적절한 인증 없이 사용자 생성이 진행되지만 사용자 레코드는 불완전한 상태로 끝납니다 (예: 암호 없음, 홈 디렉터리 없음).
  4. 공격자는 동일한 경쟁 조건을 사용하여 새로 생성된 (그러나 인증되지 않은) 사용자에 대해 SetPassword를 호출하거나, 불완전한 상태 자체가 상승된 권한을 부여합니다.

요약: 올바른 시점에 요청을 종료하면 인증을 우회할 수 있습니다.

익스플로잇의 기능

이 exploit.sh 스크립트는 전체 공격 체인을 자동화합니다:


사용법

root@kitploit:~
# 저장소 클론
git clone https://github.com/Jeanback1/CVE-2021-3560.git
cd CVE-2021-3560

# 익스플로잇 실행 가능하도록 설정
chmod +x exploit.sh

# 실행
./exploit.sh

익스플로잇이 완료되면 root 셸을 얻을 수 있습니다:

root@kitploit:~
whoami
# root

예시 출력

Exploit execution


취약한 버전

구성 요소영향 받는 버전
polkit≤ 0.119 (패치되지 않음)
accounts-daemon (accountsservice)영향 받는 polkit을 사용하는 모든 버전

이 취약점은 polkit 0.120 이상에서 패치되었습니다.

패치된 배포판 (일부):

  • Ubuntu 20.04+ (2021년 6월 이후 보안 업데이트 적용)
  • Debian 11+ (보안 업데이트 적용)
  • RHEL 8+ / CentOS 8+ (에라타 적용)
  • Fedora 34+

면책 조항

이 저장소는 교육 및 승인된 보안 연구 용도로만 제공됩니다. 소유하지 않거나 명시적 테스트 허가를 받지 않은 시스템에서 이 익스플로잇을 사용하지 마십시오. 저자는 오용에 대한 책임을 지지 않습니다.

도구 다운로드
단계동작
1. 시간 보정더미 CreateUser("nobody") 호출을 사용하여 D-Bus 왕복 시간을 측정하고 "종료 창"을 계산합니다
2. 사용자 생성선택한 사용자 이름으로 CreateUser 호출을 전송하고, 백그라운드에서 시작한 후 계산된 창만큼 대기한 다음 종료합니다 — 경쟁 조건을 악용하여 승인되지 않은 사용자를 생성합니다
3. 암호 설정사용자가 (불완전한 상태로) 존재하면 동일한 경쟁 조건 기법으로 SetPassword 호출을 전송하여 알려진 암호를 할당합니다
4. 권한 상승su를 사용하여 새 사용자로 전환하고, sudo를 실행한 후 (우회된 인증 경로를 통해 생성된 사용자이므로 작동함) /bin/bash를 SUID root로 /var/tmp/bash에 복사한 후 root 셸을 실행합니다