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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
kube-hunter — Kubernetesクラスターのセキュリティ上の弱点をハントする | Kitploit
ツール/GitHubGitHub/aquasecurity/kube-hunter
脆弱性スキャナーコンテナセキュリティペネトレーションテストクラウドセキュリティ設定ミス
GitHubaquasecurity/kube-hunter

kube-hunter

Kubernetesクラスターのセキュリティ上の弱点をハントする

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

人気

すべて見る →

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

すべてのツールを探索

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

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

注意

kube-hunterは現在活発に開発されていません。既知の脆弱性についてKubernetesクラスターをスキャンしたい場合は、Trivy の使用をお勧めします。特に、TrivyのKubernetes misconfiguration scanning および KBOM vulnerability scanning をご覧ください。詳細は Trivy Docs をご確認ください。


kube-hunterは、Kubernetesクラスターのセキュリティ上の弱点を探します。このツールは、Kubernetes環境におけるセキュリティ問題への認識と可視性を高めるために開発されました。自分が所有していないKubernetesクラスターでkube-hunterを実行しないでください!

kube-hunterの実行: kube-hunterはコンテナ (aquasec/kube-hunter) として提供されており、kube-hunter.aquasec.com でオンライン登録してトークンを受け取ると、結果をオンラインで表示・共有できます。また、後述のようにPythonコードを直接実行することもできます。

