11211 - Pentesting Memcache
Informacje o protokole
Z Wikipedii:
Memcached (wymowa: mem-cashed, mem-cash-dee) to ogólnego przeznaczenia rozproszony system buforowania pamięci. 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).
Chociaż Memcached obsługuje SASL, większość instancji jest narażona bez uwierzytelnienia.
Domyślny port: 11211
Wyliczanie
Ręczne
Aby wydobyć wszystkie informacje zapisane w instancji memcache, musisz:
Znaleźć slaby z aktywnymi elementami
Pobrać nazwy kluczy wykrytych slabów
Wydobyć zapisane dane, pobierając nazwy kluczy
Pamiętaj, że ta usługa to tylko pamięć podręczna, więc dane mogą się pojawiać i znikać.
Instrukcja2
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.
Wykrywanie Memcached
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.
Ataki na Memcached
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
lubMemcrashed-DDoS-Exploit
.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
lubMemcached-Dumper
.
Zabezpieczanie Memcached
Aby zabezpieczyć Memcached przed atakami, należy podjąć następujące kroki:
Wyłączanie nasłuchu na publicznym interfejsie sieciowym i ograniczenie dostępu tylko do lokalnego interfejsu sieciowego.
Skonfiguruj Memcached, aby wymagał uwierzytelniania przy połączeniach.
Zaktualizuj Memcached do najnowszej wersji, aby uniknąć znanych luk w zabezpieczeniach.
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.
Automatyczne
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
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)
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.
Dumpowanie kluczy Memcache
W świecie memcache istnieją specjalne polecenia umożliwiające inspekcję przechowywanych danych, choć z pewnymi ograniczeniami:
Klucze mogą być dumpowane tylko według klasy slab, grupującej klucze o podobnym rozmiarze zawartości.
Istnieje limit jednej strony na klasę slab, co równa się 1MB danych.
Ta funkcjonalność jest nieoficjalna i może zostać wycofana w dowolnym momencie, jak omówiono w forum społecznościowym.
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 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:
Aby wyświetlić wszystkie obecnie istniejące slaby, używa się następującej komendy:
Dodanie pojedynczego klucza do memcached 1.4.13 ilustruje, jak są tworzone i zarządzane klasy slabów. Na przykład:
Wykonanie polecenia "stats slabs" po dodaniu klucza dostarcza szczegółowych statystyk dotyczących wykorzystania slabów:
Ten wynik ujawnia aktywne typy slabów, wykorzystane fragmenty i statystyki operacyjne, dostarczając informacji na temat efektywności operacji odczytu i zapisu.
Inne przydatne polecenie, "stats items", dostarcza danych dotyczących usuwania, ograniczeń pamięciowych i cykli życia elementów:
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.
Wyciek kluczy
Wersje wcześniejsze niż 1.4.31 wyciekają klucze według klasy slab za pomocą:
Na przykład, aby wydobyć klucz w klasie #1:
Ta metoda iteruje po klasach slab, wyodrębniając i opcjonalnie zrzutując wartości kluczy.
ZRZUTOWANIE KLUCZY MEMCACHE (WERSJA 1.4.31+)
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. Ten podejście generuje obszerny wynik, dlatego zaleca się użycie polecenia 'nc' dla efektywności. Przykłady obejmują:
NARZĘDZIA DO WYŚWIETLANIA DANYCH
Tabela stąd.
Języki programowania | Narzędzia | Funkcjonalność | ||
---|---|---|---|---|
PHP | Wyświetla nazwy kluczy. | |||
Perl | Wyświetla klucze i wartości. | |||
Ruby | Wyświetla nazwy kluczy. | |||
Perl | Narzędzie w module CPAN | ached/) | ||
PHP | GUI monitorujące Memcache, które umożliwia również wyświetlanie kluczy. | |||
libmemcached | 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. |
Rozwiązywanie problemów
Ograniczenie danych do 1MB
Należy pamiętać, że przed wersją memcached 1.4 nie można przechowywać obiektów większych niż 1MB ze względu na domyślny maksymalny rozmiar slabu.
Nigdy nie ustawiaj limitu czasu na więcej niż 30 dni!
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.
Jeśli chcesz użyć maksymalnego okresu ważności, należy podać wartość 2592000. Przykład:
Znikające klucze przy przepełnieniu
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".
Replikacja
Sam memcached nie obsługuje replikacji. Jeśli naprawdę jej potrzebujesz, musisz skorzystać z rozwiązań firm trzecich:
repcached: wielomasterowa replikacja asynchroniczna (zestaw łatek memcached 1.2)
Interfejs memcached Couchbase: Użyj CouchBase jako zamiennika memcached
yrmcds: kompatybilne z memcached, klucz-wartość, magazyn Master-Slave
twemproxy (znany również jako nutcracker): proxy obsługujące memcached
Arkusz podpowiedzi poleceń
pageMemcache CommandsShodan
port:11211 "STAT pid"
"STAT pid"
Odnośniki
Last updated