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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
google-osconfig-privesc — Google의 Osconfig에서 식별된 권한 상승 취약점에 대한 개념 증명 | Kitploit
도구/GitHubGitHub/irsl/google-osconfig-privesc
Privilege EscalationVulnerability AnalysisExploitationPost-ExploitationPenetration TestingCloud SecurityRed Teaming
GitHubirsl/google-osconfig-privesc

google-osconfig-privesc

Google의 Osconfig에서 식별된 권한 상승 취약점에 대한 개념 증명

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

요약

google_osconfig_agent 프로세스는 GoogleCloudPlatform(https://github.com/GoogleCloudPlatform/osconfig)의 구성 요소로, 각 VM에서 기본적으로 실행되는 도구입니다. 에이전트는 root로 실행되며 사용자가 제어할 수 있는 일부 서비스를 담당하며, OS config(https://cloud.google.com/compute/docs/os-config-management)를 포함합니다. 이는 Google의 폴링 기반 원하는 상태 구성의 일종입니다.

이 저장소는 제가 구현에서 발견한 권한 상승 취약점에 대한 데모를 호스팅합니다(이후 Google에 의해 수정되었습니다).

문제

실행할 작업을 레시피라고 하며, 지원되는 레시피 유형 중 하나는 셸 스크립트를 실행하는 것입니다. 이러한 레시피를 처리하는 동안 전체 기능을 갖춘 root로 실행되는 에이전트는 파일을 임시로 /tmp 디렉터리에 저장한 다음 실행합니다. 에이전트가 생성한 디렉터리는 가로챌 수 있으므로 실행될 스크립트를 교체할 수 있으며, 결과적으로 로컬 권한 상승으로 이어집니다.

재현 단계

  1. 환경 준비:
root@kitploit:~
        gcloud services enable osconfig.googleapis.com 
        gcloud compute project-info add-metadata --metadata=enable-osconfig=TRUE    
  1. VM에서 낮은 권한 사용자(nobody)로 익스플로잇 스크립트 실행
root@kitploit:~
        # cat /tmp/poc.txt
        cat: /tmp/poc.txt: No such file or directory

        # pip3 install inotify_simple
        # chroot --userspec=nobody:nogroup / /home/radimre83/osconfig-privesc-poc3.py
        Running as 65534
        calling inotify.read()
        ...
  1. os-config 정책 구성:
root@kitploit:~
        gcloud beta compute os-config guest-policies create test-policy-poc --file="C:\Projects\gcp-app-engine-experiments\compute-engine\osconfig-policy-poc.yaml"
  1. runscript가 배포될 때 poc 스크립트의 출력(10~15분 소요될 수 있음):
root@kitploit:~
        Event(wd=1, mask=1073742080, cookie=0, name='recipe-runscript')
        New recipe: recipe-runscript2, rename: /tmp/osconfig_software_recipes.mali1596821311/xxx-recipe-name -> /tmp/osconfig_software_recipes.mali1596821311/recipe-runscript
        New rundir recipe-runscript2, rename: /tmp/osconfig_software_recipes.mali1596821311/recipe-runscript/xxx-rundir -> /tmp/osconfig_software_recipes.mali1596821311/recipe-runscript/run_1596821899000709826
  1. 확인:
root@kitploit:~
        # cat /tmp/poc.txt
        uid=0(root) gid=0(root) groups=0(root),1000(google-sudoers)

OS: 기본 Debian 10 이미지를 사용하는 GCE의 f1-micro 인스턴스.

수정 사항

Google은 예측 가능한 임시 디렉터리 대신 무작위 임시 디렉터리를 사용하도록 전환했습니다.

해결 방법

수정된 버전은 2020-09-05에 릴리스되었습니다. OS 패키지를 업그레이드해야 합니다.

공격 시나리오

이는 로컬 권한 상승 취약점으로, 영향을 받는 GCE VM에서 이미 코드 실행 권한이 있는 사람이 악용할 수 있습니다:

  • 낮은 권한 셸을 가진 사용자

  • 이미 침해된 네트워크 서비스를 통한 공격자

핵심은 "기본 디렉터리"(/tmp/osconfig_software_recipes)를 장악하는 것입니다. 현재 세션에서 아직 레시피가 처리되지 않은 경우에 가능하며, 즉 다음을 의미합니다:

  • 지금까지 레시피가 전혀 실행되지 않은 경우(예: osconfig 기능이 사용되지 않았지만 나중에 어느 시점에 사용될 예정인 경우)

  • VM이 재부팅되고 모든 레시피가 DB(/var/lib/google/osconfig_recipedb)에 존재하지만, 일부 정책 업데이트는 나중에 어느 시점에 실행되는 경우

이 특수한 조합은 실제로 악용 가능성을 낮추지만, 여기서 /tmp의 작업 디렉터리를 활용하는 것은 안전하지 않다고 생각합니다. (Google도 마찬가지였으며, 이 문제는 이후 수정되었습니다.)

타임라인

2020-08-07: 문제 발견 및 보고

2020-08-08: Google이 문제 분류, 우선순위 P1로 변경

2020-08-10: Google이 문제 확인("🎉 Nice catch!"), 우선순위 P2로 변경, 심각도 S2로 변경

2020-08-14: VRP 프로세스에 대한 업데이트

2020-09-05: Google이 문제 수정

크레딧

Imre Rad

링크

https://github.com/GoogleCloudPlatform/osconfig

https://issuetracker.google.com/issues/163147689

https://github.com/GoogleCloudPlatform/osconfig/commit/fa7e4ba5ee85be212ffbac66d96862c792bd270c

https://www.linkedin.com/in/imre-rad-2358749b/

도구 다운로드