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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
pkwned — CVE-2021-4034에 대한 개념 증명 (실험적 무흔적 악용 포함) | Kitploit
도구/GitHubGitHub/dosamp/pkwned
Privilege EscalationExploit FrameworksExploitationPayload DevelopmentBinary Exploitation
GitHubdosamp/pkwned

pkwned

CVE-2021-4034에 대한 개념 증명 (실험적 무흔적 악용 포함)

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

pkwned: CVE-2021-4034에 대한 개념 증명(Proof of Concept)

이 PoC는 glibc에서 실행되는 취약한 버전의 pkexec에서 PAYLOAD_PATH(constants.h에 정의됨)를 root 권한으로 실행합니다. "GCONV_PATH=." 디렉터리에는 gconv 모듈이 포함된 디렉터리 이름과 동일한 이름의 실행 파일이 있어야 합니다.

Qualys 권고 [1]에 설명된 대로, 이는 syslog 메시지를 생성합니다. 이를 방지하기 위해 지금까지 두 가지 접근 방식을 찾았습니다:

  • g_find_program_in_path를 사용하면 pkexec가 g_file_test를 사용하여 access() 검사를 수행하고 그 후에 또 다른 명시적 검사를 수행하므로, 그 사이에 "GCONV_PATH=./gconv"를 삭제하여 log_message 없이 g_printerr를 호출하는 경쟁 조건(race condition)이 가능해집니다:

641 if (access (path, F_OK) != 0) 642 { 643 g_printerr ("Error accessing %s: %s\n", path, g_strerror (errno)); 644 goto out; 645 }

이 저장소에는 "GCONV_PATH=." 위에 FUSE 파일시스템을 마운트하는 gconv-fuse 유틸리티가 포함되어 있으며, access("gconv", X_OK) 호출 한 번 후에는 비어 있는 것처럼 보입니다. 이는 FUSE user_allow_other 구성 옵션이 활성화된 경우에만 작동합니다.

  • pkexec가 /etc/shells를 읽지 못하도록 방지할 수 있다면, 이 역시 로깅 없이 오류를 발생시킵니다:

356 if (!g_file_get_contents ("/etc/shells", 357 &contents, 358 NULL, /* gsize *length */ 359 &error)) 360 { 361 g_printerr ("Error getting contents of /etc/shells: %s\n", error->message); 362 g_error_free (error); 363 goto out; 364 }

마운트 네임스페이스를 사용하여 그 위에 읽을 수 없는 파일을 마운트할 수 있지만, 이를 위해서는 사용자 네임스페이스도 필요하며, 권한이 없는 사용자를 root로 매핑하여 pkexec의 setuid 비트를 무력화합니다(예: "unshare -r -u -m").

GLib는 g_find_program_in_path에 대한 수정 사항을 병합했으며(v2.70.3 및 v2.71.0 이후의 안정 버전에 적용될 예정), 항상 실제 전체 경로를 반환하여 이 익스플로잇을 실행 불가능하게 만들 것입니다. [2]

[1] https://www.qualys.com/2022/01/25/cve-2021-4034/pwnkit.txt [2] https://gitlab.gnome.org/GNOME/glib/-/commit/13ee46538f901a8eca8e7a4c167a8838ed0858d4

도구 다운로드