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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
pspy — रूट अनुमतियों के बिना लिनक्स प्रक्रियाओं की निगरानी करें | Kitploit
उपकरण/GitHubGitHub/dominicbreuker/pspy
विशेषाधिकार वृद्धिटोहीजानकारी एकत्र करनाCTFपेनिट्रेशन टेस्टिंग
GitHubdominicbreuker/pspy

pspy

रूट अनुमतियों के बिना लिनक्स प्रक्रियाओं की निगरानी करें

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

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

सभी देखें →

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

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

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

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

pspy - अनप्रिविलेज्ड Linux प्रक्रिया जासूसी

Go Report Card Maintainability Test Coverage CircleCI

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

टूल procfs स्कैन से जानकारी एकत्र करता है। फ़ाइल सिस्टम के चयनित भागों पर रखे गए Inotify वॉचर्स इन स्कैन को ट्रिगर करते हैं ताकि अल्पकालिक प्रक्रियाओं को पकड़ा जा सके।

शुरू करना

डाउनलोड

टूल को उस Linux मशीन पर ले जाएं जिसका आप निरीक्षण करना चाहते हैं। पहले बाइनरी प्राप्त करें। यहाँ से रिलीज़ बाइनरी डाउनलोड करें:

  • 32 बिट बड़ा, स्थैतिक संस्करण: pspy32 डाउनलोड करें
  • 64 बिट बड़ा, स्थैतिक संस्करण: pspy64 डाउनलोड करें
  • 32 बिट छोटा संस्करण: pspy32s डाउनलोड करें
  • 64 बिट छोटा संस्करण: pspy64s डाउनलोड करें

स्टैटिकली कंपाइल की गई फ़ाइलें किसी भी Linux सिस्टम पर काम करनी चाहिए लेकिन काफी बड़ी होती हैं (~4MB)। यदि आकार एक समस्या है, तो छोटे संस्करण आज़माएं जो libc पर निर्भर करते हैं और UPX से संपीड़ित होते हैं (~1MB)।

बिल्ड

या तो अपने सिस्टम पर स्थापित Go का उपयोग करें या Docker-आधारित बिल्ड प्रक्रिया चलाएं जो रिलीज़ बनाने के लिए चलाई गई थी। बाद के लिए, सुनिश्चित करें कि Docker स्थापित है, और फिर Docker इमेज बनाने के लिए make build-build-image चलाएं, उसके बाद इसके साथ बाइनरी बनाने के लिए make build चलाएं।

आप फ़्लैग और उनके अर्थ जानने के लिए pspy --help चला सकते हैं। सारांश इस प्रकार है:

  • -p: stdout पर कमांड प्रिंट करना सक्षम करता है (डिफ़ॉल्ट रूप से सक्षम)
  • -f: stdout पर फ़ाइल सिस्टम इवेंट प्रिंट करना सक्षम करता है (डिफ़ॉल्ट रूप से अक्षम)
  • -r: Inotify के साथ देखने के लिए निर्देशिकाओं की सूची। pspy सभी उपनिर्देशिकाओं को पुनरावर्ती रूप से देखेगा (डिफ़ॉल्ट रूप से, /usr, /tmp, /etc, /home, /var, और /opt देखता है)।
  • -d: Inotify के साथ देखने के लिए निर्देशिकाओं की सूची। pspy केवल इन निर्देशिकाओं को देखेगा, उपनिर्देशिकाओं को नहीं (डिफ़ॉल्ट रूप से खाली)।
  • -i: procfs स्कैन के बीच मिलीसेकंड में अंतराल। pspy Inotify इवेंट की परवाह किए बिना नियमित रूप से नई प्रक्रियाओं के लिए स्कैन करता है, बस कुछ इवेंट प्राप्त न होने की स्थिति में।
  • -c: विभिन्न रंगों में कमांड प्रिंट करें। फ़ाइल सिस्टम इवेंट अब रंगीन नहीं हैं, प्रक्रिया UID के आधार पर कमांड के अलग-अलग रंग होते हैं।
  • --debug: वर्बोज़ त्रुटि संदेश प्रिंट करता है जो अन्यथा छिपे होते हैं।

