1. Enumeration
: Port scanning
: smb share enum (rabbit hole)
> 파일 형식 확인
> 파일 업로드 테스트
> 별거 없음
: Web enum
> 소스 내 힌트 확인
> 접근해 보면
> 더 파보면
> 사용자 계정 정보 확인이 가능
2. Exploitation
위 계정 중 하나로 ssh 로그인을 시도하면
침투 성공!
3. Privilege Escalation
: crontab backup file 확인해 보면
> root 디렉터리 하위에서 실행되는 스크립트라
내용 확인은 안되지만 여튼 실행되는 중
> /git-server 경로가 있는 것 같다!
# /git-server 공략
1) git 사용자가 존재하며 /git-server 디렉터리 존재 확인
2) /git-server 내 files 확인
> git backend 파일들이라 정확한 내용 확인이 어려움
3) git 복제 작업 후 파일 재확인
> backups.sh 내용 확인 완료
4) git log 확인
> 별 내용 없음
5) 추정
: cron 설정 다시 확인
> backups.sh에서 변화가 생기면
저장소의 master brance에 수행된 변경 사항을
pull 해 주는 것으로 추론할 수 있음
# git의 기능을 활용한 공략법
: 공격에 필요한 코드를 backups.sh에 넣어주고
변경 사항을 master branch에 push 해 준다.
1) Git ID 생성
2) 스크립트 업데이트 테스트
3) 업데이트된 스크립트 commit 전 실행 권한 부여
4) 변경 사항을 추가 및 커밋하고 master branch로 push
> rejected!!! 변경 불가 확인
5) git 사용자 디렉터리 내 ssh 키 존재 확인
> id_rsa.pub이랑 authorized_keys는 동일한 파일
> id_rsa 키를 복사해 ssh 로그인 시도!
git 쉘이기 때문에 명령어 사용이 제한됨!
6) /git-server clone 작업
> 이제 변경 사항을
master branch로 push 시도해 본다.
7) 먼저 (다시) git ID 생성
8) backups.sh 스크립트 내
리버스 쉘 구문 삽입 후 실행 권한 부여
9) 변경사항 추가 후 커밋 시도
10) push 전에 리스너 기동해 주고
11) 마지막, master branch로 push 시도!
12) crontab 내용대로 pull.sh 스크립트가
2분마다 실행되고 backups.sh 스크립트는
3분마다 실행되니, 도합 5분을 기다리면
backups 스크립트 내 리버스 쉘 구문이
실행되면서
포트 설정을 잘못해 실패;;
위 과정을 다시 반복한 뒤 기다리면
끝
참고로 pull.sh 내용은~
'OSCP > Proving Ground' 카테고리의 다른 글
36. Nickel (GET TO WORK) - Windows (pdfcrack, ssh-port-forward, scp 파일 전송) (0) | 2022.09.01 |
---|---|
35. Banzai (GET TO WORK) - Linux (mysql, sys_exec(), lib_mysqludf_sys) (0) | 2022.08.29 |
33. Hetemit (GET TO WORK) - Linux(**) (0) | 2022.08.28 |
32. Breakout (GET TO WORK) - Linux (gitlab*, mount) (1) | 2022.08.27 |
31. Matrimony (GET TO WORK) - Linux (dig, DNS zone transfer, docker*) (0) | 2022.08.26 |