모의해킹&웹취약점진단/CVE 공부

Gitstack RCE 취약점(CVE-2018-5955)

sheow13 2024. 5. 1. 16:08
728x90

Gitstack RCE 취약점(CVE-2018-5955)

- Gitstack 2.3.10 버전에서 사용자에 대한 검증을 수행하지 않아 인증되지 않은 사용자가 사용자 이름, Repositories 생성, RCE 코드 삽입 등이 가능한 취약점.

※ gitstack이란 : 윈도우 환경에서 git 서버를 쉽게 설치할 수 있도록 도와주는 프로그램

- CVSS(Common Vulnerability Scoring System) : 9.8/10

- 영향받는 버전 : Gitstack 2.3.10

 

  Gitstack RCE 취약점 실습 환경

- Win7 환경에서 Gitstack 2.3.10 다운로드 받아 진행

- 실습 환경 및 교육 자료는 조정원 대표님이 운영하고 있는 '보안 프로젝트'에서 참조하였으며, 자세한 사항 및 다양한주제의 강의들을 많이 배울 수 있음

 Gitstack RCE 취약점 진행 절차

Step 1. Win7에서 Gitstack 설치 진행 및 Kali Linux에서 Gitstack RCE PoC 코드 다운로드 진행

[Win7 환경에서 Gitstack 2.3.10 버전 다운로드 후 Gitstack 정상 동작 확인]

 

[exploitdb에서 gitstack RCE PoC 코드 다운로드]

 

Step 2. Kali Linux에서 공격 코드 실행 시, 정상적으로 시스템 명령어가 동작함을 확인.

공격 코드 분석 시,  HTTP 요청으로 사용자 생성, Repository 생성을 진행하고 OneLine Webshell을 업로드 진행 후, 시스템 명령을 수행하는 것을 확인.

이를 통해 Gitstack 2.3.10 버전의 경우, 사용자 생성 및 Repository 생성 등은 Gitstack에 등록된 계정 Session을 가진 사용자만 해당 작업 등을 진행해야 하지만, 인증하지 않은 사용자들도 HTTP 요청 등을 통해 사용자 생성 등의 작업이 가능하여 해당 공격이 수행되고 있음을 확인할 수 있음.

 

[PoC 코드 실행 시, 시스템 명령 정상 동작 확인 및 시스템 계정으로 실행되고 있음을 확인]

 

[Gitstack 관리 페이지 접근 시, 사용자 및 Repositories에 'rce' 생성 확인]

 

[PoC 코드 내에 사용자 생성을 HTTP 요청으로 생성 진행함을 확인]

 

[Repositories 생성 및 Repository에 사용자 등록을 HTTP 요청으로 진행함을 확인]
[Oneline Webshell 형태로 exploit.php를 업로드 후, 시스템 명령을 수행하는 코드 수행]

 

[희생자 환경에서 exploit.php 파일 업로드 됨을 확인]

 

 

 

 Gitstack RCE 취약점 조치 방안

- Gitstack 최신 버전으로 업데이트

- Git 서버를 외부에 Open할 필요가 없을 경우, 외부에서 접근 못하도록 설정 또는 인가된 사용자만 접근할 수 있도록 접근 제어 정책 구축

- 보안 장비에서 탐지 정책 수립