Skip to content
KitploitKITPLOIT
ツールブログ
Log in
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
metarget — Metargetは、脆弱なインフラストラクチャを自動的に構築するフレームワークです。 | Kitploit
ツール/GitHubGitHub/metarget/metarget
脆弱性スキャナーコンテナセキュリティエクスプロイトフレームワークペネトレーションテストクラウドセキュリティ学習と教育ラボと実践
GitHubmetarget/metarget

metarget

Metargetは、脆弱なインフラストラクチャを自動的に構築するフレームワークです。

リポジトリを見る
1.4k2021142ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

metarget-logo

中文 | English

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も不要です。コマンドを1つ実行して、コーヒーを楽しんでください。

さらに、次のことも期待しています。

  • 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

Metargetの使用を開始し、脆弱なシナリオを構築します。例:```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

コンテナランタイムの選択:

  • 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-dockerd がCRIシャムとして自動的にインストールされます(Dockerは事前にインストールされている必要があります)。特定のcri-dockerdバージョンを固定するには --runtime-version を使用します。

Examples:```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 はカーネルを 2 つの方法でインストールします:

1. apt
2. apt パッケージが利用できない場合は、Ubuntu から *.deb をリモートでダウンロードし、インストールを試みます。

カーネルのインストールが成功した後、システムの再起動が必要です。Metarget は自動的に再起動を促します。

#### 3.2.5 ケース:指定されたバージョンの containerd/runc をインストールする

実行:```bash
./metarget gadget install containerd --version 1.7.14

上記のコマンドが正常に完了した場合、1.7.14 containerd がインストールされ、Kubernetes CRI ランタイムとして自動設定(SystemdCgroup = true)され、metarget gadget install k8s で使用可能になります。

実行:```bash ./metarget gadget install runc --version 1.1.6

上記のコマンドが正常に完了すると、runc 1.1.6 がインストールされます。


### 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を実行すると、現在サポートされているクラウドネイティブコンポーネントに関連する脆弱なシナリオを確認できます。

ツールをダウンロード