脆弱性の探索: kube-hunterのナレッジベースには、発見可能な脆弱性や問題に関する記事が含まれています。kube-hunterが問題を報告すると、そのVID (脆弱性ID) が表示されるので、KB (https://aquasecurity.github.io/kube-hunter/) で調べることができます。 kube-hunterのKubernetes ATT&CK Matrix統合に興味がある場合は、続きを読む

kube-hunter デモ動画

目次

  • 目次
    • Kubernetes ATT&CK Matrix
    • ハンティング
      • kube-hunterはどこで実行すべきか?
      • スキャンオプション
      • 認証
      • アクティブハンティング
      • テスト一覧
      • ノードマッピング
      • 出力
      • ディスパッチ
    • 高度な使い方
      • Azureクイックスキャン
      • カスタムハンティング
    • デプロイ
      • マシン上
        • 前提条件
          • pipでインストール
          • ソースから実行
      • コンテナ
      • Pod
    • コントリビューション
    • ライセンス

Kubernetes ATT&CK Matrix

kube-hunterは、Kubernetes ATT&CK matrixの新しいフォーマットに対応しました。kube-hunterの脆弱性は、攻撃者を模倣した創造的なテクニックの集まりですが、MITREのATT&CKは、それを行うためのより一般的な標準化されたテクニックカテゴリを定義しています。kube-hunterの脆弱性は、攻撃者が目指すより一般的なテクニックの足がかりとなる小さなステップと考えることができます。kube-hunterのハンターと脆弱性のほとんどは、これらのテクニックに密接に該当する可能性があるため、Matrix標準に準拠することにしました。

MITREのテクニックにマッピングできなかったいくつかのkube-hunter脆弱性には、Generalキーワードがプレフィックスとして付いています。 kube-hunter

ハンティング

kube-hunterはどこで実行すべきか?

kube-hunterの実行方法は3通りあり、それぞれクラスターの弱点を検出するための異なるアプローチを提供します。

任意のマシン(ラップトップを含む)でkube-hunterを実行し、リモートスキャンを選択してKubernetesクラスターのIPアドレスまたはドメイン名を指定します。これにより、攻撃者の視点からKubernetesセットアップを確認できます。

クラスター内のマシンで直接kube-hunterを実行し、すべてのローカルネットワークインターフェースをプローブするオプションを選択することもできます。

また、kube-hunterをクラスター内のPodとして実行することもできます。これにより、もしアプリケーションのPodが(例えばソフトウェアの脆弱性によって)侵害された場合、クラスターがどの程度露出するかを示します。(--podオプション)

スキャンオプション

最初にこれらの**前提条件**を確認してください。

デフォルトでは、kube-hunterは対話型セッションを開始し、以下のスキャンオプションのいずれかを選択できます。コマンドラインから手動でスキャンオプションを指定することもできます。オプションは以下の通りです。

  1. リモートスキャン

ハンティング対象のリモートマシンを指定するには、オプション1を選択するか、--remoteオプションを使用します。例: kube-hunter --remote some.node.com

  1. インターフェーススキャン

インターフェーススキャンを指定するには、--interfaceオプションを使用します(これにより、マシンのすべてのネットワークインターフェースがスキャンされます)。例: kube-hunter --interface

  1. ネットワークスキャン

特定のCIDRをスキャンするには、--cidrオプションを使用します。例: kube-hunter --cidr 192.168.0.0/24

  1. Kubernetesノード自動検出

--k8s-auto-discover-nodes フラグを設定すると、Kubernetesに問い合わせてクラスター内のすべてのノードを取得し、それらすべてをスキャンしようとします。デフォルトでは、Kubernetes APIに接続するためにin-cluster configを使用します。明示的なkubeconfigファイルを使用する場合は、--kubeconfig /location/of/kubeconfig/fileを設定します。

また、--pod モードを使用する場合、これは常に行われることに注意してください。

認証

攻撃者の初期段階を模倣するために、kube-hunterはハンティングに認証を必要としません。

  • Impersonate - --service-account-token フラグでサービスアカウントシークレットのJWT Bearerトークンを手動で渡すことにより、ハンティング時に特定のサービスアカウントトークンを使用するようにkube-hunterに指示できます。

    例:

    root@kitploit:~
    $ kube-hunter --active --service-account-token eyJhbGciOiJSUzI1Ni...
    
  • --pod フラグを付けて実行する場合、kube-hunterはハンティング中に検出したサービスへの認証に、Pod内にマウントされたサービスアカウントトークンを使用します。

    • 指定された場合、--service-account-token フラグはPodとして実行するときに優先されます。

アクティブハンティング

アクティブハンティングは、kube-hunterが見つけた脆弱性を積極的に悪用し、さらに多くの脆弱性を探るオプションです。通常のハンティングとアクティブハンティングの主な違いは、通常のハンティングではクラスターの状態を変更しないのに対し、アクティブハンティングはクラスターに対して状態を変更する操作を行う可能性があり、危険を伴う可能性があることです。

デフォルトでは、kube-hunterはアクティブハンティングを行いません。アクティブにハンティングするには、--active フラグを使用します。例: kube-hunter --remote some.domain.com --active

テスト一覧

テストの一覧は、--list オプションで表示できます。例: kube-hunter --list

アクティブハンティングのテストも含めて表示するには: kube-hunter --list --active

ノードマッピング

ノードのネットワークマッピングのみを表示するには、--mapping オプションを付けて実行します。例: kube-hunter --cidr 192.168.0.0/24 --mapping これにより、kube-hunterが見つけたすべてのKubernetesノードが出力されます。

出力

ログを制御するには、--log オプションを使用してログレベルを指定します。例: kube-hunter --active --log WARNING 利用可能なログレベルは以下の通りです。

  • DEBUG
  • INFO (デフォルト)
  • WARNING

ディスパッチ

デフォルトでは、レポートは stdout に出力されますが、--dispatch オプションを使用して異なる方法を指定できます。例: kube-hunter --report json --dispatch http 利用可能なディスパッチ方法は以下の通りです。

  • stdout (デフォルト)
  • http (設定するには、以下の環境変数を設定します)
    • KUBEHUNTER_HTTP_DISPATCH_URL (デフォルト: https://localhost)
    • KUBEHUNTER_HTTP_DISPATCH_METHOD (デフォルト: POST)

高度な使い方

Azureクイックスキャン

AzureまたはAWS環境のPodとして実行する場合、kube-hunterはインスタンスメタデータサービスからサブネットを取得します。そのため、通常、発見プロセスに時間がかかります。サブネットスキャンを /24 CIDRに厳格に制限するには、--quick オプションを使用します。

カスタムハンティング

カスタムハンティングにより、上級ユーザーはハンティング開始時に登録されるハンターを制御できます。 自分が何をしているか理解している場合、これは必要に応じてkube-hunterのハンティングと発見プロセスを調整するのに役立ちます。

例:

root@kitploit:~
kube-hunter --custom <HunterName1> <HunterName2>

カスタムハンティングを有効にすると、指定されたホワイトリストのハンター以外のすべてのハンターがハンティングプロセスから削除されます。

--custom フラグはハンターのクラス名のリストを読み取ります。kube-hunterのすべてのクラス名を表示するには、--raw-hunter-names フラグを --list フラグと組み合わせて使用できます。

例:

root@kitploit:~
kube-hunter --active --list --raw-hunter-names

注意: kube-hunerのアーキテクチャ設計により、以下の「コアハンター/クラス」は常に登録されます(カスタムハンティングを使用する場合も同様):

  • HostDiscovery
    • 指定された設定に基づいてハンティング用のIPアドレスを生成
    • クラウドメタデータAPIを使用して自動的にサブネットを発見
  • FromPodHostDiscovery
    • Podベースの環境技術を使用して、ハンティング用の攻撃対象IPアドレスを自動発見
    • クラウドメタデータAPIを使用して自動的にサブネットを発見
  • PortDiscovery
    • 指定されたIPアドレスに対して、既知のKubernetesサービスポートのポートスキャン
  • Collector
    • 発見された脆弱性とオープンサービスを収集し、将来のレポート用に保存
  • StartedInfo
    • 開始メッセージを出力
  • SendFullReport
    • 指定された設定に基づいてレポートをディスパッチ

デプロイ

kube-hunterのデプロイ方法は3つあります:

マシン上

マシン上で直接kube-hunterを実行できます。

前提条件

以下のインストールが必要です:

  • python 3.x
  • pip
pipでインストール

インストール:

root@kitploit:~
pip install kube-hunter

実行:

root@kitploit:~
kube-hunter
ソースから実行

リポジトリをクローン:

root@kitploit:~
git clone https://github.com/aquasecurity/kube-hunter.git

モジュールの依存関係をインストール(Virtual Environment内で行うことを推奨):

root@kitploit:~
cd ./kube-hunter
pip install -r requirements.txt

実行:

root@kitploit:~
python3 kube_hunter

pyinstaller/py2exeを使用する場合は、最初にinstall_imports.pyスクリプトを実行する必要があります。

コンテナ

Aqua Securityは、kube-hunterのコンテナ版を aquasec/kube-hunter:aqua で管理しています。このコンテナには、このソースコードに加えて、レポート結果をkube-hunter.aquasec.comで表示可能なレポートにアップロードするための(クローズドソースの)レポートプラグインが含まれています。aquasec/kube-hunter コンテナの実行とレポートデータのアップロードには、追加の利用規約が適用されることに注意してください。このリポジトリのDockerfileを使用すると、レポートプラグインなしでコンテナ版をビルドできます。

ホストネットワークでkube-hunterコンテナを実行すると、ホスト上のすべてのインターフェースをプローブできます:

docker run -it --rm --network host aquasec/kube-hunter

Docker for Mac/Windowsに関する注意: Docker for MacまたはWindowsの「ホスト」は、Dockerがコンテナを実行するVMです。そのため、--network host を指定すると、kube-hunterはそのVMのネットワークインターフェースにアクセスできるようになり、手元のマシンのインターフェースにはアクセスできません。デフォルトでは、kube-hunterは対話型モードで実行されます。上記のパラメータを使用してスキャンオプションを指定することもできます。例:

docker run --rm aquasec/kube-hunter --cidr 192.168.0.0/24

Pod

このオプションを使用すると、悪意のあるコンテナを実行することでクラスター上で何ができ、何が発見できるかを確認できます。これにより、攻撃者がソフトウェアの脆弱性などを通じてPodを侵害できた場合に何ができるかという視点が得られます。これにより、通常よりもはるかに多くの脆弱性が明らかになる可能性があります。

サンプルの job.yaml ファイルは、デフォルトのKubernetes Podアクセス設定を使用して、Pod内でkube-hunterを実行するJobを定義しています。(必要に応じて、この定義を変更しても構いません。例えば、root以外のユーザーとして実行する、異なる名前空間で実行するなど。)

  • kubectl create -f ./job.yaml でJobを実行
  • kubectl describe job kube-hunter でPod名を確認
  • kubectl logs <pod name> でテスト結果を表示

コントリビューション

コントリビューションガイドラインを読むには、 こちらをクリック

ライセンス

このリポジトリは Apache License 2.0 の下で利用可能です。

ツールをダウンロード