이번 시나리오는 Hidden in layers입니다.

민감 정보 노출은 실제 환경에서 가장 흔하게 발견되는 취약점 중 하나입니다.
컨테이너 환겨에서는 비밀번호, 개인키, 토큰 등을 잘못 다루기 쉽습니다.
시작하려면 k8s안에 존재하는 모든 리소스와 이미지들을 식별하세요.
라고 되어있네요.
바로 시작해보겠습니다.

hidden-in-layers라는 수상한 jobs가 하나 있습니다.

일단 알아낼 수 있는 정보는
Namespace가 default이고, Pod은 1개입니다.
이미지는 madhuakula/k8s-goat-hidden-in-layers를 사용중이니 이걸 분석해야 될 듯하네요

아래쪽 보면 hidden-in-layersd-q24kf라는 이름으로 pod이 실행되고 있습니다.
이미지 분석으로 가보겠습니다.
docker pull madhuakula/k8s-goat-hidden-in-layers

해당 이미지에서 민감 정보를 찾아보겠습니다.
docker history --no-trunc madhuakula/k8s-goat-hidden-in-layers

글자가 조금 작긴 하지만 secret.txt를 이미지에 넣었다가 다음 레이어에서 삭제한 기록이 있습니다.
docker 이미지는 레이어 구조이기 때문에 삭제해도 이전 레이어에는 secret.txt가 남아있을 수 있습니다.
이전 레이어 이미지를 저장해보겠습니다.
docker save madhuakula/k8s-goat-hidden-in-layers -o hidden.tar

추출한 이미지를 확인해보면 여러가지 파일들이 있고 여기서 secret을 찾아보겠습니다.
for f in *; do tar -tf "$f" 2>/dev/null | grep -i secret && echo "[+] found in $f"; done

for f in *; do tar -xf "$f" root/secret.txt 2>/dev/null && cat root/secret.txt; done
해당 blob에서 찾으면 바로 secret값을 출력하게 했습니다.

근데 이거 문제를 풀다보니 blob이 뭔지도 잘 모르겠고, layer 구조에 대한 이해도가 많이 부족했던 것 같아서, 추후에 추가로 포스팅해서 공부해보도록 하겠습니다.
읽어주셔서 감사드립니다
'취약점분석 (Blue Team) > Cloud' 카테고리의 다른 글
| [k8s-goat] 17. Secure Network Boundaries using NSP (0) | 2026.07.06 |
|---|---|
| [k8s-goat] 16.Falco - Runtime security monitoring & detection (0) | 2026.07.04 |
| [k8s-goat] 13. Hacker container preview (0) | 2026.06.27 |
| [k8s-goat] 12. DoS the Memory/CPU resources (0) | 2026.06.27 |
| [k8s-goat] 11. Gaining environment information (0) | 2026.06.27 |