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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/nongiach/sudo_inject
विशेषाधिकार वृद्धिशोषणपोस्ट-शोषणडिजिटल फोरेंसिकCTFलर्निंग और शिक्षारेड टीमिंग
GitHubnongiach/sudo_inject

sudo_inject

[Linux] sudo टोकन का दुरुपयोग करने वाली दो विशेषाधिकार वृद्धि तकनीकें

रिपॉजिटरी देखें
73011317 साल पहलेKitploit द्वारा समीक्षित

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

सभी देखें →

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

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

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

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

[Linux] sudo टोकन रखने वाली प्रक्रिया को इंजेक्ट करके विशेषाधिकार वृद्धि

ऐसी प्रक्रिया इंजेक्ट करें जिसके पास मान्य sudo टोकन हो और अपना खुद का sudo टोकन सक्रिय करें

परिचय

हम सभी ने देखा है कि कभी-कभी sudo हमसे पासवर्ड नहीं मांगता क्योंकि वह हमें याद रखता है। वह हमें कैसे याद रखता है और हमें कैसे पहचानता है? क्या हम अपनी पहचान गलत साबित करके root बन सकते हैं? जहाँ तक मुझे पता है यह शोध अभी तक प्रलेखित नहीं है, लेकिन अगर ऐसा है तो मुझे बताएं। वास्तव में sudo प्रत्येक Linux उपयोगकर्ता के लिए /var/run/sudo/ts/[username] में एक फ़ाइल बनाता है। इन फ़ाइलों में सफल और असफल दोनों प्रमाणीकरण होते हैं, फिर sudo इन फ़ाइलों का उपयोग सभी प्रमाणित प्रक्रियाओं को याद रखने के लिए करता है। -- @chaignc

यह रिपॉजिटरी आपको प्रदान करती है:

  • sudo टोकन का दुरुपयोग करके root विशेषाधिकार प्राप्त करने का एक तरीका (बहुत खुश न हों, कुछ आवश्यकताएँ हैं)।
  • किसी दी गई प्रक्रिया के लिए sudo टोकन गढ़ने का एक उपकरण (./extra_tools/ में write_sudo_token)।
  • फोरेंसिक के लिए sudo टोकन पार्स करने का एक उपकरण (./extra_tools में read_sudo_token_forensic और read_sudo_token)।
  • किसी भी root आर्बिट्ररी फ़ाइल लेखन को स्थिर root कोड निष्पादन में बदलने की एक तकनीक।
  • एक सुराग ऐसा एक्सप्लॉइट बनाने के लिए जिसमें ptrace की आवश्यकता न हो या लक्षित प्रक्रिया का जीवित होना आवश्यक न हो।

एक असुरक्षित सिस्टम का शोषण कैसे करें

PS: आवश्यकताएँ पढ़ें!!

root@kitploit:~
$ sudo whatever
[sudo] password for user:    # Press <ctrl>+c since you don't have the password. # This creates an invalid sudo tokens.
$ sh exploit.sh
.... wait 1 seconds
$ sudo -i # no password required :)
# id
uid=0(root) gid=0(root) groups=0(root)

आवश्यकताएँ

  • Ptrace पूरी तरह से सक्षम (/proc/sys/kernel/yama/ptrace_scope == 0)।
  • वर्तमान उपयोगकर्ता के पास एक जीवित प्रक्रिया होनी चाहिए जिसके पास समान uid के साथ एक मान्य sudo टोकन हो।
root@kitploit:~
The default password timeout is 15 minutes. So if you use sudo twice in 15 minutes (900 seconds), you will not be asked to type the user’s password again.

चेतावनी

  • केवल शैक्षिक उद्देश्य के लिए, ऐसे सिस्टम पर उपयोग न करें जिसके आप स्वामी नहीं हैं।
  • यह अच्छी तरह से परीक्षित नहीं है, इसलिए इसे स्थिर न मानें।

पर्दे के पीछे क्या हो रहा है?

exploit.sh वर्तमान उपयोगकर्ता के स्वामित्व वाली सभी शेल प्रक्रियाओं को इंजेक्ट करता है और अपना स्वयं का sudo टोकन मान्य करने के लिए उनके sudo टोकन का उपयोग करता है। यह मुश्किल से शेल की 3 पंक्तियाँ हैं, एक बार देख लें।

