Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
KubiScan — Un outil pour analyser les permissions risquées dans un cluster Kubernetes | Kitploit
Outils/GitHubGitHub/cyberark/kubiscan
Authentification et AutorisationEscalade de PrivilègesScanners de VulnérabilitésSécurité des ConteneursAudit de ConfigurationCollecte d'InformationsTests d'IntrusionSécurité CloudDétection de SecretsMauvaise ConfigurationRed Teaming
1.4k14121il y a 1 anVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
GitHubcyberark/kubiscan

KubiScan

Un outil pour analyser les permissions risquées dans un cluster Kubernetes

Voir le dépôt
Partager

[![GitHub release][release-img]][release] [![License][license-img]][license] Stars

Un outil pour scanner les clusters Kubernetes à la recherche de permissions risquées dans le modèle de contrôle d'accès basé sur les rôles (RBAC) de Kubernetes. L'outil a été publié dans le cadre de la recherche « Securing Kubernetes Clusters by Eliminating Risky Permissions » https://www.cyberark.com/threat-research-blog/securing-kubernetes-clusters-by-eliminating-risky-permissions/.

Table des matières

  • Aperçu
  • Que peut-il faire ?
  • Utilisation
    • Conteneur
    • Directement avec Python3
      • Prérequis
      • Exemple d'installation sur Ubuntu
      • Avec un fichier KubeConfig
      • Depuis un serveur distant avec un jeton ServiceAccount
  • Exemples
  • Démonstration
  • YAML des rôles risqués
  • Vitrine
  • Licence
  • Références

Aperçu

KubiScan aide les administrateurs de clusters à identifier les permissions que des attaquants pourraient potentiellement exploiter pour compromettre les clusters. Cela peut être particulièrement utile dans les grands environnements où il y a beaucoup de permissions difficiles à suivre.
KubiScan collecte des informations sur les rôles/clusterroles, rolebindings/clusterrolebindings, utilisateurs et pods risqués, automatisant les processus manuels traditionnels et donnant aux administrateurs la visibilité nécessaire pour réduire les risques.

Que peut-il faire ?

  • Identifier les Roles\ClusterRoles risqués
  • Identifier les RoleBindings\ClusterRoleBindings risqués
  • Identifier les Subjects (Utilisateurs, Groupes et ServiceAccounts) risqués
  • Identifier les Pods\Conteneurs risqués
  • Extraire les jetons des pods (tous ou par namespace)
  • Obtenir les RoleBindings\ClusterRoleBindings associés à un Role, ClusterRole ou Subject (utilisateur, groupe ou service account)
  • Lister les Subjects d'un type spécifique ('User', 'Group' ou 'ServiceAccount')
  • Lister les règles d'un RoleBinding ou ClusterRoleBinding
  • Afficher les Pods ayant accès à des données secrètes via un volume ou des variables d'environnement
  • Obtenir les jetons d'amorçage pour le cluster
  • Analyse CVE
  • Support EKS\AKS\GKE

Utilisation

Conteneur

Vous pouvez l'exécuter comme ceci :

./docker_run.sh <kube_config_file>
# Par exemple : ./docker_run.sh ~/.kube/config

Cela copiera tous les fichiers liés dans le fichier de configuration dans le conteneur et ouvrira un shell dans le conteneur.

Pour construire l'image Docker, exécutez :

docker build -t kubiscan .

Directement avec Python3

Prérequis :

  • Python 3.6+
  • Pip3
  • Kubernetes Python Client
  • Prettytable
  • openssl (intégré dans Ubuntu) - utilisé uniquement pour le jeton d'adhésion

Exemple d'installation sur Ubuntu :

apt-get update  
apt-get install -y python3 python3-pip 
pip3 install -r requirements.txt  

Exécutez alias kubiscan='python3 /<KubiScan_folder>/KubiScan.py' pour utiliser kubiscan.

Après avoir installé toutes les dépendances ci-dessus, vous pouvez l'exécuter de deux manières différentes :

Avec un fichier KubeConfig :

