IT 대장간
3. Vagrant + Docker + 쿠버네티스 활용 (③Docker) 본문
이전 과정까지 완료 되었다면 이제 Pentest VM에 Docker 실행과 더불어 Victim VM 및 외부 사용자가 접근 하도록 설정 해주어야 한다.
1) 저장소 업데이트&도커설치
###저장소 업데이트###
APT-GET UPDATE
###도커 설치###
APT INSTALL DOCKER.IO

2) 도커 실행 및 컨테이너 검색
###컨테이너 서치###
DOCKER SEARCH [컨테이너명]

#도커 명령어 참조
🐳 Docker 도커 - #1 기본 명령어 모음
도커란 간단하게 말해 서버환경에서의 다양한 프로그램, 실행환경을 컨테이너라는 격리된 환경에서 실행할 수 있게 해주는 컨테이너 기반의 오픈소스 가상화 플랫폼 입니다. 이를 이용하면 복
velog.io
3) 컨테이너 내려받기
: 각자 원하는 컨테이너를 내려받으면된다. (nginx, httpd 검색)
내가 받은 BWAPP는 Apache, PHP 기반의 웹 서비스인데 안에 소스가 많아서 무겁다
DOCKER PULL [컨테이너명]

4) 컨테이너 실행
: 포트 바인딩으로 P:10020 으로 접근 시 80포트를 통해 서비스가 실행.
만약 다중으로 동시 사용하여 80,443포트가 더 필요하다면 가상호스트를 사용하면 된다.(글 맨아래 참조)
docker run -d -p [접속 포트] : [서비스 포트] [컨테이너명]


5) 컨테이너 접근
5-1) 컨테이너 Bash쉘 접근
###도커 컨테이너 확인###
docker images
##현재 실행중인 컨테이너 출력
docker ps
##설치되어 있는 전체 컨테이너 출력
docker ps -a
###Bash 쉘을 통한 컨테이너 접근###
docker exec -i -t [컨테이너NAME] /bin/bash


5-2) Victim에서 도커로 실행중인 웹 서비스 접근

# 외부 사용자와 Connet (포트포워딩)
서비스를 실행했다고 해서 내 PC에서만 접근 가능한 VM & 도커는 활용도가 크지않다
나와 같은 업무공간에 있는, 내 로컬 PC와 통신이 되는 주위 사람 및 팀원들이 함께 접속할 수 있어야 쓰임새가 좋다
다만 위 VM과 이미지 속 URL에 보여지는 것처럼 C클래스가 100 인 네트워크대역은 로컬 내 가상머신 사설망을 추가로 할당해준 것으로 외부에서 해당 IP로의 접근은 불가하다. 편하게 하려면 Bridge가 속시원하지만 NAC 환경에서 Bridge모드는 제약이 있으므로 NAT방식을 선택해야 한다.
이를 위해선 아래의 프로세스로 접근할 수 있도록 포트포워딩이 좀 필요하다
[다른 사용자] -> [내 PC] -> [Pentest VM] -> [도커_BWAPP]
①로컬 PC 인바운드 정책 허용 - [Step : 다른 사용자]
: 같은 대역에 있더라도 인바운드 정책이 허용되지 않을 경우 접근 불가하다. 건드린적 없는데 허용되어 있다면 OS에서 지원해주는 연결 마법사에서 최초 이더넷연결 시 집 / 회사, 학교 등의 사용자 설정이 노출되었을때 잘 선택한거다

②Vagrantfile (INIT 파일 설정) - [Step : 내 PC]
: 이전(② Vagrant) 에 포스팅한 글에서 소개한 Vagrantfile 이다 Vagrant로 VM 생성 시 포트포워딩을 걸어놓고 생성.
아래 보여지는 설정은 [HOST IP:10030] 로 요청 시 [VM IP:10020] 에서 받아주기 위한 포트 포워딩 설정
보통은 다중 VM 사용 시 로컬에서 SSH 연결을 통한 접근을 위해 22번 포트와도 함께 설정한다.

③Docker 실행 시 포트포워딩 (INIT 파일 설정) - [Step : Pentest VM]
: 여기서 다시 한번 포트포워딩하여 10020으로 들어온 요청에 대해 80포트로 실행한다

이렇게 설정을 해준다면 내가 사용중인 로컬 PC의 IP를 통해 가상머신 내 도커에 외부 사용자가 붙는 것이 가능하다
대충 아래의 순서로 붙는 것.
[로컬 IP:10030] -> [VM:10020] -> [Docker:80]

※ 만약 다중의 웹 서비스 구동 및 깔끔한 URL을 위해 80,443포트가 여러개 필요하다면 아래의 [가상호스트]를 참조할 것
가상호스트
https://foxydog.tistory.com/30
CentOS 8 - Apache 가상호스트 설정(Apache virtual host)
CentOS 8 - Apache virtual host config □ 가상 호스트[Virtual Host]란? 기본적으로 웹서버에 존재하는 주 호스트 즉 예로 [aaa.com]이라는 도메인을 등록하여 사용하고 있지만 추가적으로 한 서버에 [bbb.com] [ccc
foxydog.tistory.com
※ 본래 여기까지만 소개하고 RCE나 침투테스트를 수행하려 했으나 욕심이 생겨 쿠버네티스 활용에 대해 간단히 소개하고 인프라세팅을 마무리하려 한다.
'해킹보안 > 진단 환경 구성' 카테고리의 다른 글
| 무선(WiFi, Bluetooth) 스니핑 (0) | 2025.09.25 |
|---|---|
| 안드로이드 루팅(갤럭시 s10e, Flip4) (0) | 2025.03.04 |
| Cloud Goat 설치 (0) | 2024.04.18 |
| 2. Vagrant + Docker + 쿠버네티스 활용 (②Vagrant 사용법) (1) | 2023.09.08 |
| 1. Vagrant + Docker + 쿠버네티스 활용 (①설치) (1) | 2023.09.01 |