hacktricks/network-services-pentesting/pentesting-kerberos-88/harvesting-tickets-from-linux.md
2023-06-06 18:56:34 +00:00

40 lines
4.5 KiB
Markdown

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 no diretório **/tmp**, na forma de **krb5cc\_%{uid}.**
* **Kernel Keyrings**, um espaço especial no kernel do Linux fornecido para armazenar chaves.
* **Memória do processo**, usada 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 esse parâmetro esteja faltando, seu valor padrão é _FILE:/tmp/krb5cc\_%{uid}_.
Para extrair tickets das outras 2 fontes (keyrings e processos), um ótimo artigo, [**Kerberos Credential Thievery (GNU/Linux)**](https://www.delaat.net/rp/2016-2017/p97/report.pdf), lançado 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** que reside dentro do kernel e é usada para **gerenciar e reter chaves**.
>
> A chamada do sistema **keyctl** foi introduzida na versão do kernel 2.6.10 5. Isso fornece **às aplicações do espaço do usuário uma API** que pode ser usada para interagir com 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 invasor pode então aproveitar essa informação para **procurar por tickets** 11 contendo keyrings 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 invasor**, esses pedaços são combinados na ordem correta para **reconstruir um ccache de arquivo**. Este arquivo reconstruído pode então ser exfiltrado para uma máquina invasora e depois usado para se passar por um usuário Kerberos. Um programa simples para gerar um cabeçalho ccache válido pode ser visto na Seção A.3.
Com base no **script heracles.sh** (do artigo), uma ferramenta em C que você pode usar (criada pelo autor do post completo) é [**tickey**](https://github.com/TarlogicSecurity/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/**](https://www.tarlogic.com/en/blog/how-to-attack-kerberos/)
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
- Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? ou quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
- Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
- Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
- **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **Compartilhe seus truques de hacking enviando PRs para o [repositório hacktricks](https://github.com/carlospolop/hacktricks) e [repositório hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
</details>