Assurez-vous d'avoir accès au fichier ~/.kube/config et à tous les certificats pertinents, exécutez simplement :
kubiscan <command>
Par exemple : kubiscan -rs affichera tous les sujets risqués (utilisateurs, comptes de service et groupes).

Depuis un serveur distant avec un jeton ServiceAccount

Certaines fonctionnalités nécessitent un compte de service privilégié avec les permissions suivantes :

  • resources : ["roles", "clusterroles", "rolebindings", "clusterrolebindings", "pods", "secrets"]
    verbs : ["get", "list"]
  • resources : ["pods/exec"]
    verbs : ["create", "get"]

Mais la plupart des fonctionnalités ne le sont pas, vous pouvez donc utiliser ces réglages pour un compte de service limité :
Il peut être créé en exécutant :

kubectl apply -f - << EOF
apiVersion: v1
kind: ServiceAccount
metadata:
  name: kubiscan-sa
  namespace: default
---
apiVersion: v1
kind: Secret
type: kubernetes.io/service-account-token
metadata:
  name: kubiscan-sa-secret
  annotations:
    kubernetes.io/service-account.name: kubiscan-sa
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata: 
  name: kubiscan-clusterrolebinding
subjects: 
- kind: ServiceAccount 
  name: kubiscan-sa
  namespace: default
  apiGroup: ""
roleRef: 
  kind: ClusterRole
  name: kubiscan-clusterrole
  apiGroup: ""
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata: 
  name: kubiscan-clusterrole
rules: 
- apiGroups: ["*"]
  resources: ["roles", "clusterroles", "rolebindings", "clusterrolebindings", "pods"]
  verbs: ["get", "list"]
EOF

Notez qu'à partir de Kubernetes 1.24, la création d'un compte de service ne crée pas de secret. Cela signifie que nous devons créer le secret.
Avant 1.24, vous pouvez supprimer l'objet Secret des commandes ci-dessus et enregistrer le jeton du compte de service dans un fichier :
kubectl get secrets $(kubectl get sa kubiscan-sa -o=jsonpath='{.secrets[0].name}') -o=jsonpath='{.data.token}' | base64 -d > token

À partir de 1.24, vous n'avez rien à changer et enregistrez le jeton comme ceci :

kubectl get secrets kubiscan-sa-secret -o=jsonpath='{.data.token}' | base64 -d > token  

Après avoir enregistré le jeton dans le fichier, vous pouvez l'utiliser comme ceci :
python3 ./KubiScan.py -ho <master_ip:master_port> -t /token <command>

Par exemple :

alias kubiscan='python3 /<KubiScan_folder>/KubiScan.py
kubiscan -ho 192.168.21.129:8443 -t /token -rs

Notez que vous pouvez également utiliser l'autorité de certification (ca.crt) pour vérifier la connexion SSL :

kubiscan -ho <master_ip:master_port> -t /token -c /ca.crt <command>

Pour supprimer le compte de service privilégié, exécutez les commandes suivantes :

kubectl delete clusterroles kubiscan-clusterrole  
kubectl delete clusterrolebindings kubiscan-clusterrolebinding   
kubectl delete sa kubiscan-sa  
kubectl delete secrets kubiscan-sa-secret

Exemples

Pour voir tous les exemples, exécutez python3 KubiScan.py -e ou depuis le conteneur kubiscan -e.

Démonstration

Un petit exemple d'utilisation de KubiScan :

YAML des rôles risqués

Il existe un fichier nommé risky_roles.yaml. Ce fichier contient des modèles pour les rôles risqués avec priorité.
Bien que le kind de chaque rôle soit Role, ces modèles seront comparés à tout Role\ClusterRole du cluster.
Lorsque chacun de ces rôles est vérifié par rapport à un rôle du cluster, il vérifie si le rôle du cluster contient les règles du rôle risqué. Si c'est le cas, il sera marqué comme risqué.
Nous avons ajouté tous les rôles que nous avons jugés risqués, mais comme chacun peut définir le terme « risqué » de manière différente, vous pouvez modifier le fichier en ajoutant/supprimant les rôles que vous estimez plus/moins risqués.

Télécharger l’outil