5.2 KiB
Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
Outras formas de apoiar o HackTricks:
- Se você quer ver sua empresa anunciada no HackTricks ou baixar o HackTricks em PDF, confira os PLANOS DE ASSINATURA!
- Adquira o material oficial PEASS & HackTricks
- Descubra A Família PEASS, nossa coleção de NFTs exclusivos
- Junte-se ao grupo 💬 Discord ou ao grupo telegram ou siga-me no Twitter 🐦 @carlospolopm.
- Compartilhe suas técnicas de hacking enviando PRs para os repositórios github HackTricks e HackTricks Cloud.
No Linux, os tickets são armazenados em caches de credenciais ou ccaches. Existem 3 tipos principais, que indicam onde os tickets podem ser encontrados:
- Arquivos, por padrão na pasta /tmp, no formato krb5cc_%{uid}.
- Keyrings do Kernel, um espaço especial no kernel do Linux fornecido para armazenar chaves.
- Memória do processo, usado quando apenas um processo precisa usar os tickets.
Para verificar qual tipo de armazenamento é usado em uma máquina específica, a variável default_ccache_name deve ser verificada no arquivo /etc/krb5.conf, que por padrão tem permissão de leitura para qualquer usuário. Caso este parâmetro esteja ausente, seu valor padrão é FILE:/tmp/krb5cc_%{uid}.
Para extrair tickets das outras 2 fontes (keyrings e processos), um excelente artigo, Kerberos Credential Thievery (GNU/Linux), publicado em 2017, explica maneiras de recuperar os tickets deles.
Keyring - Do artigo
O kernel do Linux possui um recurso chamado keyrings. Esta é uma área de memória residindo dentro do kernel que é usada para gerenciar e reter chaves.
A chamada de sistema keyctl foi introduzida na versão do kernel 2.6.10 5 . Isso fornece aplicações do espaço do usuário uma API que pode ser usada para interagir com os keyrings do kernel.
O nome do keyring em uso pode ser analisado a partir do arquivo de configuração do Kerberos /etc/krb5.conf que tem permissão de leitura habilitada para qualquer pessoa (octal 644) por padrão. Um atacante pode então aproveitar essa informação para procurar por keyrings contendo tickets e extrair os tickets. Um script de prova de conceito que implementa essa funcionalidade pode ser visto na Seção A.2 (hercules.sh). Em um keyring, o ccache é armazenado como componentes. Como visto na Figura 2, um ccache de arquivo é composto por 3 componentes distintos: cabeçalho, principal padrão e uma sequência de credenciais. Um keyring contém o principal padrão e as credenciais. Este script irá despejar esses componentes em arquivos separados. Em seguida, usando um cabeçalho sintetizado pelo atacante, essas peças são combinadas na ordem correta para reconstruir um ccache de arquivo. Este arquivo reconstruído pode então ser exfiltrado para uma máquina do atacante e usado para se passar por um usuário do Kerberos. Um programa simples para gerar um cabeçalho de ccache válido pode ser visto na Seção A.3.
Baseado no script heracles.sh (do artigo), uma ferramenta em C que você pode usar (criada pelo autor do post completo) é tickey, e ela extrai tickets de keyrings:
/tmp/tickey -i
Esta informação foi retirada de: https://www.tarlogic.com/en/blog/how-to-attack-kerberos/
Aprenda hacking no AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
Outras formas de apoiar o HackTricks:
- Se você quer ver sua empresa anunciada no HackTricks ou baixar o HackTricks em PDF, confira os PLANOS DE ASSINATURA!
- Adquira o material oficial PEASS & HackTricks
- Descubra A Família PEASS, nossa coleção de NFTs exclusivos
- Junte-se ao grupo 💬 Discord ou ao grupo telegram ou siga-me no Twitter 🐦 @carlospolopm.
- Compartilhe suas técnicas de hacking enviando PRs para os repositórios do GitHub HackTricks e HackTricks Cloud.