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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2021-21300 — 대소문자 구분 없는 파일 시스템에서 악성 Git 훅을 통한 CVE-2021-21300 임의 코드 실행을 시연하며, 익스플로잇 단계와 방어 조치를 포함합니다. | Kitploit
도구/GitHubGitHub/sizvy/cve-2021-21300
Vulnerability AnalysisExploitationWeb Application ExploitationPapers & ResearchLearning & EducationBinary Exploitation
GitHubsizvy/cve-2021-21300

CVE-2021-21300

대소문자 구분 없는 파일 시스템에서 악성 Git 훅을 통한 CVE-2021-21300 임의 코드 실행을 시연하며, 익스플로잇 단계와 방어 조치를 포함합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2021-21300: 악성 Git 훅을 통한 임의 코드 실행

📌 요약

CVE-2021-21300은 심볼릭 링크와 대소문자 구분 없는 파일 시스템을 악용하여 공격자가 피해자 시스템에서 임의 코드를 실행할 수 있게 하는 Git(버전 2.14.2~2.30.1)의 치명적인 취약점입니다.


🧠 문제 설명

  • 취약점: 악성 Git 훅을 통한 임의 코드 실행.
  • 근본 원인: 대소문자 구분 없는 파일 시스템(예: Windows/macOS)은 A/post-checkout을 .git/hooks/post-checkout으로 해석합니다.
  • 영향: 공격자는 사용자가 감염된 저장소를 클론할 때 악성 훅을 주입하고 실행할 수 있습니다.

🔍 이론적 배경

트릭

Git은 .git/hooks/에 저장된 사용자 정의 훅을 허용합니다. 대소문자 구분 없는 파일 시스템에서는:

  • A/post-checkout과 같은 교묘하게 제작된 폴더가 .git/hooks/post-checkout으로 해석될 수 있습니다.
  • 심볼릭 링크가 A/를 .git/hooks/로 대체하여 제한을 우회합니다.
  • 악용 방법

    1. 디렉터리 A와 악성 명령이 포함된 파일 A/post-checkout을 생성합니다.
    2. 해당 디렉터리와 내용을 Git에 스테이징합니다.
    3. 디렉터리를 제거하고 A를 .git/hooks/에 대한 심볼릭 링크로 교체합니다.
    4. Git이 A/post-checkout을 실행할 때 실제로는 .git/hooks/의 악성 파일을 실행합니다.

    ⚠️ 트리거 조건

    • 대소문자 구분 없는 파일 시스템(Windows/macOS).
    • .git/hooks/에 대한 심볼릭 링크.
    • 전역 Git LFS 필터가 활성화되어 있음.
    • 피해자가 악성 코드를 실행할 권한이 있음.

    🛠️ 공격 절차

    악성 저장소 생성

    • A/post-checkout에 대한 LFS 처리를 트리거하도록 .gitattributes를 생성합니다.
    • 악성 스크립트 A/post-checkout(예: "PWNED" 출력)을 추가합니다.
    • 정상적으로 보이도록 가짜 파일 A/a, A/b를 추가합니다.
    • A/를 .git/hooks/에 대한 심볼릭 링크로 교체합니다.
    • 변경 사항을 커밋하고 푸시합니다.

    🛡 기존 방어 대책

    구성 기반

    • 심볼릭 링크 추종 비활성화:
      root@kitploit:~
      git clone -c core.symlinks=true
      git config --system core.symlinks true
      

    ##💡 기타 잠재적 방어 대책

    • Git 별칭으로 안전한 클론 자동화

    • 디렉터리를 생성합니다.

    • 대소문자 구분 활성화(Windows):

      root@kitploit:~
      fsutil file setcasesensitiveinfo <DESTINATION FOLDER> enable
      
    • 해당 디렉터리에 클론합니다.

    • 더 안전한 클론을 위해 이러한 단계를 자동화하는 Git 별칭을 생성합니다.

    도구 다운로드