<summary><strong>Aprenda hacking AWS do zero ao herói com</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Obtenha o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe seus truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
Do [wikipedia](https://en.wikipedia.org/wiki/Memcached):
> **Memcached** (pronúncia: mem-cashed, mem-cash-dee) é um sistema de [cache de memória](https://en.wikipedia.org/wiki/Memory\_caching) distribuído de propósito geral. É frequentemente usado para acelerar sites dinâmicos baseados em banco de dados, armazenando em cache dados e objetos na RAM para reduzir o número de vezes que uma fonte de dados externa (como um banco de dados ou API) precisa ser lida.
Embora o Memcached suporte SASL, a maioria das instâncias é **exposta sem autenticação**.
No reino do memcache, um protocolo que auxilia na organização de dados por slabs, existem comandos específicos para inspecionar os dados armazenados, embora com limitações notáveis:
1. As chaves só podem ser despejadas por classe de slab, agrupando chaves de tamanho de conteúdo semelhante.
2. Existe um limite de uma página por classe de slab, equivalente a 1MB de dados.
3. Este recurso é não oficial e pode ser descontinuado a qualquer momento, como discutido em [fóruns da comunidade](https://groups.google.com/forum/?fromgroups=#!topic/memcached/1-T8I-RVGKM).
A limitação de apenas poder despejar 1MB de potencialmente gigabytes de dados é particularmente significativa. No entanto, essa funcionalidade ainda pode oferecer insights sobre padrões de uso de chaves, dependendo das necessidades específicas. Para aqueles menos interessados na mecânica, uma visita à [seção de ferramentas](https://lzone.de/cheat-sheet/memcached#tools) revela utilitários para despejo abrangente. Alternativamente, o processo de usar telnet para interação direta com configurações de memcached é descrito abaixo.
A organização da memória do Memcache é fundamental. Iniciar o memcache com a opção "-vv" revela as classes de slab que ele gera, conforme mostrado abaixo:
Este output revela os tipos de slab ativos, chunks utilizados e estatísticas operacionais, oferecendo insights sobre a eficiência das operações de leitura e escrita.
Outro comando útil, "stats items", fornece dados sobre evicções, restrições de memória e ciclos de vida dos itens:
Com a versão do memcache 1.4.31 e acima, um novo método mais seguro para despejar chaves em um ambiente de produção é introduzido, utilizando o modo não-bloqueante conforme detalhado nas [notas de lançamento](https://github.com/memcached/memcached/wiki/ReleaseNotes1431). Esta abordagem gera uma saída extensa, portanto, é recomendável utilizar o comando 'nc' para eficiência. Exemplos incluem:
| PHP | [memcache.php](http://livebookmark.net/journal/2008/05/21/memcachephp-stats-like-apcphp/) | Interface gráfica de monitoramento do Memcache que também permite o dumping de chaves. | | |
| libmemcached | [peep](http://blog.evanweaver.com/2009/04/20/peeping-into-memcached/) | **Congela seu processo memcached!!!** Tenha cuidado ao usar isso em produção. Ainda assim, você pode contornar a limitação de 1MB e realmente fazer o dumping de **todas** as chaves. | | |
Se você tentar "definir" ou "adicionar" uma chave com um tempo limite maior do que o máximo permitido, você pode não obter o que espera, pois o memcached então trata o valor como um carimbo de data/hora Unix. Além disso, se o carimbo de data/hora estiver no passado, não fará nada. Seu comando falhará silenciosamente.
Apesar da documentação mencionar algo sobre o envolvimento de 64 bits, o estouro de um valor usando "incr" faz com que o valor desapareça. É necessário criá-lo novamente usando "add"/"set".
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Se deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* 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)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).