डिफ़ॉल्ट सेटिंग्स अधिकांश अनुप्रयोगों के लिए ठीक होनी चाहिए। /usr के अंदर फ़ाइलों को देखना सबसे महत्वपूर्ण है क्योंकि कई उपकरण इसके अंदर लाइब्रेरी तक पहुंचेंगे।

कुछ और जटिल उदाहरण:

root@kitploit:~
# print both commands and file system events and scan procfs every 1000 ms (=1sec)
./pspy64 -pf -i 1000 

# place watchers recursively in two directories and non-recursively into a third
./pspy64 -r /path/to/first/recursive/dir -r /path/to/second/recursive/dir -d /path/to/the/non-recursive/dir

# disable printing discovered commands but enable file system events
./pspy64 -p=false -f

उदाहरण

क्रॉन जॉब देखना

टूल को क्रिया में देखने के लिए, बस रेपो को क्लोन करें और make example चलाएं (Docker आवश्यक)। यह ज्ञात है कि पासवर्ड को कमांड लाइन तर्क के रूप में पास करना सुरक्षित नहीं है, और उदाहरण का उपयोग इसे प्रदर्शित करने के लिए किया जा सकता है। कमांड एक Debian कंटेनर शुरू करता है जिसमें रूट द्वारा चलाया गया एक गुप्त क्रॉन जॉब हर मिनट एक उपयोगकर्ता पासवर्ड बदलता है। pspy अग्रभूमि में, उपयोगकर्ता myuser के रूप में चलता है, और प्रक्रियाओं के लिए स्कैन करता है। आपको इसके समान आउटपुट देखना चाहिए:

root@kitploit:~
~/pspy (master) $ make example
[...]
docker run -it --rm local/pspy-example:latest
[+] cron started
[+] Running as user uid=1000(myuser) gid=1000(myuser) groups=1000(myuser),27(sudo)
[+] Starting pspy now...
Watching recursively    : [/usr /tmp /etc /home /var /opt] (6)
Watching non-recursively: [] (0)
Printing: processes=true file-system events=false
2018/02/18 21:00:03 Inotify watcher limit: 524288 (/proc/sys/fs/inotify/max_user_watches)
2018/02/18 21:00:03 Inotify watchers set up: Watching 1030 directories - watching now
2018/02/18 21:00:03 CMD: UID=0    PID=9      | cron -f
2018/02/18 21:00:03 CMD: UID=0    PID=7      | sudo cron -f
2018/02/18 21:00:03 CMD: UID=1000 PID=14     | pspy
2018/02/18 21:00:03 CMD: UID=1000 PID=1      | /bin/bash /entrypoint.sh
2018/02/18 21:01:01 CMD: UID=0    PID=20     | CRON -f
2018/02/18 21:01:01 CMD: UID=0    PID=21     | CRON -f
2018/02/18 21:01:01 CMD: UID=0    PID=22     | python3 /root/scripts/password_reset.py
2018/02/18 21:01:01 CMD: UID=0    PID=25     |
2018/02/18 21:01:01 CMD: UID=???  PID=24     | ???
2018/02/18 21:01:01 CMD: UID=0    PID=23     | /bin/sh -c /bin/echo -e "KI5PZQ2ZPWQXJKEL\nKI5PZQ2ZPWQXJKEL" | passwd myuser
2018/02/18 21:01:01 CMD: UID=0    PID=26     | /usr/sbin/sendmail -i -FCronDaemon -B8BITMIME -oem root
2018/02/18 21:01:01 CMD: UID=101  PID=27     |
2018/02/18 21:01:01 CMD: UID=8    PID=28     | /usr/sbin/exim4 -Mc 1enW4z-00000Q-Mk

पहले, pspy सभी वर्तमान में चल रही प्रक्रियाओं को प्रिंट करता है, प्रत्येक में PID, UID और कमांड लाइन होती है। जब pspy एक नई प्रक्रिया का पता लगाता है, तो यह इस लॉग में एक पंक्ति जोड़ता है। इस उदाहरण में, आपको PID 23 वाली एक प्रक्रिया मिलती है जो myuser का पासवर्ड बदलती प्रतीत होती है। यह रूट के निजी crontab /var/spool/cron/crontabs/root में उपयोग किए गए Python स्क्रिप्ट का परिणाम है, जो इस शेल कमांड को निष्पादित करता है (crontab और स्क्रिप्ट देखें)। ध्यान दें कि myuser न तो crontab देख सकता है और न ही Python स्क्रिप्ट। pspy के साथ, यह फिर भी कमांड देख सकता है।

