Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
metarget — Metarget은 취약한 인프라를 자동으로 구축하는 프레임워크입니다. | Kitploit
도구/GitHubGitHub/metarget/metarget
Vulnerability ScannersContainer SecurityExploit FrameworksPenetration TestingCloud SecurityLearning & EducationLabs & Practice
GitHubmetarget/metarget

metarget

Metarget은 취약한 인프라를 자동으로 구축하는 프레임워크입니다.

저장소 보기
1.4k2021142개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

metarget-logo

중국어 | 영어

1 소개

Metarget = meta- + target, 취약한 인프라의 자동 구축을 제공하는 프레임워크로, 간단하거나 복잡한 취약한 클라우드 네이티브 타겟을 신속하고 자동으로 배포하는 데 사용됩니다.

1.1 왜 Metarget인가?

보안 연구 중에 취약한 환경 배포에 많은 시간이 소요되는 반면, PoC나 ExP 테스트에 소요되는 시간은 상대적으로 짧다는 것을 알 수 있습니다. 클라우드 네이티브 보안 분야에서는 클라우드 네이티브 시스템의 복잡성 덕분에 이 문제가 더 심각합니다.

오픈소스 커뮤니티에는 Vulhub, VulApps와 같은 우수한 보안 프로젝트가 이미 있습니다. 이 프로젝트들은 취약한 시나리오를 컨테이너 이미지로 패키징하여 연구자들이 이를 활용하고 신속하게 배포할 수 있도록 합니다.

그러나 이 프로젝트들은 주로 애플리케이션의 취약점에 초점을 맞추고 있습니다. Docker, Kubernetes, 심지어 Linux 커널과 같은 인프라의 취약점을 연구해야 한다면 어떨까요?

따라서 우리는 Metarget을 개발하여 위의 배포 문제를 어느 정도 해결하고자 합니다. 또한 Metarget이 다중 계층 취약한 클라우드 네이티브 시나리오를 자동으로 구축하는 데 도움이 될 것으로 기대합니다.

1.2 취약점 설치!

이 프로젝트에서는 취약점 설치 및 취약한 시나리오 설치와 같은 개념을 제시합니다. 소프트웨어를 설치하는 것처럼 취약점을 설치하는 것은 어떨까요? 우리의 목표는 보안 연구와 공격적 보안이기 때문에 그렇게 할 수 있습니다.

구체적으로, 우리는 다음과 같은 것을 기대합니다:

  • metarget cnv install cve-2019-5736은 CVE-2019-5736이 있는 Docker를 서버에 설치합니다.
  • metarget cnv install cve-2018-1002105는 CVE-2018-1002105가 있는 Kubernetes를 서버에 설치합니다.
  • metarget cnv install kata-escape-2020은 CVE-2020-2023/2025/2026이 있는 Kata-containers를 서버에 설치합니다.
  • metarget cnv install cve-2016-5195는 DirtyCoW가 있는 커널을 서버에 설치합니다.

멋지죠? 더 이상 단계가 없습니다. RTFM이 필요 없습니다. 하나의 명령어를 실행하고 커피를 즐기세요.

또한, 우리는 다음과 같은 것을 기대합니다:

  • Metarget의 도움으로 윤리적 해커는 간단하거나 복잡한 클라우드 네이티브 타겟을 신속하게 배포하고 클라우드 네이티브 환경을 해킹하여 배울 수 있습니다.
  • metarget appv install dvwa는 DVWA 타겟을 취약한 인프라에 설치합니다.
  • metarget appv install thinkphp-5-0-23-rce --external은 NodePort 서비스를 통해 ThinkPHP RCE 취약점을 취약한 인프라에 설치합니다.

