Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
pentest_lab — docker-compose를 사용한 로컬 침투 테스트 랩. | Kitploit
도구/GitHubGitHub/oliverwiegers/pentest_lab
Web SecurityPenetration TestingLearning & EducationLabs & Practice
GitHuboliverwiegers/pentest_lab

pentest_lab

docker-compose를 사용한 로컬 침투 테스트 랩.

저장소 보기
218551년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Pentest Lab

이 프로젝트는 더 이상 적극적으로 개발하지 않지만, 버그 수정 및 이슈와 풀 리퀘스트는 검토할 것입니다. 도움은 언제나 환영합니다 :)

이 로컬 펜테스트 랩은 docker compose를 사용하여 여러 피해자 서비스와 Kali Linux를 실행하는 공격자 서비스를 구동합니다. 처음으로 이 랩을 실행하면 다양한 도커 이미지를 다운로드하는 데 시간이 걸릴 수 있습니다.

스크린캐스트

실행된 명령어:

  • ./lab.sh --help
  • ./lab.sh --check-dependencies
  • ./lab.sh --up --all-services
  • ./lab.sh --info
  • ./lab.sh --overview all
  • ssh root@kali -o "UserKnownHostsFile /dev/null"
  • ./lab.sh --down

사용법

모든 필요한 의존성이 설치되어 있다면 랩은 기본적으로 작동해야 합니다. 시작 시 랩은 의존성 확인을 실행합니다.

랩 시작

root@kitploit:~
git clone https://github.com/oliverwiegers/pentest_lab
cd pentest_lab
./lab.sh -u

기본적으로 랩은 모든 피해자 서비스와 하나의 레드팀 서비스를 시작합니다. 다른 서비스를 시작하거나 추가할 수 있습니다. 자세한 내용은 아래에서 확인할 수 있습니다.

더 자세한 사용 정보는 ./lab.sh -h | --help로 표시되는 도움말 메시지를 읽어보세요.

의존성

  • bash
  • find
  • sed
  • yq (Python 버전. yq-go가 아닙니다.)
  • docker
  • docker-compose

랩에는 시작 시 실행되는 내장 의존성 확인 기능이 있습니다. 수동으로도 실행할 수 있습니다: ./lab.sh -C.

Heimdall

img

편의를 위해 Heimdall 인터페이스가 추가되었으며 localhost:7000에 노출됩니다. 로컬 머신에 노출되어 브라우저를 통해 접근할 수 있는 모든 서비스가 여기에 나열됩니다. 인터페이스에 적용된 변경 사항은 자동으로 ./etc/heimheimdall에 저장됩니다. 이 디렉터리는 랩을 중지할 때 ./etc/heimdall.tar로 변환됩니다. 이 tar 아카이브는 시작 시 추출됩니다. ./etc/heimdall.tar와 ./etc/heimdall 모두 기본적으로 git에서 무시됩니다.

사용된 배경화면은 여기에서 찾을 수 있습니다.

서비스

이 랩은 다음 네 가지 유형의 서비스를 지원합니다.

  • red_team
  • blue_team
  • victim
  • monitoring

기본 레드팀 서비스인 Kali 서비스는 아주 기본적인 Kali 인스턴스입니다. 그럼에도 kali-tools-web 메타패키지가 설치되어 있습니다. 웹 애플리케이션 테스트 랩에서는 기본 웹 테스트 도구가 유용할 것으로 보입니다. 이는 이미지를 빌드하는 Dockerfile을 편집하여 변경할 수 있습니다. Dockerfile은 ./dockerfiles/kali에 있습니다. Kali 서비스는 기본적으로 이러한 dotfiles를 설치합니다. 이 또한 Dockerfile을 수정하여 변경할 수 있습니다.

피해자 서비스

  • juice-shop
  • hackazon
  • tiredful-api
  • WebGoat
  • bwapp
  • DVWA
  • XVWA
  • ninjas

모니터링 서비스

img img

모니터링 서비스는 블루팀 서비스이기도 하지만 별도의 카테고리로 분리되어 있습니다.

이 스택은 로그 및 성능 관찰 기능을 제공합니다.

개별 인스턴스에 대한 자세한 내용은 아래를 참조하세요.

현재 모니터링 설정은 다음 서비스로 구성되어 있습니다:

  • Grafana - 로그 및 메트릭 시각화.
  • Loki - 도커 로그를 Grafana로 전송.
  • Prometheus - 메트릭을 Grafana로 전송.
  • cAdvisor - 컨테이너 리소스 사용량 및 메트릭을 수집하여 Prometheus로 전송.

Grafana

Grafana 인스턴스는 로그용과 메트릭용 두 개의 대시보드를 제공합니다.

  • 로그 대시보드
  • 메트릭 대시보드

