CTF문제를 풀던 중 swift로 이루어진 GUI 리눅스 바이너리파일을 실행시키기 위해 GUI가 호환되는 환경이 필요했다.
하지만 내 서버는 CUI환경이기에 도커를 열어 GUI환경을 구축한 뒤 VNC를 통해 윈도우에서 웹으로 접속가능하게 했다.
docker-compose.yml
version: '3.8'
services:
swift-password-manager:
build:
context: .
dockerfile: Dockerfile
container_name: swift-gui-app
ports:
- "6080:6901"
volumes:
- ./bin:/app/bin:rw
- ./lib:/app/lib:rw
environment:
- VNC_PW=password123
- VNC_RESOLUTION=1280x720
stdin_open: true
tty: true
shm_size: 2gb
Dockerfile
FROM accetto/ubuntu-vnc-xfce-g3:latest
USER 0
RUN apt-get update && apt-get install -y wget curl && rm -rf /var/lib/apt/lists/*
RUN cd /tmp && \
curl -fsSL https://download.swift.org/swift-5.8.1-release/ubuntu2204/swift-5.8.1-RELEASE/swift-5.8.1-RELEASE-ubuntu22.04.tar.gz | tar -xz -C /opt/
WORKDIR /app
RUN mkdir -p /app/bin /app/lib
COPY bin/ /app/bin/
COPY lib/ /app/lib/
RUN chmod +x /app/bin/* 2>/dev/null || true
ENV LD_LIBRARY_PATH=/app/lib:/opt/swift-5.8.1-RELEASE-ubuntu22.04/usr/lib/swift/linux:/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
ENV PATH=/opt/swift-5.8.1-RELEASE-ubuntu22.04/usr/bin:$PATH
ENV VNC_PW=password123
ENV VNC_RESOLUTION=1280x720
EXPOSE 6901
USER 1001
다음과같이 세팅
여기서 /bin과 /lib의 경우 문제 파일이 이 두개로 이루어져있기에 문제에따라서나 환경에 따라 맞춰서 변경하면 된다.
이후 docker-compose up -d 을 통해 실행하고, 6080 포트포워딩을 해주면 다음과같이 웹에서 접속이 가능해진다.

'꿀팁!' 카테고리의 다른 글
| 모의침투맛보기 (1) | 2026.01.22 |
|---|---|
| Fatal Error: Failed to start and configure the WSUS service (1) | 2025.12.15 |
| 크롬 HSTS로 안들어가질때 (2) | 2025.05.07 |
| 모의침투 공부 (1) | 2025.04.14 |
| GCP, 구글클라우드 서버운영 중 SSH 갑자기 접속이 안될때 (0) | 2025.02.05 |