Hack The Box से CTF उदाहरण

नीचे Hack The Box की Shrek मशीन का एक उदाहरण है। इस CTF चुनौती में, कार्य एक छिपे हुए क्रॉन जॉब का शोषण करना है जो एक फ़ोल्डर में सभी फ़ाइलों के स्वामित्व को बदल रहा है। कमजोरी chmod के साथ वाइल्डकार्ड का असुरक्षित उपयोग है (विवरण रुचि रखने वाले पाठक के लिए)। इसे खोजने और शोषण करने के लिए काफी अनुमान लगाने की आवश्यकता होती है। pspy के साथ हालांकि, क्रॉन जॉब को खोजना और विश्लेषण करना आसान है:

एनिमेटेड डेमो GIF

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

Linux सिस्टम पर निष्पादित सभी प्रक्रियाओं को सूचीबद्ध करने के लिए उपकरण मौजूद हैं, जिनमें वे भी शामिल हैं जो समाप्त हो चुकी हैं। उदाहरण के लिए forkstat है। यह प्रक्रिया-संबंधित घटनाओं जैसे fork और exec के बारे में कर्नेल से सूचनाएं प्राप्त करता है।

इन उपकरणों को रूट विशेषाधिकारों की आवश्यकता होती है, लेकिन इससे आपको सुरक्षा की झूठी भावना नहीं मिलनी चाहिए। एक Linux सिस्टम पर चल रही प्रक्रियाओं की जासूसी करने से आपको कोई नहीं रोकता है। जब तक कोई प्रक्रिया चल रही है, procfs में बहुत सारी जानकारी दिखाई देती है। एकमात्र समस्या यह है कि आपको अल्पकालिक प्रक्रियाओं को उस बहुत ही कम समय अंतराल में पकड़ना होता है जिसमें वे जीवित हैं। एक अनंत लूप में /proc निर्देशिका को नए PID के लिए स्कैन करना काम करता है लेकिन बहुत अधिक CPU की खपत करता है।

एक अधिक गुप्त तरीका निम्नलिखित चाल का उपयोग करना है। प्रक्रियाएं /usr में लाइब्रेरी, /tmp में अस्थायी फ़ाइलें, /var में लॉग फ़ाइलें आदि जैसी फ़ाइलों तक पहुंचती हैं। inotify API का उपयोग करके, जब भी ये फ़ाइलें बनाई, संशोधित, हटाई, एक्सेस की जाती हैं, आदि, आप सूचनाएं प्राप्त कर सकते हैं। Linux को इस API के लिए विशेषाधिकार प्राप्त उपयोगकर्ताओं की आवश्यकता नहीं है क्योंकि इसकी आवश्यकता कई निर्दोष अनुप्रयोगों (जैसे टेक्स्ट एडिटर जो आपको एक अद्यतित फ़ाइल एक्सप्लोरर दिखाते हैं) के लिए होती है। इस प्रकार, जबकि गैर-रूट उपयोगकर्ता सीधे प्रक्रियाओं की निगरानी नहीं कर सकते, वे फ़ाइल सिस्टम पर प्रक्रियाओं के प्रभावों की निगरानी कर सकते हैं।

हम फ़ाइल सिस्टम घटनाओं को /proc को स्कैन करने के लिए ट्रिगर के रूप में उपयोग कर सकते हैं, उम्मीद है कि हम प्रक्रियाओं को पकड़ने के लिए इसे पर्याप्त तेज़ी से कर सकते हैं। pspy यही करता है। कोई गारंटी नहीं है कि आप एक को मिस नहीं करेंगे, लेकिन मेरे प्रयोगों में संभावना अच्छी लगती है। सामान्य तौर पर, प्रक्रियाएं जितनी अधिक समय तक चलती हैं, उन्हें पकड़ने की संभावना उतनी ही अधिक होती है।

विविध

लोगो: "Creative Tail द्वारा [CC BY 4.0 (http://creativecommons.org/licenses/by/4.0)], Wikimedia Commons के माध्यम से" (लिंक)

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