이번 시나리오는 7번째 Attacking private registry

컨테이너 레지스트리는 모든 컨테이너 이미지가 업로드되는 장소입니다.
대부분의 조직은 자체 프라이빗 레지스터리를 가지고 있고, 설정이 잘못되어 외부에 공개되거나 누구나 접근 가능한 상태가 됩니다.
개발자들은 이것이 내부에서만 사용하는 프라이빗 레지스터리라고 생각하고, 이미지 안에 민감한 정보를 저장해버리는 경우가 있습니다.
근데 이게 http://127.0.0.1:1235 페이지에 직접 접속이 안되더라고요.
일단 컨테이너 레지스트리에 대해 더 살펴보겠습니다.
컨테이너 레지스트리는 컨테이너 이미지를 저장하기 위해 만들어진 레포지토리의 모음입니다.
Docker 이미지용 Github같은 느낌인데,
docker pull nginx
docker pull ubuntu
이런 명령어에서 nginx, ubuntu를 다운로드 받는곳이 컨테이너 레지스트리입니다.
컨테이너 이미지안에 민감정보가 포함될 수 있는데 개발자가 COPY ./app 으로 프로젝트 폴더 전체를 복사했는데
.env나 config.yml 과 같은 민감 정보가 포함될 수 있습니다.

이게 웹주소로는 접속이 안되는데 curl로 하니까 답이 오더라고요

여기 {}로 답이 오면 레지스트리 접근은 성공한겁니다.

레포지토리가 두개 보입니다.
이거를 다운로드 받아서 풀어야되는데, 지금 도커로 실행중이 아니라 registery API로 이미지 레이어를 직접 다운로드 받겠습니다.

k8s-goat-users-repo:latest 이미지가 어떤 layer들로 구성되어 있는지 보여줍니다.
manifest
├── config: 이미지 설정 정보
│ └── digest: sha256:87052...
│
└── layers: 실제 파일 시스템 레이어들
├── sha256:df20fa...
├── sha256:36b3ad...
├── sha256:7031d6...
├── sha256:81b7f5...
├── sha256:0f8a54...
└── sha256:536ef5...
다음 레이어들로 구성이 되었습니다.

여기 레이어들이 다운로드 됐습니다.

각 디렉토리에 파일이 몇개 있는지 확인해봤습니다.
1개의 파일만 있는 536e ... 확인해보겠습니다.
app.py가 있어서 확인해봤습니다.

API_KEY가 os 환경변수에 들어있음을 확인 가능합니다.
환경변수는 config.json에 들어있으므로 해당 json파일을 다운로드 받아줍니다.
lacuc@DESKTOP-M4LJA7B:~/registry-analysis/users-repo$ echo "$REG"
http://127.0.0.1:1235
lacuc@DESKTOP-M4LJA7B:~/registry-analysis/users-repo$ echo "$IMG"
madhuakula/k8s-goat-users-repo
lacuc@DESKTOP-M4LJA7B:~/registry-analysis/users-repo$ echo "$CONFIG"
sha256:87052f400e1570b8f349af48f2d94fb8a08b5f9da3342e4d06f80433d49d8185
lacuc@DESKTOP-M4LJA7B:~/registry-analysis/users-repo$ curl -v -L "$REG/v2/$IMG/blobs/$CONFIG" -o config.json

이 config안을 읽어보면 민감정보가 포함되어 있습니다.

오랜만에 flag를 찾았네요!
읽어주셔서 감사드리고 다음 문제에서 뵙겠습니다~
'취약점분석 (Blue Team) > Cloud' 카테고리의 다른 글
| [k8s-goat] 9.Analyzing crypto miner container (0) | 2026.06.25 |
|---|---|
| [k8s-goat] 8. NodePort exposed services (0) | 2026.06.25 |
| [k8s-goat] 6.Kubernetes CIS benchmarks analysis (0) | 2026.06.25 |
| [k8s-goat] 4. Container escape to the host system (0) | 2026.06.25 |
| [k8s-goat] 3.SSRF in the Kubernetes (K8S) world (0) | 2026.06.23 |