개인적으로 침투테스트 시 내부망에 액세스하면 우선 순위로 내부에서 사용중인 CI/CD 툴인 jenkins, gitlab, bitbucket 등을 탐색한다. 발견 이후에도 알려진 CVE가 모두 패치된 버전을 사용하여 익스하지 못한 경험이 있는데, 추후 이런 상황에서 좀더 스마트하게 내부 시스템을 장악하고자 취약한 환경의 CI/CD 환경인 cicd-goat을 통해 CI/CD pipeline에서 발생할 수 있는 11가지의 취약점 시나리오를 CTF 형태로 진행한다.
이번 포스트에서는 Easy 단계의 Duchess을 진행한다.
Wonderland/duchess레포에서 PyPi 토큰을 찾는것이 목표이다. 힌트의 내용 중 과거에 실수가 있었을 수 있다.
라는 문구에 곧 바로 GitLeaks 도구가 떠올랐다.
TIP : 웹 서비스 경로 중
https://example.com/.git/
경로가 노출되면 Gitdump를 통해 소스코드를 덤프할 수 있으며 해당 코드에서 발견된 정보는 침투에 이용될 수 있다.
Wonderland/duchess 레포를 clone하여 해당 경로에서 gitleaks를 통해 탐색을 진행한다.
gitleaks detect -v
43f216c2268a94ff03e5400cd4ca7a11243821b0
커밋에서 pypi 토큰이 확인된다.
clone한 레포를 pypi 토큰이 노출된 커밋으로 되돌린다.
git reset --hard 43f216c2268a94ff03e5400cd4ca7a11243821b0
.pypirc
파일에 pypi 토큰이 하드코딩되어있어 이를 확인할 수 있다.