<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
> **Memcached** (wymowa: mem-cashed, mem-cash-dee) to ogólnego przeznaczenia rozproszony [system buforowania pamięci](https://en.wikipedia.org/wiki/Memory\_caching). Często jest używany do przyspieszania dynamicznych stron internetowych opartych na bazie danych poprzez buforowanie danych i obiektów w pamięci RAM w celu zmniejszenia liczby odczytów zewnętrznego źródła danych (takiego jak baza danych lub interfejs API).
Memcached jest rozproszonym systemem pamięci podręcznej, który jest szeroko stosowany w aplikacjach internetowych do przyspieszania dostępu do danych. Jednakże, niektóre konfiguracje Memcached mogą prowadzić do poważnych luk w zabezpieczeniach, które mogą być wykorzystane przez hakerów do uzyskania nieautoryzowanego dostępu do danych.
Aby wykryć, czy dana aplikacja korzysta z Memcached, można użyć narzędzi takich jak `nmap` lub `masscan`. Przeskanuj porty 11211 i 11212, które są domyślnie używane przez Memcached.
1. Atak DDoS: Memcached może być wykorzystany do przeprowadzenia ataku DDoS poprzez wysyłanie zapytań UDP z fałszywym adresem IP ofiary. Aby przeprowadzić taki atak, można użyć narzędzi takich jak `memcrashed` lub `Memcrashed-DDoS-Exploit`.
2. Atak na wyciek danych: Jeśli Memcached jest źle skonfigurowany, może wystąpić wyciek danych. Można to wykorzystać, aby uzyskać dostęp do poufnych informacji. Aby przeprowadzić taki atak, można użyć narzędzi takich jak `Memcached-Server-Scanner` lub `Memcached-Dumper`.
#### Zabezpieczanie Memcached
Aby zabezpieczyć Memcached przed atakami, należy podjąć następujące kroki:
1. Wyłączanie nasłuchu na publicznym interfejsie sieciowym i ograniczenie dostępu tylko do lokalnego interfejsu sieciowego.
2. Skonfiguruj Memcached, aby wymagał uwierzytelniania przy połączeniach.
3. Zaktualizuj Memcached do najnowszej wersji, aby uniknąć znanych luk w zabezpieczeniach.
4. Monitoruj Memcached, aby wykryć ewentualne nieprawidłowości lub ataki.
#### Podsumowanie
Memcached jest potężnym narzędziem do przyspieszania dostępu do danych w aplikacjach internetowych. Jednakże, należy pamiętać o odpowiednim zabezpieczeniu Memcached, aby uniknąć potencjalnych luk w zabezpieczeniach i ataków.
Memcached jest popularnym systemem cache'owania, który jest szeroko stosowany w aplikacjach internetowych. Jednakże, niektóre konfiguracje Memcached mogą być podatne na ataki zewnętrzne, co może prowadzić do wycieku poufnych danych. W tym rozdziale omówimy automatyczne narzędzia, które mogą pomóc w identyfikacji i eksploatacji takich podatności.
#### Memcrashed
Memcrashed to narzędzie napisane w języku Python, które automatyzuje ataki DDoS na serwery Memcached. Narzędzie to wykorzystuje protokół UDP, aby wysyłać zapytania do serwera Memcached, które są odpowiednio spreparowane, aby wywołać odpowiedź o dużej objętości. Atak DDoS za pomocą Memcrashed może spowodować znaczne obciążenie serwera i prowadzić do jego awarii.
Aby użyć narzędzia Memcrashed, należy wprowadzić adres IP docelowego serwera Memcached oraz port, na którym serwer nasłuchuje. Narzędzie automatycznie wygeneruje i wyśle odpowiednie zapytania, aby wywołać odpowiedź o dużej objętości.
Memcrashed Amplification Scanner to narzędzie napisane w języku Python, które automatycznie skanuje sieć w poszukiwaniu serwerów Memcached, które mogą być wykorzystane do ataków DDoS za pomocą narzędzia Memcrashed. Narzędzie to wysyła zapytania do wszystkich adresów IP w podanej podsieci, aby sprawdzić, czy serwer Memcached jest dostępny i czy można go wykorzystać do ataku.
Aby użyć narzędzia Memcrashed Amplification Scanner, należy wprowadzić adres IP podsieci, którą chcemy zeskanować, oraz port, na którym serwery Memcached nasłuchują. Narzędzie automatycznie skanuje wszystkie adresy IP w podsieci i wyświetla wyniki.
Memcrashed Amplification Scanner (z wykorzystaniem Shodan) to rozszerzenie narzędzia Memcrashed Amplification Scanner, które wykorzystuje Shodan do automatycznego skanowania sieci w poszukiwaniu serwerów Memcached. Shodan to wyszukiwarka urządzeń podłączonych do Internetu, która umożliwia identyfikację publicznie dostępnych serwerów Memcached.
Aby użyć narzędzia Memcrashed Amplification Scanner z wykorzystaniem Shodan, należy wprowadzić klucz API Shodan oraz adres IP podsieci, którą chcemy zeskanować. Narzędzie automatycznie wykorzystuje Shodan do skanowania sieci i wyświetla wyniki.
#### Memcrashed Amplification Scanner (z wykorzystaniem Censys)
Memcrashed Amplification Scanner (z wykorzystaniem Censys) to rozszerzenie narzędzia Memcrashed Amplification Scanner, które wykorzystuje Censys do automatycznego skanowania sieci w poszukiwaniu serwerów Memcached. Censys to platforma do monitorowania i analizy danych związanych z infrastrukturą internetową.
Aby użyć narzędzia Memcrashed Amplification Scanner z wykorzystaniem Censys, należy wprowadzić klucz API Censys oraz adres IP podsieci, którą chcemy zeskanować. Narzędzie automatycznie wykorzystuje Censys do skanowania sieci i wyświetla wyniki.
#### Memcrashed Amplification Scanner (z wykorzystaniem ZoomEye)
Memcrashed Amplification Scanner (z wykorzystaniem ZoomEye) to rozszerzenie narzędzia Memcrashed Amplification Scanner, które wykorzystuje ZoomEye do automatycznego skanowania sieci w poszukiwaniu serwerów Memcached. ZoomEye to wyszukiwarka urządzeń podłączonych do Internetu, która umożliwia identyfikację publicznie dostępnych serwerów Memcached.
Aby użyć narzędzia Memcrashed Amplification Scanner z wykorzystaniem ZoomEye, należy wprowadzić klucz API ZoomEye oraz adres IP podsieci, którą chcemy zeskanować. Narzędzie automatycznie wykorzystuje ZoomEye do skanowania sieci i wyświetla wyniki.
1. Klucze mogą być dumpowane tylko według klasy slab, grupującej klucze o podobnym rozmiarze zawartości.
2. Istnieje limit jednej strony na klasę slab, co równa się 1MB danych.
3. Ta funkcjonalność jest nieoficjalna i może zostać wycofana w dowolnym momencie, jak omówiono w [forum społecznościowym](https://groups.google.com/forum/?fromgroups=#!topic/memcached/1-T8I-RVGKM).
Ograniczenie polegające na możliwości dumpowania tylko 1MB danych spośród potencjalnie gigabajtów danych jest szczególnie istotne. Niemniej jednak, ta funkcjonalność może wciąż dostarczyć informacji na temat wzorców używania kluczy, w zależności od konkretnych potrzeb. Dla tych, którzy mniej interesują się mechaniką, w [sekcji narzędzi](https://lzone.de/cheat-sheet/memcached#tools) można znaleźć narzędzia do kompleksowego dumpowania. Alternatywnie, poniżej przedstawiono proces korzystania z telnetu do bezpośredniej interakcji z konfiguracją memcached.
### **Jak to działa**
Organizacja pamięci w memcache jest kluczowa. Uruchomienie memcache z opcją "-vv" ujawnia generowane przez niego klasy slab, jak pokazano poniżej:
```bash
$ memcached -vv
slab class 1: chunk size 96 perslab 10922
[...]
```
Aby wyświetlić wszystkie obecnie istniejące slaby, używa się następującej komendy:
```bash
stats slabs
```
Dodanie pojedynczego klucza do memcached 1.4.13 ilustruje, jak są tworzone i zarządzane klasy slabów. Na przykład:
Ten wynik ujawnia aktywne typy slabów, wykorzystane fragmenty i statystyki operacyjne, dostarczając informacji na temat efektywności operacji odczytu i zapisu.
Te statystyki te pozwalają na przypuszczenia dotyczące zachowania pamięci podręcznej aplikacji, w tym wydajności pamięci podręcznej dla różnych rozmiarów zawartości, alokacji pamięci i pojemności do przechowywania dużych obiektów.
Wersja memcache 1.4.31 i nowsze wprowadzają nową, bezpieczniejszą metodę zrzutu kluczy w środowisku produkcyjnym, wykorzystując tryb nieblokujący, jak szczegółowo opisano w [notatkach wydania](https://github.com/memcached/memcached/wiki/ReleaseNotes1431). Ten podejście generuje obszerny wynik, dlatego zaleca się użycie polecenia 'nc' dla efektywności. Przykłady obejmują:
| PHP | [memcache.php](http://livebookmark.net/journal/2008/05/21/memcachephp-stats-like-apcphp/) | GUI monitorujące Memcache, które umożliwia również wyświetlanie kluczy. | | |
| libmemcached | [peep](http://blog.evanweaver.com/2009/04/20/peeping-into-memcached/) | **Zamraża proces memcached!!!** Bądź ostrożny podczas używania tego w produkcji. Używając go, można obejść ograniczenie 1MB i naprawdę wyświetlić **wszystkie** klucze. | | |
Jeśli próbujesz ustawić klucz z limitem czasu większym niż dozwolony maksymalny, może się okazać, że nie otrzymasz oczekiwanego rezultatu, ponieważ memcached traktuje wartość jako znacznik czasu Unix. Jeśli znacznik czasu jest w przeszłości, nie zostanie wykonana żadna operacja. Twoje polecenie zakończy się bez żadnego komunikatu.
Mimo że dokumentacja mówi o owinięciu wartości przy przepełnieniu 64-bitowym za pomocą polecenia "incr", powoduje to zniknięcie wartości. Należy ją ponownie utworzyć za pomocą polecenia "add"/"set".
<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.