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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2021-3899_PoC — apport में race condition Ubuntu पर Local Privilege Escalation की ओर ले जाती है | Kitploit
उपकरण/GitHubGitHub/liumuqing/cve-2021-3899_poc
विशेषाधिकार वृद्धिभेद्यता विश्लेषणशोषणपेनिट्रेशन टेस्टिंग
GitHubliumuqing/cve-2021-3899_poc

CVE-2021-3899_PoC

apport में race condition Ubuntu पर Local Privilege Escalation की ओर ले जाती है

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

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

सभी देखें →

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

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

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

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

CVE-2021-3899 PoC

पुनरुत्पादन

  1. apport का एक पुराना संस्करण स्थापित करें: sudo apt-get install apport=2.20.11-0ubuntu27 (कोई भी संस्करण <= 2.20.11-0ubuntu27.10 ठीक है, लेकिन आपको स्रोत कोड डाउनलोड करना होगा)
  2. (वैकल्पिक) pid_max को छोटा सेट करें। अन्यथा pid रोलबैक की तैयारी में अधिक समय लगेगा। echo 10000 | sudo tee /proc/sys/kernel/pid_max
  3. किसी को भी root के रूप में ping चलाने की अनुमति दें: /etc/sudoers में ALL ALL=(root) NOPASSWD: /usr/bin/ping जोड़ें
  4. ulimit -c unlimited; ./exploit को कई बार चलाएँ
  5. आपको /etc/logrotate.d/core पर एक फ़ाइल दिखनी चाहिए
  6. दूसरा शेल खोलें और nc -lvcp 1234 चलाएँ
  7. logrotate के ट्रिगर होने तक प्रतीक्षा करें, आप यह कर सकते हैं:
    1. घड़ी को crontab-daily ट्रिगर से एक मिनट पहले सेट करें, और प्रतीक्षा करें। (/etc/crontab देखें)
    2. logrotate को तुरंत ट्रिगर करने के लिए sudo logrotate -vf /usr/sbin/logrotate /etc/logrotate.conf चलाएँ। (बिल्कुल /etc/cron.daily/logrotate के समान)
  8. 127.0.0.1:1234 पर एक रिवर्स रूट शेल कनेक्ट होगा

विवरण

Apport यह जाँच करेगा कि pid पुनः उपयोग तो नहीं हुआ है, यह देखकर कि प्रक्रिया का प्रारंभ समय apport के स्वयं के प्रारंभ समय से बाद का है:

root@kitploit:~
  # /usr/share/apport/apport
  594 apport_start = get_apport_starttime()
  595 process_start = get_process_starttime()
  596 if process_start > apport_start:
  597 error_log('process was replaced after Apport started, ignoring')
  598 sys.exit(0)

लेकिन यह pid, apport के लॉन्च होने के तुरंत बाद पुनः उपयोग किया जा सकता है। ऐसी स्थिति में, get_apport_starttime() == get_process_starttime() होगा।

तो, आप apport से -rw------- root:root वाली एक कोर फ़ाइल ड्रॉप करा सकते हैं, यदि आप इस PID को uid==0 के अंतर्गत चलने वाली किसी अन्य प्रक्रिया के साथ पुनः अधिग्रहित कर सकते हैं:

  1. प्रक्रिया X को क्रैश करने के लिए तैयार करें, जिसका pid A है
  2. fork प्रक्रिया को तब तक दोहराएँ, जब तक वर्तमान pid A - 2 तक न पहुँच जाए
  3. प्रक्रिया X को क्रैश कराएँ, kernel द्वारा apport को pid A - 1 के साथ लॉन्च किया जाएगा। हम प्रक्रिया X को मार देते हैं, इसलिए pid A अब खाली है।
  4. कमांड sudo ping 8.8.8.8 को cwd /etc/logrotate.d/ के साथ चलाएँ। root:root के अंतर्गत चलने वाली एक प्रक्रिया pid A को पुनः अधिग्रहित कर लेगी।
  5. चूँकि sudo और apport का प्रारंभ समय समान है, लाइन 596 की जाँच बायपास हो जाती है। Apport तब प्रक्रिया X की एक कोर फ़ाइल /etc/logrotate.d में ड्रॉप करता है।
टूल डाउनलोड करें