새로운 Ubuntu를 설치한 후 아래의 5개 명령어만 실행하면 다중 계층 취약 시나리오를 얻을 수 있습니다:```bash ./metarget cnv install cve-2016-5195 # container escape with dirtyCoW ./metarget cnv install cve-2019-5736 # container escape with docker ./metarget cnv install cve-2018-1002105 # kubernetes single-node cluster with cve-2018-1002105 ./metarget cnv install privileged-container # deploy a privileged container ./metarget appv install dvwa --external # deploy dvwa target

RCE, 컨테이너 이스케이프, 측면 이동, 지속성, 이제 당신의 것입니다.

더 많은 멋진 기능이 곧 추가됩니다! 기대해 주세요 :)

참고:

이 프로젝트는 보안 연구를 위한 취약한 시나리오를 제공하는 것을 목표로 합니다. 생성된 시나리오의 보안은 보장되지 않습니다. Metarget을 사용하여 인터넷에 구성 요소나 시나리오를 배포하는 것은 **권장되지 않습니다**.

## 2 설치

### 2.1 요구 사항

- Ubuntu **20.04 / 22.04 / 24.04 (권장)**, 18.04도 지원
    - 일부 경우(예: 새로운 커널 취약점) 특정 Ubuntu 배포판이 필요함
    - 특정 취약점에 대한 자세한 내용은 해당 취약점에 대한 노트(별표(\*)로 표시)를 읽어보세요.
- **Python >= 3.7** (Python 2.x는 지원되지 않음!)
- pip3

### 2.2 소스에서 설치

저장소를 클론하고 요구 사항을 설치하세요:```bash
git clone https://github.com/Metarget/metarget.git
cd metarget/
pip3 install -r requirements.txt

Begin to use Metarget and construct vulnerable scenes. For example:```bash ./metarget cnv install cve-2019-5736

### 2.3 PyPI에서

현재 지원되지 않습니다.

## 3 사용법

Metarget은 **root** 권한으로 실행해야 합니다.

디버깅 시 `--verbose` 옵션을 추가하는 것이 좋습니다.

### 3.1 기본 사용법```
usage: metarget [-h] [-v] subcommand ...

automatic constructions of vulnerable infrastructures

positional arguments:
  subcommand     description
    gadget       cloud native gadgets (docker/k8s/...) management
    cnv          cloud native vulnerabilities management
    appv         application vulnerabilities management

optional arguments:
  -h, --help     show this help message and exit
  -v, --version  show program's version number and exit

./metarget gadget list를 실행하면 현재 지원되는 클라우드 네이티브 구성 요소를 볼 수 있습니다.

3.2 클라우드 네이티브 구성 요소 관리```

usage: metarget gadget [-h] subcommand ...

positional arguments: subcommand description list list supported gadgets install install gadgets remove uninstall gadgets

optional arguments: -h, --help show this help message and exit

> `./metarget gadget list docker/k8s/containerd/runc/kernel`을 실행하여 현재 지원되는 클라우드 네이티브 구성 요소의 버전을 확인하세요.
#### 3.2.1 사례: 지정된 버전으로 Docker 설치

실행:```bash
./metarget gadget install docker --version 18.03.1

위 명령어가 성공적으로 완료되면 18.03.1 Docker가 설치됩니다.

3.2.2 사례: 지정된 버전의 Kubernetes 설치

실행:```bash ./metarget gadget install k8s --version 1.28.4

위 명령이 성공적으로 완료되면, 1.28.4 Kubernetes 단일 노드 클러스터가 설치됩니다.

지원되는 Kubernetes 버전 범위: **1.9 – 1.33**.

참고:

Metarget은 Kubernetes 설치를 위해 다음 옵션을 제공합니다:```
  -v VERSION, --version VERSION
                        gadget version
  --runtime {auto,docker,containerd}
                        container runtime for k8s (auto: containerd for k8s>=1.24, docker otherwise)
  --runtime-version RUNTIME_VERSION
                        version of the container runtime to install alongside k8s.
                        For --runtime containerd: containerd.io apt version (e.g. 1.6.28).
                        For --runtime docker with k8s>=1.24: cri-dockerd version (e.g. 0.3.15).
                        Omit to install the latest/default version.
  --cni-plugin CNI_PLUGIN
                        cni plugin, flannel by default
  --pod-network-cidr POD_NETWORK_CIDR
                        pod network cidr, default cidr for each plugin by default
  --taint-master        taint master node or not
  --domestic            use domestic (Aliyun) mirrors for k8s images

