Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
KubiScan — Una herramienta para escanear clústeres de Kubernetes en busca de permisos riesgosos. | Kitploit
Herramientas/GitHubGitHub/cyberark/kubiscan
Autenticación y AutorizaciónEscalada de PrivilegiosEscáneres de VulnerabilidadesSeguridad de ContenedoresAuditoría de ConfiguraciónRecopilación de InformaciónPruebas de PenetraciónSeguridad en la NubeDetección de SecretosMala ConfiguraciónRed Teaming
1.4k141hace 1 añoRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
GitHub
cyberark/kubiscan

KubiScan

Una herramienta para escanear clústeres de Kubernetes en busca de permisos riesgosos.

Ver Repositorio

Lanzamiento de GitHub Licencia Estrellas

Una herramienta para escanear clústeres de Kubernetes en busca de permisos riesgosos en el modelo de control de acceso basado en roles (RBAC) de Kubernetes. La herramienta se publicó como parte de la investigación "Securing Kubernetes Clusters by Eliminating Risky Permissions" https://www.cyberark.com/threat-research-blog/securing-kubernetes-clusters-by-eliminating-risky-permissions/.

Tabla de contenidos

  • Descripción general
  • ¿Qué puede hacer?
  • Uso
    • Contenedor
    • Directamente con Python3
      • Requisitos previos
      • Ejemplo de instalación en Ubuntu
      • Con archivo KubeConfig
      • Desde remoto con token de ServiceAccount
  • Ejemplos
  • Demo
  • YAML de Roles Riesgosos
  • Muestrario
  • Licencia
  • Referencias

Descripción general

KubiScan ayuda a los administradores de clústeres a identificar permisos que los atacantes podrían explotar para comprometer los clústeres.
Esto puede ser especialmente útil en entornos grandes donde hay muchos permisos que pueden ser difíciles de rastrear.
KubiScan recopila información sobre roles/clusterroles, rolebindings/clusterrolebindings, usuarios y pods riesgosos, automatizando procesos manuales tradicionales y brindando a los administradores la visibilidad que necesitan para reducir el riesgo.

¿Qué puede hacer?

  • Identificar Roles\ClusterRoles riesgosos
  • Identificar RoleBindings\ClusterRoleBindings riesgosos
  • Identificar Subjects (Usuarios, Grupos y ServiceAccounts) riesgosos
  • Identificar Pods\Contenedores riesgosos
  • Volcar tokens de pods (todos o por namespace)
  • Obtener RoleBindings\ClusterRoleBindings asociados a Role, ClusterRole o Subject (usuario, grupo o service account)
  • Listar Subjects con un tipo específico ('User', 'Group' o 'ServiceAccount')
  • Listar reglas de RoleBinding o ClusterRoleBinding
  • Mostrar Pods que tienen acceso a datos secretos a través de un volumen o variables de entorno
  • Obtener tokens de bootstrap para el clúster
  • Escaneo de CVE
  • Soporte para EKS\AKS\GKE

Uso

Contenedor

Puedes ejecutarlo así:

root@kitploit:~
./docker_run.sh <kube_config_file>
# Por ejemplo: ./docker_run.sh ~/.kube/config

Copiará todos los archivos vinculados dentro del archivo de configuración al contenedor e iniciará un shell en el contenedor.

Para construir la imagen de Docker, ejecuta:

root@kitploit:~
docker build -t kubiscan .

Directamente con Python3

Requisitos previos:

  • Python 3.6+
  • Pip3
  • Kubernetes Python Client
  • Prettytable
  • openssl (integrado en ubuntu) - usado solo para el token de join

Ejemplo de instalación en Ubuntu:

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

Ejecuta alias kubiscan='python3 /<KubiScan_folder>/KubiScan.py' para usar kubiscan.

Después de instalar todos los requisitos anteriores, puedes ejecutarlo de dos formas diferentes:

Con archivo KubeConfig:

Asegúrate de tener acceso al archivo ~/.kube/config y todos los certificados relevantes, simplemente ejecuta:
kubiscan <comando>
Por ejemplo: kubiscan -rs mostrará todos los subjects riesgosos (usuarios, service accounts y grupos).

Desde remoto con token de ServiceAccount

Algunas funcionalidades requieren una cuenta de servicio privilegiada con los siguientes permisos:

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

Pero la mayoría de las funcionalidades no lo requieren, por lo que puedes usar esta configuración para una cuenta de servicio limitada:
Se puede crear ejecutando:

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

Ten en cuenta que desde Kubernetes 1.24, la creación de una cuenta de servicio no crea un secret. Esto significa que necesitamos crear el secret.
Antes de 1.24, puedes eliminar el objeto Secret de los comandos anteriores y guardar el token de la cuenta de servicio en un archivo:
kubectl get secrets $(kubectl get sa kubiscan-sa -o=jsonpath='{.secrets[0].name}') -o=jsonpath='{.data.token}' | base64 -d > token

Desde 1.24, no necesitas cambiar nada y guarda el token así:

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

Después de guardar el token en el archivo, puedes usarlo así:
python3 ./KubiScan.py -ho <master_ip:master_port> -t /token <comando>

Por ejemplo:

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

Observa que también puedes usar la autoridad certificadora (ca.crt) para verificar la conexión SSL:

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

Para eliminar la cuenta de servicio privilegiada, ejecuta los siguientes comandos:

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

Ejemplos

Para ver todos los ejemplos, ejecuta python3 KubiScan.py -e o desde el contenedor kubiscan -e.

Demo

Un pequeño ejemplo del uso de KubiScan:

YAML de Roles Riesgosos

Hay un archivo llamado risky_roles.yaml. Este archivo contiene plantillas para roles riesgosos con prioridad.
Aunque el kind en cada rol es Role, estas plantillas se compararán con cualquier Role\ClusterRole en el clúster.
Cuando se compara cada uno de estos roles con un rol en el clúster, verifica si el rol en el clúster contiene las reglas del rol riesgoso. Si es así, se marcará como riesgoso.
Agregamos todos los roles que consideramos riesgosos, pero como cada persona puede definir el término "riesgoso" de manera diferente, puedes modificar el archivo añadiendo\eliminando roles que consideres más\menos riesgosos.

❤️ Muestrario

  • Presentado en RSA 2020 "Compromising Kubernetes Cluster by Exploiting RBAC Permissions"
  • Presentado en RSA 2022 "Attacking and Defending Kubernetes Cluster: Kubesploit vs KubiScan"
  • Artículo de PortSwigger "KubiScan: Open source Kubernetes security tool showcased at Black Hat 2020"

Licencia

Copyright (c) 2020 CyberArk Software Ltd. Todos los derechos reservados
Este repositorio está licenciado bajo GPL-3.0 License - consulta LICENSE para más detalles.

Referencias:

Para más comentarios, sugerencias o preguntas, puedes contactar a Eviatar Gerzi (@g3rzi) y CyberArk Labs.

Descargar herramienta