11211 - Pentesting Memcache
Protokol-inligting
Van wikipedia:
Memcached (uitspraak: mem-cashed, mem-cash-dee) is 'n algemene verspreide geheue-caching-sisteem. Dit word dikwels gebruik om dinamiese databasis-aangedrewe webwerwe te versnel deur data en voorwerpe in RAM te kasheer om die aantal kere wat 'n eksterne data-bron (soos 'n databasis of API) gelees moet word, te verminder.
Alhoewel Memcached SASL ondersteun, word die meeste instansies sonder outentifikasie blootgestel.
Verstekpoort: 11211
Opstel
Handleiding
Om alle inligting wat binne 'n memcache-instantie gestoor is, uit te voer, moet jy die volgende doen:
Vind slabs met aktiewe items
Kry die sleutelname van die voorheen opgespoorde slabs
Voer die gestoorde data uit deur die sleutelname te kry
Onthou dat hierdie diens net 'n kasgeheue is, so data kan verskyn en verdwyn.
Handleiding2
Memcached is een gedistribueerd geheugencachesysteem dat wordt gebruikt om de prestaties van dynamische webtoepassingen te verbeteren door veelgebruikte gegevens in het geheugen op te slaan. Het draait op poort 11211 en kan worden benaderd via het TCP-protocol.
Memcached-commando's
Hier zijn enkele veelgebruikte Memcached-commando's:
set: Hiermee kunt u een waarde instellen voor een specifieke sleutel.
get: Hiermee kunt u de waarde ophalen die is gekoppeld aan een specifieke sleutel.
add: Hiermee kunt u een waarde toevoegen aan een specifieke sleutel, maar alleen als de sleutel nog niet bestaat.
replace: Hiermee kunt u de waarde vervangen die is gekoppeld aan een specifieke sleutel, maar alleen als de sleutel al bestaat.
delete: Hiermee kunt u een specifieke sleutel en de bijbehorende waarde verwijderen.
incr: Hiermee kunt u de waarde van een specifieke sleutel met een bepaald bedrag verhogen.
decr: Hiermee kunt u de waarde van een specifieke sleutel met een bepaald bedrag verlagen.
Memcached-aanvallen
Memcached kan kwetsbaar zijn voor verschillende aanvallen, zoals:
Memcached DDoS-aanval: Een aanvaller kan een DDoS-aanval uitvoeren door een groot aantal valse verzoeken naar een Memcached-server te sturen, waardoor de server overbelast raakt en niet meer reageert op legitieme verzoeken.
Memcached-gegevenslek: Als een Memcached-server onjuist is geconfigureerd en toegankelijk is vanaf het internet, kan een aanvaller gevoelige gegevens uit het cachegeheugen extraheren.
Memcached-misbruik van onbeveiligde commando's: Een aanvaller kan onbeveiligde Memcached-commando's misbruiken om gegevens te wijzigen, te verwijderen of te stelen.
Memcached-pentesten
Bij het uitvoeren van een pentest op een Memcached-server, zijn hier enkele belangrijke stappen om te volgen:
Identificeer de Memcached-server en bepaal of deze toegankelijk is vanaf het internet.
Voer een poortscan uit om te controleren of poort 11211 open is.
Gebruik de Memcached-commando's om gegevens te manipuleren en kwetsbaarheden te identificeren.
Voer een DDoS-test uit om de veerkracht van de server te testen tegen een aanval.
Controleer de configuratie van de Memcached-server om ervoor te zorgen dat deze correct is beveiligd.
Memcached-beveiligingstips
Om de beveiliging van een Memcached-server te verbeteren, kunt u de volgende maatregelen nemen:
Beperk de toegang tot de Memcached-server tot vertrouwde IP-adressen.
Schakel authenticatie in om ervoor te zorgen dat alleen geautoriseerde gebruikers toegang hebben.
Beveilig de communicatie met de Memcached-server door gebruik te maken van versleuteling.
Houd de Memcached-software up-to-date met de nieuwste patches en beveiligingsupdates.
Controleer regelmatig de configuratie van de Memcached-server om ervoor te zorgen dat deze correct is geconfigureerd en beveiligd.
Bronnen
Outomaties
Memcached is a widely used in-memory caching system that is often deployed in web applications to improve performance. However, misconfigurations in Memcached can lead to security vulnerabilities that can be exploited by attackers.
Memcached is a network service that listens on port 11211 by default. It uses a simple text-based protocol, making it easy to interact with using tools like telnet or netcat.
One common misconfiguration is leaving Memcached exposed to the internet without any authentication or access controls. This allows anyone to connect to the service and perform various operations, including retrieving and modifying data.
Attackers can take advantage of this misconfiguration to launch distributed denial-of-service (DDoS) attacks by sending a large number of requests to the Memcached service, overwhelming the target server's resources.
To automate the process of identifying and exploiting misconfigured Memcached instances, you can use tools like Memcrashed and DDoS-Memcached. These tools leverage the Memcached protocol to send a large number of requests to the target server, causing it to consume excessive resources and potentially crash.
It is important to note that exploiting misconfigured Memcached instances is illegal and unethical. It is recommended to only perform these actions in a controlled environment with proper authorization.
To protect against Memcached attacks, it is crucial to properly configure and secure Memcached instances. This includes enabling authentication, restricting access to trusted IP addresses, and monitoring for any suspicious activity.
By understanding the potential risks and taking appropriate security measures, you can mitigate the vulnerabilities associated with Memcached and ensure the integrity and availability of your web applications.
Dumping Memcache Sleutels
In die wêreld van memcache, 'n protokol wat help om data te organiseer deur middel van slabs, bestaan daar spesifieke bevele om die gestoorde data te ondersoek, alhoewel met merkbare beperkings:
Sleutels kan slegs gedump word volgens slab-klas, wat sleutels van soortgelyke inhoudsgrootte groepeer.
Daar is 'n limiet van een bladsy per slab-klas, wat gelykstaan aan 1MB data.
Hierdie funksie is onoffisieel en kan enige tyd gestaak word, soos bespreek in gemeenskapsforums.
Die beperking om slegs 1MB te kan dump van moontlik gigabytes data is veral betekenisvol. Nietemin kan hierdie funksionaliteit steeds insig bied in sleutelgebruikspatrone, afhangende van spesifieke behoeftes. Vir diegene wat minder belangstel in die meganika, onthul 'n besoek aan die gereedskap-afdeling hulpmiddels vir omvattende dumping. Alternatiewelik word die proses om telnet te gebruik vir direkte interaksie met memcached-opsette hieronder uiteengesit.
Hoe dit Werk
Memcache se geheue-organisasie is van kardinale belang. Deur memcache te inisieer met die "-vv" opsie, word die slab-klasse wat dit genereer, onthul, soos hieronder getoon:
Om al die tans bestaande slabs te vertoon, word die volgende bevel gebruik:
Die toevoeging van 'n enkele sleutel tot memcached 1.4.13 illustreer hoe slabsklasse bevolk en bestuur word. Byvoorbeeld:
Die uitvoering van die "stats slabs" bevel na sleutel byvoeging lewer gedetailleerde statistieke oor die gebruik van slabs:
Hierdie uitset toon die aktiewe slabs, gebruikte stukke en operasionele statistieke, wat insig bied in die doeltreffendheid van lees- en skryfoperasies.
'n Ander nuttige bevel, "stats items", verskaf data oor verwyderings, geheuebeperkings en itemlewensiklusse:
Hierdie statistieke maak dit moontlik om opgevoede aannames te maak oor die gedrag van toepassingskaping, insluitend kapingseffektiwiteit vir verskillende inhoudsgroottes, geheue-toewysing en kapasiteit vir die kaping van groot voorwerpe.
Sleutels dump
Vir weergawes vóór 1.4.31 word sleutels gedump deur gebruik te maak van slab-klas:
Byvoorbeeld, om 'n sleutel in klas #1 te dump:
Hierdie metode loop oor slab klasse, onttrek en opsioneel dump sleutelwaardes.
DUMPING MEMCACHE SLEUTELS (VER 1.4.31+)
Met memcache weergawe 1.4.31 en hoër, word 'n nuwe, veiliger metode vir die dump van sleutels in 'n produksie-omgewing geïntroduceer, deur gebruik te maak van nie-blokkerende modus soos beskryf in die vrystellingsnotas. Hierdie benadering genereer uitgebreide uitset, daarom word die aanbeveling gemaak om die 'nc' opdrag vir doeltreffendheid te gebruik. Voorbeelde sluit in:
DUMPING GEREEDSKAP
Tabel van hier.
Programmeertaal | Gereedskap | Funksionaliteit | ||
---|---|---|---|---|
PHP | Druk sleutelname. | |||
Perl | Druk sleutels en waardes af | |||
Ruby | Druk sleutelname. | |||
Perl | Gereedskap in CPAN-module | ached/) | ||
PHP | Memcache Monitoringskerm wat ook sleutels kan dump | |||
libmemcached | Bevries jou memcached-proses!!! Wees versigtig wanneer jy dit in produksie gebruik. Deur dit te gebruik, kan jy die 1MB-beperking omseil en alle sleutels regtig dump. |
Probleemoplossing
1MB Data Beperking
Let daarop dat voor memcached 1.4 kan jy nie voorwerpe groter as 1MB stoor nie as gevolg van die verstek maksimum slabs grootte.
Stel nooit 'n tydsbeperking > 30 dae nie!
As jy probeer om 'n sleutel met 'n tydsbeperking groter as die toegelate maksimum te "stel" of "toe te voeg", mag jy nie kry wat jy verwag nie, omdat memcached dan die waarde as 'n Unix-timestamp hanteer. As die tydstempel in die verlede is, sal dit niks doen nie. Jou opdrag sal stilweg misluk.
As jy dus die maksimum leeftyd wil gebruik, spesifiseer 2592000. Voorbeeld:
Verdwynende Sleutels by Oorvloei
Ten spyte van die dokumentasie wat iets sê oor die oorvloei van 'n waarde van 64-biet, veroorsaak die gebruik van "incr" dat die waarde verdwyn. Dit moet weer geskep word deur gebruik te maak van "add"/"set".
Replikasie
memcached ondersteun nie self replikasie nie. As jy dit regtig nodig het, moet jy van derde party-oplossings gebruik maak:
repcached: Multi-meester asynchrone replikasie (memcached 1.2-patchstel)
Couchbase memcached-interface: Gebruik CouchBase as 'n memcached-drop-in
yrmcds: memcached-kompatibele Meester-Slaaf sleutelwaardestoor
twemproxy (aka nutcracker): proksi met memcached-ondersteuning
Opdrag Spiekbriefie
pageMemcache CommandsShodan
port:11211 "STAT pid"
"STAT pid"
Verwysings
Last updated