11211 - Pentesting Memcache
Taarifa za Itifaki
Kutoka wikipedia:
Memcached (matamshi: mem-cashed, mem-cash-dee) ni mfumo wa kusambaza kumbukumbu ya kawaida ya kumbukumbu ya kache. Mara nyingi hutumiwa kuongeza kasi ya tovuti za wavuti zinazotumia hifadhidata za kudumu kwa kuhifadhi data na vitu kwenye RAM ili kupunguza idadi ya mara ambazo chanzo cha data nje (kama vile hifadhidata au API) inapaswa kusomwa.
Ingawa Memcached inasaidia SASL, sehemu nyingi zina hazina uthibitisho.
Bandari ya chaguo-msingi: 11211
Uchambuzi
Kwa Mkono
Ili kuchukua habari zote zilizohifadhiwa ndani ya kifaa cha memcache unahitaji:
Kupata slabs na vitu vilivyopo
Pata majina ya funguo za slabs zilizogunduliwa hapo awali
Chukua data iliyohifadhiwa kwa kupata majina ya funguo
Kumbuka kuwa huduma hii ni tu hifadhi, kwa hivyo data inaweza kuonekana na kutoweka.
Mwongozo2
Memcached ni mfumo wa kuhifadhi data ya kumbukumbu ya kati (in-memory caching) ambayo inaweza kutumiwa kuboresha utendaji wa tovuti na programu. Katika mwongozo huu, tutajifunza jinsi ya kufanya pentesting kwenye seva ya Memcached ili kugundua udhaifu na kufanya mashambulizi.
Kuanzisha Mazingira
Kabla ya kuanza pentesting, tunahitaji kuwa na mazingira ya Memcached yaliyosanidiwa. Unaweza kufanya hivyo kwa kufuata hatua zifuatazo:
Sakinisha Memcached kwenye seva yako.
Sanidi Memcached kwa kusikiliza kwenye bandari ya 11211.
Hakikisha kuwa Memcached inaruhusu upatikanaji kutoka kwa anwani ya IP ya mtandao wako.
Kugundua Memcached
Kabla ya kuanza kufanya mashambulizi, tunahitaji kugundua seva ya Memcached inayopatikana. Tunaweza kutumia zana kama nmap
au masscan
kufanya hivyo. Kwa mfano, unaweza kutumia amri ifuatayo:
Mashambulizi ya Memcached
Kuna aina kadhaa za mashambulizi ambayo tunaweza kufanya kwenye seva ya Memcached. Hapa kuna baadhi yao:
Mashambulizi ya kufurika (Flood Attacks): Tunaweza kutumia zana kama
memcrashed
kufanya mashambulizi ya kufurika kwa kutuma maombi mengi ya kumbukumbu kwa seva ya Memcached. Hii inaweza kusababisha kuzidiwa kwa rasilimali na kusababisha kukwama kwa seva.Mashambulizi ya kumbukumbu (Memory Attacks): Tunaweza kutumia zana kama
memcrashed
kufanya mashambulizi ya kumbukumbu kwa kuchukua faida ya udhaifu katika itifaki ya Memcached. Hii inaweza kusababisha kuvuja kwa data nyeti au hata kuchukua udhibiti wa seva.
Kujilinda dhidi ya Mashambulizi ya Memcached
Ili kujilinda dhidi ya mashambulizi ya Memcached, unaweza kuchukua hatua zifuatazo:
Sanidi Memcached kwa usalama: Hakikisha kuwa Memcached imefungwa kwa anwani za IP zinazofaa na bandari zinazofaa. Pia, hakikisha kuwa Memcached haipatikani kutoka kwa mtandao wote.
Tumia firewall: Weka firewall kwenye seva yako ili kuzuia upatikanaji usioidhinishwa kwenye bandari ya Memcached.
Fanya upya ufungaji wa Memcached: Ikiwa una wasiwasi kuwa seva yako imeathiriwa, fanya upya ufungaji wa Memcached na sanidi upya mipangilio yote.
Kwa kufuata hatua hizi, unaweza kujilinda dhidi ya mashambulizi ya Memcached na kuhakikisha usalama wa seva yako.
Kiotomatiki
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.
One common misconfiguration is leaving the Memcached service exposed to the internet without any authentication. This allows anyone to connect to the Memcached service and perform various operations, including retrieving and modifying data.
To automate the process of identifying and exploiting misconfigured Memcached instances, you can use tools like memcrashed
or Memcrashed-DDoS-Exploit
. These tools leverage the Memcached protocol to send a large number of UDP packets to the target Memcached server, causing it to amplify the traffic and potentially overload the target's network.
To use these tools, you need to provide the IP address of the target Memcached server and specify the port on which the Memcached service is running (usually port 11211). The tools will then send a series of commands to the Memcached server, such as stats
, get
, or set
, to gather information or manipulate data.
It is important to note that exploiting misconfigured Memcached instances without proper authorization is illegal and unethical. These tools should only be used for legitimate purposes, such as penetration testing or security research, with the explicit permission of the target organization.
To protect your own Memcached instances from being exploited, make sure to follow best practices such as enabling authentication, restricting access to trusted networks, and regularly updating and patching the Memcached software.
Kudondosha Funguo za Memcache
Katika ulimwengu wa memcache, itifaki inayosaidia kuandaa data kwa njia ya slabs, amri maalum zipo kwa ajili ya kuangalia data iliyohifadhiwa, ingawa kuna vikwazo muhimu:
Funguo zinaweza kudondoshwa tu kwa darasa la slab, kwa kuchanganya funguo zenye ukubwa sawa wa maudhui.
Kuna kikomo cha ukurasa mmoja kwa darasa la slab, sawa na 1MB ya data.
Kipengele hiki ni kisicho rasmi na kinaweza kuachwa wakati wowote, kama ilivyozungumziwa katika majadiliano ya jamii.
Kikwazo cha kuweza kudondosha tu 1MB kutoka kwenye data inayoweza kuwa gigabytes ni muhimu sana. Walakini, kazi hii bado inaweza kutoa ufahamu juu ya mifumo ya matumizi ya funguo, kulingana na mahitaji maalum. Kwa wale ambao hawana nia kubwa na uhandisi, kutembelea sehemu ya zana kunafunua zana za kudondosha kwa kina. Vinginevyo, mchakato wa kutumia telnet kwa mwingiliano moja kwa moja na mipangilio ya memcached imeelezewa hapa chini.
Jinsi Inavyofanya Kazi
Utaratibu wa kumbukumbu ya memcache ni muhimu. Kuanzisha memcache na chaguo la "-vv" kunafunua darasa za slab inazozalisha, kama inavyoonyeshwa hapa chini:
Kutazama slabs zote zilizopo kwa sasa, tumia amri ifuatayo:
Kuongeza ufunguo mmoja kwa memcached 1.4.13 inaonyesha jinsi darasa za slab zinavyojazwa na kusimamiwa. Kwa mfano:
Kutekeleza amri ya "stats slabs" baada ya kuongeza funguo hutoa takwimu za kina kuhusu matumizi ya slabu:
Hii matokeo inaonyesha aina za slab zilizopo, vipande vilivyotumika, na takwimu za uendeshaji, zinazotoa ufahamu juu ya ufanisi wa operesheni za kusoma na kuandika.
Amri nyingine muhimu, "stats items", hutoa data juu ya kuondolewa, mipaka ya kumbukumbu, na mzunguko wa vitu:
Takwimu hizi zinaruhusu makadirio yenye elimu kuhusu tabia ya kuhifadhi programu, ikiwa ni pamoja na ufanisi wa kuhifadhi kwa ukubwa tofauti wa yaliyomo, ugawaji wa kumbukumbu, na uwezo wa kuhifadhi vitu vikubwa.
Kuweka Njia za Kuhifadhi
Kwa toleo kabla ya 1.4.31, njia za kuhifadhi hutiwa kwa kutumia darasa la slab kwa kutumia:
Kwa mfano, kumwaga ufunguo katika darasa #1:
Mbinu hii inarudia darasa za slab, ikitoa na ikidump muhimu za ufunguo.
KUDUMP MEMCACHE UFUNGUO (VER 1.4.31+)
Kuanzia toleo la memcache 1.4.31 na zaidi, njia mpya na salama ya kudump muhimu katika mazingira ya uzalishaji imeletwa, ikitumia hali ya kutofungwa kama ilivyoelezwa katika taarifa za kutolewa. Njia hii inazalisha matokeo mengi, hivyo inapendekezwa kutumia amri ya 'nc' kwa ufanisi. Mifano ni pamoja na:
VIFAA VYA KUDUMU
Jedwali kutoka hapa.
Lugha za Programu | Vifaa | Uwezo | ||
---|---|---|---|---|
PHP | Inachapisha majina ya funguo. | |||
Perl | Inachapisha majina na thamani za funguo. | |||
Ruby | Inachapisha majina ya funguo. | |||
Perl | Zana katika moduli ya CPAN | ached/) | ||
PHP | Kiolesura cha Ufuatiliaji cha Memcache ambacho pia kinaruhusu kudumu kwa funguo | |||
libmemcached | Inafungia mchakato wako wa memcached!!! Kuwa makini unapotumia hii katika uzalishaji. Hata hivyo, unaweza kuzunguka kizuizi cha 1MB na kudumu kweli funguo zote. |
Kutatua Matatizo
Kikomo cha Data cha 1MB
Tafadhali kumbuka kuwa kabla ya memcached 1.4 huwezi kuhifadhi vitu vikubwa kuliko 1MB kutokana na ukubwa wa kawaida wa slab.
Kamwe Usiweke Muda wa Mwisho > Siku 30!
Ikiwa unajaribu "kuweka" au "kuongeza" funguo na muda wa mwisho mkubwa kuliko kiwango kilichoruhusiwa, huenda usipate matokeo unayotarajia kwa sababu memcached itachukulia thamani hiyo kama alama ya wakati ya Unix. Pia, ikiwa alama ya wakati iko nyuma, haitafanya chochote kabisa. Amri yako itashindwa kimya kimya.
Kwa hivyo, ikiwa unataka kutumia muda wa maisha wa kiwango cha juu, taja 2592000. Mfano:
Vipengele Vinavyotoweka kwa Kujaa
Licha ya nyaraka kusema kitu kuhusu kuzunguka kwa 64bit kwa kujaa kwa thamani kwa kutumia "incr" husababisha thamani kutoweka. Inahitaji kuundwa tena kwa kutumia "add" / "set".
Ulinganishaji
memcached yenyewe haishikilii ulinganishaji. Ikiwa unahitaji kweli, unahitaji kutumia suluhisho za tatu:
repcached: Ulinganishaji wa asinkroni wa multi-master (seti ya patch ya memcached 1.2)
Kioo cha Couchbase memcached: Tumia CouchBase kama mbadala wa memcached
yrmcds: Uhifadhi wa thamani ya ufunguo wa Mwalimu-Mtumwa unaofanana na memcached
twemproxy (inayojulikana pia kama nutcracker): proksi yenye msaada wa memcached
Orodha ya Amri za Kudanganya
pageMemcache CommandsShodan
port:11211 "STAT pid"
"STAT pid"
Marejeo
Last updated