이들은 매우 기본적입니다. Grafana 인터페이스를 통해 대시보드를 추가하여 더 많은 것을 추가할 수 있습니다. grafana 볼륨이 삭제되면 이러한 대시보드는 사라집니다. 영구적으로 대시보드를 추가하려면 Grafana의 프로비저닝 문서를 참조하세요. 프로비저닝에 사용되는 디렉터리는 ./etc/grafana/에 있습니다.

Grafana 인터페이스를 통해 설정을 변경하려면 admin으로 로그인해야 합니다. 자격 증명은 기본값인 admin:admin입니다. #hacktheplanet

Loki

Loki가 도커 로그를 수집할 수 있도록 이 랩은 Loki Docker Driver를 Docker 플러그인으로 설치합니다.

Prometheus / cAdvisor

프로메테우스가 클러스터에서 실행 중인 컨테이너의 성능 메트릭에 접근할 수 있도록 cAdvisor가 사용됩니다.

서비스 추가

추가 서비스를 추가하려면 docker-compose.yml 파일에 대한 약간의 지식이 필요합니다. 이 저장소 루트의 docker-compose.yml은 랩이 시작될 때 자동 생성됩니다. 이 과정은 ./etc/services 아래에 있는 yaml 파일을 사용합니다.

root@kitploit:~
➜  pentest_lab tree ./etc/services
./etc/services
├── blue_team
│   └── endlessh.yml
├── default.yml
├── monitoring
│   ├── cadvisor.yml
│   ├── grafana.yml
│   ├── loki.yml
│   └── prometheus.yml
├── red_team
└── victim
    ├── beginner
    │   ├── bwapp.yml
    │   ├── dvwa.yml
    │   ├── hackazon.yml
    │   ├── tiredful.yml
    │   ├── webgoat.yml
    │   └── xvwa.yml
    ├── expert
    │   └── juice-shop.yml
    └── intermediate
        └── ninjas.yml

어떤 서비스를 시작할지는 ./lab.sh를 해당 옵션과 함께 호출하여 제어합니다. 서비스를 영구적으로 비활성화하려면 .yml 파일 확장자를 제거하세요.

피해자 서비스의 예는 다음과 같습니다:

root@kitploit:~
bwapp:
  labels:
    class: 'victim'
    cluster: 'pentest_lab'
    level: 'beginner'
  image: raesene/bwapp
  ports:
    - '8080:80'
  networks:
    pentest_lab:
      ipv4_address: 10.5.0.100
  hostname: bwapp
  volumes:
    - bwapp-data:/var/lib/mysql

참고: 서비스가 첫 사용 시 일종의 설치가 필요한 경우 docker inspect <image_name>을 사용하여 도커 이미지가 데이터를 저장하는 위치를 확인하고 이 디렉터리를 가리키는 볼륨을 추가하세요. 위 예에서는 다음과 같습니다:

root@kitploit:~
  volumes:
    - bwapp-data:/var/lib/mysql

이렇게 하면 랩을 다시 시작할 때마다 서비스를 다시 설정할 필요가 없습니다. 하지만 랩을 초기화하고 완전히 처음부터 다시 시작하려면 ./lab.sh -p | --prune을 사용할 수 있습니다. 이 명령은 랩이 소유한 모든 리소스를 삭제합니다.

IP 범위

고정 IP 주소를 사용한 이유는 Kali 박스가 SSH 로그인을 단순화하기 위해 변경되지 않는 IP 주소를 가져야 하기 때문입니다. 자세한 내용은 아래의 팁/트릭 섹션에서 확인하세요.

  • 레드팀 서비스는 10.5.0.5부터 시작
    • Kali 서비스는 10.5.0.5를 갖습니다.
  • 블루팀 서비스는 10.5.0.50부터 시작
  • 피해자 서비스는 10.5.0.100부터 시작
  • 모니터링 서비스는 10.5.0.200부터 시작

서비스 정보

서비스를 추가하고 이 랩을 실행하는 사람에게 유용한 추가 정보가 있다면 ./etc/services_info에 추가할 수 있습니다. 이 파일의 내용은 ./lab.sh -i를 실행하면 있는 그대로 줄 단위로 출력됩니다.

팁/트릭

SSH

Kali 서비스에 쉽게 연결하려면 $HOME/.ssh/config에 다음을 추가할 수 있습니다:

root@kitploit:~
Host kali
    User root
    Hostname 10.5.0.5
    UserKnownHostsFile /dev/null
    StrictHostKeyChecking accept-new

따라서 ssh [email protected] -o "UserKnownHostsFile /dev/null" 대신 ssh kali를 실행할 수 있습니다.

tmux 사용자의 경우 다음은 자동으로 tmux 세션에 연결합니다:

root@kitploit:~
Host kali
    User root
    Hostname 10.5.0.5
    UserKnownHostsFile /dev/null
    StrictHostKeyChecking accept-new
    RequestTTY yes
    RemoteCommand tmux -L tmux new-session -As hacktheplanet
도구 다운로드