उपयोग केस

यह बिना आवश्यकताओं के एक सामान्य privesc से बहुत दूर है, लेकिन यह काम करता है, उदाहरण के लिए यदि आपके पास RCE है और उपयोगकर्ता का पासवर्ड नहीं है लेकिन पीड़ित sudo का उपयोग करता है, तो आप उसका टोकन चुराकर आसानी से root प्राप्त कर सकते हैं।

लैब में कैसे अनुकरण करें?

root@kitploit:~
# echo 0 > /proc/sys/kernel/yama/ptrace_scope
# # Don't worry this is not persistent accross reboot

दो टर्मिनल शुरू करें:

  • एक sudo टाइप करने और सही पासवर्ड दर्ज करने के लिए (उदाहरण: sudo ls)।
  • दूसरा ऊपर वर्णित अनुसार एक्सप्लॉइट शुरू करने के लिए।

आगे बढ़ना

exploit v2 /tmp/sh में एक suid sh बनाता है

जिनकी किस्मत exploit v1 के साथ कम अच्छी है, वे v2 आज़माएँ

root@kitploit:~
$ ./exploit_v2.sh
Current process : 2441
chmod: changing permissions of 'activate_sudo_token': Operation not permitted
Injecting process 1721 -> bash
Injecting process 2433 -> bash
cat: /proc/2446/comm: No such file or directory
Injecting process 2446 -> 
$ /tmp/sh -p
# id
uid=1001(test) gid=1001(test) euid=0(root) egid=0(root) groups=0(root),1001(test)

फोरेंसिक, DFIR?

प्रिंटिंग में सुधार किया जाना है, लेकिन प्रत्येक प्रक्रिया के sudo प्रयास की एक प्रविष्टि /var/run/sudo/ts/[username] में होती है। इसके अलावा ये फ़ाइलें tmpfs(ram) में संग्रहीत होती हैं, कोई व्यक्ति sudo प्रयास को एकत्र करने के लिए इस जानकारी को पार्स करने हेतु volatility प्लगइन लिख सकता है।

root@kitploit:~
./read_sudo_token_forensic  < /var/run/sudo/ts/user
version, flags, uid, sid, starttime_sec, starttime_nsec
2, 0, 0, 0, 0, 0
2, 0, 1001, 1145, 188, 660000000
2, 0, 1001, 24878, 7461, 490000000
2, 0, 1001, 24578, 6974, 10000000

root के लिए आर्बिट्ररी लेखन

यदि आपके पास आर्बिट्ररी लेखन (arbitrary write) है, तो आप root कोड निष्पादन प्राप्त करने के लिए अपनी वर्तमान प्रक्रिया के लिए एक sudo टोकन बना सकते हैं। extra_tools में './write_sudo_token $$ > /var/run/sudo/ts/[username]' देखें।

सिल्वर sudo टिकट

उन सर्वरों पर गुप्त root बैकडोर बनाने का एक बहुत अच्छा तरीका जो शायद ही कभी रिबूट होते हैं। अभी तक पूरा नहीं हुआ है, लेकिन ./extra_tools में './write_sudo_token $$' देखें

क्यों

मैं मृत प्रक्रिया के sudo टोकन को चुराने का तरीका ढूंढ रहा था, लेकिन यह संभव नहीं लगता क्योंकि वे ((प्रक्रिया प्रारंभ समय और प्रक्रिया सत्र id) या (tty प्रारंभ समय और tty सत्र id)) से जुड़े होते हैं। सत्र id (प्रक्रिया pid) का प्रतिरूपण किया जा सकता है, लेकिन प्रक्रिया प्रारंभ समय नकली नहीं बनाया जा सकता।

इसे कैसे ठीक करें?

  • अपने sudo संस्करण को अपडेट करें
  • ptrace की शक्ति कम करें, उदाहरण /etc/sysctl.conf को इसके साथ संपादित करें
root@kitploit:~
kernel.yama.ptrace_scope = 1

yama ptrace scope

लिंक

Parsing /proc/[pid]/stat

Sudo token struct

Linux based inter process code injection without ptrace

Moving a process to another terminal

https://www.linusakesson.net/programming/tty/


द्वारा @chaignc #HexpressoTeam.

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