
Outil de découverte de la surface d'attaque Kubernetes en boîte noire qui sonde les clusters non sécurisés, les tableaux de bord exposés et les mauvaises configurations à l'aide d'une analyse basée sur les signatures.
KubeStalk est un outil pour découvrir la surface d’attaque basée sur Kubernetes et les infrastructures associées depuis une perspective en boîte noire. Cet outil est une version communautaire de l’outil utilisé pour sonder les clusters Kubernetes non sécurisés sur Internet lors du Project Resonance - Wave 9.
Le GIF ci-dessous montre l’utilisation de l’outil :

KubeStalk est écrit en Python et nécessite la bibliothèque requests.
Pour installer l’outil, vous pouvez cloner le dépôt dans n’importe quel répertoire :
git clone https://github.com/redhuntlabs/kubestalk
Une fois cloné, vous devez installer la bibliothèque requests en utilisant python3 -m pip install requests ou :
python3 -m pip install -r requirements.txt
Tout est configuré et vous pouvez utiliser l’outil directement.
Une liste des arguments en ligne de commande supportés par l’outil peut être affichée en utilisant le drapeau -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.
Pour utiliser l’outil, vous pouvez passer un ou plusieurs hôtes au script. Toutes les cibles passées à l’outil doivent être conformes à la RFC 3986, c’est-à-dire qu’elles doivent contenir un schéma et un nom d’hôte (et un port si nécessaire).
Un exemple d’utilisation de base est ci-dessous :
$ 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.
Les requêtes HTTP peuvent être affinées en utilisant -t (pour spécifier les délais d’attente HTTP), -ua (pour définir des user agents personnalisés) et --verify-ssl (pour valider les certificats SSL lors des requêtes).
Vous pouvez contrôler le nombre d’hôtes à analyser simultanément en utilisant le drapeau --concurrency. La valeur par défaut est 5.
La sortie est écrite dans un fichier CSV et peut être contrôlée par le drapeau --output.
Un exemple de la sortie CSV rendue en markdown est ci-dessous :
L’outil est sous licence BSD 3 Clause et est actuellement en v0.1.
Pour en savoir plus sur notre plateforme de gestion de la surface d’attaque, consultez NVADR.
| hôte | chemin | problème | type | sévérité |
|---|
https://█.█.█.█:10250 | /pods | Exposition de la liste des pods Kubernetes | composant principal | vulnérabilité/mauvaise configuration |
https://█.█.█.█:443 | /api/v1/pods | Exposition de la liste des pods Kubernetes | composant principal | vulnérabilité/mauvaise configuration |
http://█.█.██.█:80 | / | Exposition du tableau de bord de l’observateur etcd | module complémentaire | vulnérabilité/exposition |
http://██.██.█.█:80 | / | Exposition de l’interface web des métriques cAdvisor | module complémentaire | vulnérabilité/exposition |