
ブラックボックス型のKubernetes攻撃対象領域発見ツール。署名ベースのスキャンを使用して、保護されていないクラスター、露出したダッシュボード、および設定ミスを調査します。
KubeStalkは、ブラックボックス的な視点からKubernetesおよび関連インフラストラクチャの攻撃サーフェスを発見するツールです。このツールは、Project Resonance - Wave 9でインターネット上の保護されていないKubernetesクラスターを調査するために使用されたツールのコミュニティバージョンです。
以下のGIFはツールの使用方法を示しています:

KubeStalkはPythonで書かれており、requestsライブラリが必要です。
ツールをインストールするには、リポジトリを任意のディレクトリにクローンしてください:
git clone https://github.com/redhuntlabs/kubestalk
クローン後、python3 -m pip install requests または次のコマンドで requests ライブラリをインストールする必要があります:
python3 -m pip install -r requirements.txt
すべての設定が完了し、ツールを直接使用できます。
ツールがサポートするコマンドライン引数の一覧は、-h フラグを使用して表示できます。
$ python3 kubestalk.py -h
+---------------------+
| K U B E S T A L K |
+---------------------+ v0.1
[!] KubeStalk by RedHunt Labs - A Modern Attack Surface (ASM) Management Company
[!] Author: 0xInfection (RHL Research Team)
[!] Continuously Track Your Attack Surface using https://redhuntlabs.com/nvadr.
usage: ./kubestalk.py <url(s)>/<cidr>
Required Arguments:
urls List of hosts to scan
Optional Arguments:
-o OUTPUT, --output OUTPUT
Output path to write the CSV file to
-f SIG_FILE, --sig-dir SIG_FILE
Signature directory path to load
-t TIMEOUT, --timeout TIMEOUT
HTTP timeout value in seconds
-ua USER_AGENT, --user-agent USER_AGENT
User agent header to set in HTTP requests
--concurrency CONCURRENCY
No. of hosts to process simultaneously
--verify-ssl Verify SSL certificates
--version Display the version of KubeStalk and exit.
ツールを使用するには、スクリプトに1つ以上のホストを渡します。ツールに渡すすべてのターゲットは、RFC 3986 に準拠している必要があります。つまり、スキームとホスト名(必要に応じてポート)を含める必要があります。
基本的な使用法は以下の通りです:
$ python3 kubestalk.py https://███.██.██.███:10250
+---------------------+
| K U B E S T A L K |
+---------------------+ v0.1
[!] KubeStalk by RedHunt Labs - A Modern Attack Surface (ASM) Management Company
[!] Author: 0xInfection (RHL Research Team)
[!] Continuously Track Your Attack Surface using https://redhuntlabs.com/nvadr.
[+] Loaded 10 signatures to scan.
[*] Processing host: https://███.██.██.██:10250
[!] Found potential issue on https://███.██.██.██:10250: Kubernetes Pod List Exposure
[*] Writing results to output file.
[+] Done.
HTTPリクエストは、-t(HTTPタイムアウトの指定)、-ua(カスタムユーザーエージェントの指定)、--verify-ssl(リクエスト時のSSL証明書の検証)を使用して微調整できます。
同時にスキャンするホスト数は、--concurrency フラグで制御できます。デフォルト値は5に設定されています。
出力はCSVファイルに書き込まれ、--output フラグで制御できます。
マークダウンで表示されたCSV出力のサンプルは以下の通りです:
このツールは BSD 3-Clause License の下でライセンスされており、現在 v0.1 です。
To know more about our Attack Surface Management platform, check out NVADR.
| host | path | issue | type | severity |
|---|
https://█.█.█.█:10250 | /pods | Kubernetes Pod List Exposure | core-component | vulnerability/misconfiguration |
https://█.█.█.█:443 | /api/v1/pods | Kubernetes Pod List Exposure | core-component | vulnerability/misconfiguration |
http://█.█.██.█:80 | / | etcd Viewer Dashboard Exposure | add-on | vulnerability/exposure |
http://██.██.█.█:80 | / | cAdvisor Metrics Web UI Dashboard Exposure | add-on | vulnerability/exposure |