Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
KubiScan — Uma ferramenta para analisar clusters Kubernetes em busca de permissões arriscadas | Kitploit
Ferramentas/GitHubGitHub/cyberark/kubiscan
Autenticação e AutorizaçãoEscalada de PrivilégiosScanners de VulnerabilidadesSegurança de ContêineresAuditoria de ConfiguraçãoColeta de InformaçõesTestes de PenetraçãoSegurança na NuvemDetecção de SegredosConfiguração IncorretaRed Teaming
1.4k141há 1 anoRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
GitHub
cyberark/kubiscan

KubiScan

Uma ferramenta para analisar clusters Kubernetes em busca de permissões arriscadas

Ver Repositório

GitHub release License Stars

Uma ferramenta para escanear clusters Kubernetes em busca de permissões arriscadas no modelo de controle de acesso baseado em funções (RBAC) do Kubernetes. A ferramenta foi publicada como parte da pesquisa "Protegendo Clusters Kubernetes Eliminando Permissões Arriscadas" https://www.cyberark.com/threat-research-blog/securing-kubernetes-clusters-by-eliminating-risky-permissions/.

Índice

  • Visão geral
  • O que ela pode fazer?
  • Uso
    • Container
    • Diretamente com Python3
      • Pré-requisitos
      • Exemplo de instalação no Ubuntu
      • Com arquivo KubeConfig
      • De um remoto com token de ServiceAccount
  • Exemplos
  • Demonstração
  • YAML de Funções Arriscadas
  • Mostruário
  • Licença
  • Referências

Visão geral

O KubiScan ajuda administradores de cluster a identificar permissões que invasores poderiam explorar para comprometer os clusters. Isso pode ser especialmente útil em ambientes grandes, onde há muitas permissões difíceis de rastrear. O KubiScan coleta informações sobre funções/funções de cluster arriscadas, vinculações de funções/vinculações de funções de cluster, usuários e pods, automatizando processos manuais tradicionais e dando aos administradores a visibilidade necessária para reduzir o risco.

O que ela pode fazer?

  • Identificar Roles/ClusterRoles arriscadas
  • Identificar RoleBindings/ClusterRoleBindings arriscadas
  • Identificar Subjects arriscados (Usuários, Grupos e ServiceAccounts)
  • Identificar Pods/Containers arriscados
  • Extrair tokens de pods (todos ou por namespace)
  • Obter RoleBindings/ClusterRoleBindings associadas a uma Role, ClusterRole ou Subject (usuário, grupo ou service account)
  • Listar Subjects com um tipo específico ('User', 'Group' ou 'ServiceAccount')
  • Listar regras de uma RoleBinding ou ClusterRoleBinding
  • Mostrar Pods que têm acesso a dados secretos através de um volume ou variáveis de ambiente
  • Obter tokens de inicialização (bootstrap) para o cluster
  • Varredura de CVE
  • Suporte EKS/AKS/GKE

Uso

Container

Você pode executar assim:

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

Isso copiará todos os arquivos vinculados no arquivo de configuração para o container e abrirá um shell dentro do container.

Para construir a imagem Docker, execute:

root@kitploit:~
docker build -t kubiscan .

Diretamente com Python3

Pré-requisitos:

  • Python 3.6+
  • Pip3
  • Kubernetes Python Client
  • Prettytable
  • openssl (nativo no Ubuntu) – usado apenas para o token de join

Exemplo de instalação no Ubuntu:

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

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

Após instalar todos os requisitos acima, você pode executá-lo de duas formas diferentes:

Com arquivo KubeConfig:

Certifique-se de ter acesso ao arquivo ~/.kube/config e todos os certificados relevantes. Basta executar: kubiscan <comando> Por exemplo: kubiscan -rs mostrará todos os subjects arriscados (usuários, service accounts e grupos).

De um remoto com token de ServiceAccount

Algumas funcionalidades exigem uma service account privilegiada com as seguintes permissões:

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

Mas a maioria das funcionalidades não exige, então você pode usar estas configurações para uma service account limitada: Pode ser criada executando:

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

Observe que a partir do Kubernetes 1.24, a criação de uma service account não gera um secret. Isso significa que precisamos criar o secret. Antes do 1.24, você pode remover o objeto Secret dos comandos acima e salvar o token da service account em um arquivo: kubectl get secrets $(kubectl get sa kubiscan-sa -o=jsonpath='{.secrets[0].name}') -o=jsonpath='{.data.token}' | base64 -d > token

A partir do 1.24, você não precisa alterar nada e salva o token assim:

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

Após salvar o token no arquivo, você pode usá-lo assim: python3 ./KubiScan.py -ho <master_ip:master_port> -t /token <comando>

Por exemplo:

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

Note que você também pode usar a autoridade certificadora (ca.crt) para verificar a conexão SSL:

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

Para remover a service account privilegiada, execute os seguintes comandos:

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

Exemplos

Para ver todos os exemplos, execute python3 KubiScan.py -e ou de dentro do container kubiscan -e.

Demonstração

Um pequeno exemplo de uso do KubiScan:

YAML de Funções Arriscadas

Há um arquivo chamado risky_roles.yaml. Este arquivo contém modelos de funções arriscadas com prioridade. Embora o tipo (kind) em cada função seja Role, esses modelos serão comparados com qualquer Role/ClusterRole no cluster. Quando cada uma dessas funções é verificada em relação a uma função no cluster, ele verifica se a função no cluster contém as regras da função arriscada. Se contiver, será marcada como arriscada. Adicionamos todas as funções que consideramos arriscadas, mas como cada um pode definir o termo "arriscado" de forma diferente, você pode modificar o arquivo adicionando/removendo funções que considera mais/menos arriscadas.

❤️ Mostruário

  • Apresentado na RSA 2020 "Compromising Kubernetes Cluster by Exploiting RBAC Permissions"
  • Apresentado na RSA 2022 "Attacking and Defending Kubernetes Cluster: Kubesploit vs KubiScan"
  • Artigo do PortSwigger "KubiScan: Open source Kubernetes security tool showcased at Black Hat 2020"

Licença

Copyright (c) 2020 CyberArk Software Ltd. Todos os direitos reservados Este repositório é licenciado sob a Licença GPL-3.0 – veja o arquivo LICENSE para mais detalhes.

Referências:

Para mais comentários, sugestões ou perguntas, entre em contato com Eviatar Gerzi (@g3rzi) e CyberArk Labs.

Baixar ferramenta