11211 - Pentesting Memcache
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
From wikipedia:
Memcached (matamshi: mem-cashed, mem-cash-dee) ni mfumo wa kumbukumbu ya cache wa kusambaza kwa matumizi ya jumla. Mara nyingi hutumiwa kuongeza kasi ya tovuti zinazotegemea hifadhidata kwa kuhifadhi data na vitu katika RAM ili kupunguza idadi ya mara ambazo chanzo cha data cha nje (kama vile hifadhidata au API) kinapaswa kusomwa.
Ingawa Memcached inasaidia SASL, mifano mingi ni iliyowekwa wazi bila uthibitisho.
Bandari ya kawaida: 11211
Ili kuhamasisha taarifa zote zilizohifadhiwa ndani ya mfano wa memcache unahitaji:
Kupata slabs zenye vitu vilivyo hai
Kupata majina ya funguo ya slabs zilizogunduliwa kabla
Kuhamasisha data iliyohifadhiwa kwa kupata majina ya funguo
Kumbuka kwamba huduma hii ni cache tu, hivyo data inaweza kuonekana na kup消a.
Katika eneo la memcache, protokali inayosaidia katika kuandaa data kwa slabs, amri maalum zipo kwa ajili ya kukagua data iliyohifadhiwa, ingawa kwa vizuizi vya kutosha:
Funguo zinaweza tu kutolewa kwa darasa la slab, zikikundi funguo za ukubwa wa maudhui sawa.
Kuna kikomo cha ukurasa mmoja kwa darasa la slab, kinacholingana na 1MB ya data.
Kipengele hiki si rasmi na kinaweza kusitishwa wakati wowote, kama ilivyojadiliwa katika mijadala ya jamii.
Kikomo cha kutoweza kutoa zaidi ya 1MB kutoka kwa data inayoweza kuwa gigabytes ni muhimu sana. Hata hivyo, kazi hii bado inaweza kutoa mwanga juu ya mifumo ya matumizi ya funguo, kulingana na mahitaji maalum. Kwa wale wasio na hamu sana na mitambo, kutembelea sehemu ya zana kunaonyesha zana za kutoa kwa kina. Vinginevyo, mchakato wa kutumia telnet kwa mwingiliano wa moja kwa moja na mipangilio ya memcached umeelezwa hapa chini.
Organizational ya kumbukumbu ya memcache ni muhimu. Kuanzisha memcache na chaguo "-vv" kunaonyesha madarasa ya slab yanayozalishwa, kama inavyoonyeshwa hapa chini:
Ili kuonyesha slabs zote zilizopo kwa sasa, amri ifuatayo inatumika:
Kuongeza ufunguo mmoja kwa memcached 1.4.13 inaonyesha jinsi madarasa ya slab yanavyojazwa na kusimamiwa. Kwa mfano:
Kutekeleza amri "stats slabs" baada ya kuongeza ufunguo kunatoa takwimu za kina kuhusu matumizi ya slab:
Hii output inaonyesha aina za slab zinazofanya kazi, vipande vinavyotumika, na takwimu za uendeshaji, ikitoa mwanga juu ya ufanisi wa operesheni za kusoma na kuandika.
Amri nyingine muhimu, "stats items", inatoa data kuhusu kufukuzwa, vizuizi vya kumbukumbu, na mizunguko ya vitu:
Hesabu hizi zinaruhusu dhana za kielimu kuhusu tabia ya caching ya programu, ikiwa ni pamoja na ufanisi wa cache kwa saizi tofauti za maudhui, ugawaji wa kumbukumbu, na uwezo wa kuhifadhi vitu vikubwa.
Kwa toleo la kabla ya 1.4.31, funguo zinatolewa kwa darasa la slab kwa kutumia:
Kwa mfano, kutupa funguo katika darasa #1:
Hii mbinu inarudi nyuma kupitia madarasa ya slab, ikitoa na kwa hiari ikitupa thamani za funguo.
Kwa toleo la memcache 1.4.31 na juu, mbinu mpya, salama zaidi ya kutupa funguo katika mazingira ya uzalishaji imeanzishwa, ikitumia hali isiyozuia kama ilivyoelezwa katika release notes. Njia hii inazalisha matokeo makubwa, hivyo mapendekezo ya kutumia amri 'nc' kwa ufanisi. Mifano ni pamoja na:
Table from here.
Programming Languages | Tools | Functionality | ||
---|---|---|---|---|
PHP | Inachapisha majina ya funguo. | |||
Perl | Inachapisha funguo na thamani | |||
Ruby | Inachapisha majina ya funguo. | |||
Perl | Chombo katika moduli ya CPAN | ached/) | ||
PHP | GUI ya Ufuatiliaji wa Memcache ambayo pia inaruhusu kutupa funguo | |||
libmemcached | Inaf freeze mchakato wako wa memcached!!! Kuwa makini unapoitumia katika uzalishaji. Bado ukiitumia unaweza kuzunguka kikomo cha 1MB na kweli kutupa yote funguo. |
Kumbuka kwamba kabla ya memcached 1.4 huwezi kuhifadhi vitu vikubwa kuliko 1MB kutokana na ukubwa wa slab wa kawaida.
Ikiwa unajaribu “kweka” au “kuongeza” funguo yenye muda wa kukatika zaidi ya kile kinachoruhusiwa, huenda usipate kile unachotarajia kwa sababu memcached kisha inachukulia thamani kama alama ya wakati wa Unix. Pia ikiwa alama ya wakati iko katika zamani haitafanya chochote kabisa. Amri yako itashindwa kimya.
Hivyo ikiwa unataka kutumia muda wa juu zaidi, eleza 2592000. Mfano:
Licha ya hati kusema kitu kuhusu kuzunguka 64bit inayozidi thamani kwa kutumia “incr” inasababisha thamani kupotea. Inahitaji kuundwa tena kwa kutumia “add”/”set”.
memcached yenyewe haisaidii replication. Ikiwa unahitaji kweli, unahitaji kutumia suluhisho za upande wa tatu:
repcached: Multi-master async replication (memcached 1.2 patch set)
Couchbase memcached interface: Tumia CouchBase kama memcached drop-in
yrmcds: memcached inayofanana na Master-Slave key value store
twemproxy (aka nutcracker): proxy yenye msaada wa memcached
port:11211 "STAT pid"
"STAT pid"
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)