Container runtime selection:

  • k8s < 1.24: 기본적으로 Docker를 사용합니다 (metarget gadget install docker를 통해 사전 설치 필요). containerd를 강제로 사용하려면 --runtime containerd를 사용하십시오.
  • k8s >= 1.24: containerd가 자동으로 설치되어 CRI로 구성됩니다 (기본값 --runtime auto). 수동 Docker 설치가 필요하지 않습니다.
  • k8s >= 1.24 + --runtime docker: CRI shim으로 cri-dockerd를 자동으로 설치합니다 (Docker는 사전 설치 필요). --runtime-version을 사용하여 특정 cri-dockerd 버전을 고정하십시오.

예시:```bash

Install k8s 1.28 with containerd (auto-selected)

./metarget gadget install k8s --version 1.28.4

Install k8s 1.28 with a specific containerd version

./metarget gadget install k8s --version 1.28.4 --runtime containerd --runtime-version 1.6.28

Install k8s 1.28 with Docker + cri-dockerd (Docker must be pre-installed)

./metarget gadget install k8s --version 1.28.4 --runtime docker

Install k8s 1.20 with containerd (forced on an older version)

./metarget gadget install k8s --version 1.20.15 --runtime containerd

**Metarget은 멀티노드 클러스터 배포를 지원합니다. 클러스터에 더 많은 노드를 추가하려면 싱글노드 클러스터 설치가 완료된 후 각 워커 노드에서 `tools/install_k8s_worker.sh` 스크립트를 복사하여 실행하면 됩니다.**

#### 3.2.3 케이스: 특정 버전의 Kata-containers 설치

실행:```bash
./metarget gadget install kata --version 1.10.0

위 명령어가 성공적으로 완료되면, 1.10.0 Kata-containers가 설치됩니다.

참고:

--kata-runtime-type 옵션을 사용하여 kata 런타임 유형(qemu/clh/fc/...)을 지정할 수도 있으며, 기본값은 qemu입니다.

3.2.4 사례: 특정 버전의 Linux 커널 설치

실행:```bash ./metarget gadget install kernel --version 5.7.5

위 명령어가 성공적으로 완료되면 5.7.5 커널이 설치됩니다.

참고:

현재 Metarget은 두 가지 방식으로 커널을 설치합니다:

1. apt
2. apt 패키지를 사용할 수 없는 경우 Ubuntu에서 \*.deb를 원격으로 다운로드하여 설치 시도

커널이 성공적으로 설치된 후에는 시스템 재부팅이 필요합니다. Metarget이 자동으로 재부팅을 요청할 것입니다.

#### 3.2.5 사례: 지정된 버전의 containerd/runc 설치

실행:```bash
./metarget gadget install containerd --version 1.7.14

위 명령어가 성공적으로 완료되면, containerd 1.7.14가 설치되고 Kubernetes CRI 런타임(SystemdCgroup = true)으로 자동 구성되어 metarget gadget install k8s와 함께 사용할 준비가 됩니다.

실행:```bash ./metarget gadget install runc --version 1.1.6

위 명령어가 성공적으로 완료되면 1.1.6 runc가 설치됩니다.

### 3.3 클라우드 네이티브 구성 요소 관련 취약 시나리오 관리```
usage: metarget cnv [-h] subcommand ...

positional arguments:
  subcommand  description
    list      list supported cloud native vulnerabilities
    install   install cloud native vulnerabilities
    remove    uninstall cloud native vulnerabilities

optional arguments:
  -h, --help  show this help message and exit

./metarget cnv list를 실행하여 현재 지원되는 클라우드 네이티브 구성 요소와 관련된 취약한 시나리오를 확인하세요.

3.3.1 사례: CVE-2019-5736

도구 다운로드