Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
KubiScan — Uno strumento per scansionare i cluster Kubernetes alla ricerca di permessi rischiosi | Kitploit
Strumenti/GitHubGitHub/cyberark/kubiscan
Autenticazione e AutorizzazioneEscalation di PrivilegiScanner di VulnerabilitàSicurezza dei ContenitoriAudit di ConfigurazioneRaccolta InformazioniPenetration TestingSicurezza CloudRilevamento SegretiConfigurazione ErrataRed Teaming
1.4k1411 anno faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
GitHub
cyberark/kubiscan

KubiScan

Uno strumento per scansionare i cluster Kubernetes alla ricerca di permessi rischiosi

Vedi Repository

GitHub release License Stars

Uno strumento per scansionare i cluster Kubernetes alla ricerca di autorizzazioni rischiose nel modello di controllo degli accessi basato sui ruoli (RBAC) di Kubernetes. Lo strumento è stato pubblicato come parte della ricerca "Securing Kubernetes Clusters by Eliminating Risky Permissions" https://www.cyberark.com/threat-research-blog/securing-kubernetes-clusters-by-eliminating-risky-permissions/.

Indice

  • Panoramica
  • Cosa può fare?
  • Utilizzo
    • Container
    • Direttamente con Python3
      • Prerequisiti
      • Esempio di installazione su Ubuntu
      • Con file KubeConfig
      • Da remoto con token ServiceAccount
  • Esempi
  • Demo
  • YAML dei ruoli rischiosi
  • ❤️ Vetrina
  • Licenza
  • Riferimenti

Panoramica

KubiScan aiuta gli amministratori dei cluster a identificare autorizzazioni che gli aggressori potrebbero potenzialmente sfruttare per compromettere i cluster. Ciò può essere particolarmente utile in ambienti di grandi dimensioni dove ci sono molte autorizzazioni difficili da tenere traccia. KubiScan raccoglie informazioni su ruoli\clusterroles, rolebindings\clusterrolebindings, utenti e pod rischiosi, automatizzando i processi manuali tradizionali e fornendo agli amministratori la visibilità necessaria per ridurre il rischio.

Cosa può fare?

  • Identificare ruoli\ClusterRoles rischiosi
  • Identificare RoleBindings\ClusterRoleBindings rischiosi
  • Identificare soggetti rischiosi (Utenti, Gruppi e ServiceAccount)
  • Identificare Pod\Container rischiosi
  • Estrarre token dai pod (tutti o per namespace)
  • Ottenere RoleBindings\ClusterRoleBindings associati a un Ruolo, ClusterRole o Soggetto (utente, gruppo o service account)
  • Elencare soggetti con un tipo specifico ('User', 'Group' o 'ServiceAccount')
  • Elencare le regole di un RoleBinding o ClusterRoleBinding
  • Mostrare i Pod che hanno accesso a dati segreti tramite un volume o variabili d'ambiente
  • Ottenere i token di bootstrap per il cluster
  • Scansione CVE
  • Supporto EKS\AKS\GKE

Utilizzo

Container

Puoi eseguirlo così:

root@kitploit:~
./docker_run.sh <kube_config_file>
# Ad esempio: ./docker_run.sh ~/.kube/config

Copierà tutti i file collegati all'interno del file di configurazione nel container e avvierà una shell nel container.

Per costruire l'immagine Docker esegui:

root@kitploit:~
docker build -t kubiscan .

Direttamente con Python3

Prerequisiti:

  • Python 3.6+
  • Pip3
  • Kubernetes Python Client
  • Prettytable
  • openssl (integrato in Ubuntu) - utilizzato solo per il token di join

Esempio di installazione su Ubuntu:

root@kitploit:~
apt-get update  
apt-get install -y python3 python3-pip 
pip3 install -r requirements.txt  

Esegui alias kubiscan='python3 /<KubiScan_folder>/KubiScan.py' per usare kubiscan.

Dopo aver installato tutti i requisiti sopra, puoi eseguirlo in due modi diversi:

Con file KubeConfig:

Assicurati di avere accesso al file ~/.kube/config e a tutti i certificati pertinenti, quindi esegui semplicemente:
kubiscan <comando>
Ad esempio: kubiscan -rs mostrerà tutti i soggetti rischiosi (utenti, service account e gruppi).

Da remoto con token ServiceAccount

Alcune funzionalità richiedono un service account privilegiato con i seguenti permessi:

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

Ma la maggior parte delle funzionalità non lo richiedono, quindi puoi utilizzare queste impostazioni per un service account limitato:
Può essere creato eseguendo:

root@kitploit:~
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

Nota che da Kubernetes 1.24, la creazione di un service account non genera più un secret. Ciò significa che dobbiamo creare il secret manualmente.
Prima di 1.24, puoi rimuovere l'oggetto Secret dai comandi precedenti e salvare il token del service account in un file:
kubectl get secrets $(kubectl get sa kubiscan-sa -o=jsonpath='{.secrets[0].name}') -o=jsonpath='{.data.token}' | base64 -d > token

Da 1.24, non devi cambiare nulla e salvare il token così:

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

Dopo aver salvato il token nel file, puoi usarlo così:
python3 ./KubiScan.py -ho <master_ip:master_port> -t /token <comando>

Ad esempio:

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

Nota che puoi anche utilizzare il certificato CA (ca.crt) per verificare la connessione SSL:

root@kitploit:~
kubiscan -ho <master_ip:master_port> -t /token -c /ca.crt <comando>

Per rimuovere il service account privilegiato, esegui i seguenti comandi:

root@kitploit:~
kubectl delete clusterroles kubiscan-clusterrole  
kubectl delete clusterrolebindings kubiscan-clusterrolebinding   
kubectl delete sa kubiscan-sa  
kubectl delete secrets kubiscan-sa-secret

Esempi

Per vedere tutti gli esempi, esegui python3 KubiScan.py -e oppure dal container kubiscan -e.

Demo

Un piccolo esempio di utilizzo di KubiScan:

YAML dei ruoli rischiosi

Esiste un file chiamato risky_roles.yaml. Questo file contiene modelli di ruoli rischiosi con priorità.
Sebbene il tipo in ogni ruolo sia Role, questi modelli verranno confrontati con qualsiasi Ruolo\ClusterRole nel cluster.
Quando ciascuno di questi ruoli viene confrontato con un ruolo nel cluster, verifica se il ruolo nel cluster contiene le regole del ruolo rischioso. Se è così, verrà contrassegnato come rischioso.
Abbiamo aggiunto tutti i ruoli che abbiamo trovato rischiosi, ma poiché ognuno può definire il termine "rischioso" in modo diverso, puoi modificare il file aggiungendo\rimuovendo ruoli che ritieni più\meno rischiosi.

❤️ Vetrina

  • Presentato a RSA 2020 "Compromettere un cluster Kubernetes sfruttando le autorizzazioni RBAC"
  • Presentato a RSA 2022 "Attaccare e difendere un cluster Kubernetes: Kubesploit vs KubiScan"
  • Articolo di PortSwigger "KubiScan: strumento di sicurezza Kubernetes open source presentato al Black Hat 2020"

Licenza

Copyright (c) 2020 CyberArk Software Ltd. Tutti i diritti riservati
Questo repository è concesso in licenza GPL-3.0 - vedi LICENSE per maggiori dettagli.

Riferimenti:

Per ulteriori commenti, suggerimenti o domande, puoi contattare Eviatar Gerzi (@g3rzi) e CyberArk Labs.

Scarica lo strumento