Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
pspy — مراقبة عمليات لينكس بدون صلاحيات الجذر | Kitploit
أدوات/GitHubGitHub/dominicbreuker/pspy
تصعيد الامتيازاتالاستطلاعجمع المعلوماتCTFاختبار الاختراق
GitHubdominicbreuker/pspy

pspy

مراقبة عمليات لينكس بدون صلاحيات الجذر

عرض المستودع
6.1k567منذ 5 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

pspy - التجسس على العمليات في لينكس بدون صلاحيات

Go Report Card Maintainability Test Coverage CircleCI

pspy هي أداة سطر أوامر مصممة للتجسس على العمليات دون الحاجة إلى صلاحيات الجذر. تسمح لك برؤية الأوامر التي ينفذها المستخدمون الآخرون، ومهام cron، وغيرها أثناء تنفيذها. ممتازة لاستكشاف أنظمة لينكس في مسابقات CTF. كما أنها رائعة لإظهار لزملائك لماذا تمرير الأسرار كوسائط في سطر الأوامر فكرة سيئة.

تجمع الأداة المعلومات من مسح procfs. مراقبو Inotify الموضوعة على أجزاء محددة من نظام الملفات تحفز هذه المسوحات لالتقاط العمليات قصيرة العمر.

البدء

تنزيل

احصل على الأداة على جهاز لينكس الذي تريد فحصه. أولاً، احصل على الملفات الثنائية. قم بتنزيل الملفات الثنائية المنشورة هنا:

  • إصدار 32 بت كبير وثابت: pspy32 تنزيل
  • إصدار 64 بت كبير وثابت: pspy64 تنزيل
  • إصدار 32 بت صغير: pspy32s تنزيل
  • إصدار 64 بت صغير: pspy64s تنزيل

الملفات المترجمة بشكل ثابت يجب أن تعمل على أي نظام لينكس لكنها كبيرة جدًا (~4 ميجابايت). إذا كان الحجم مشكلة، جرب الإصدارات الأصغر التي تعتمد على libc ومضغوطة باستخدام UPX (~1 ميجابايت).

بناء

إما استخدام Go المثبت على نظامك أو تشغيل عملية البناء المعتمدة على Docker والتي تم تشغيلها لإنشاء الإصدار. للخيار الثاني، تأكد من تثبيت Docker، ثم قم بتشغيل make build-build-image لبناء صورة Docker، متبوعًا بـ 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

أمثلة

مراقبة مهمة cron

لرؤية الأداة أثناء العمل، فقط استنسخ المستودع وشغّل make example (يلزم Docker). من المعروف أن تمرير كلمات المرور كوسائط سطر أوامر ليس آمنًا، ويمكن استخدام المثال لتوضيح ذلك. يقوم الأمر بتشغيل حاوية Debian حيث تقوم مهمة cron سرية، يديرها root، بتغيير كلمة مرور مستخدم كل دقيقة. يتم تشغيل 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. هذه نتيجة لبرنامج Python النصي المستخدم في crontab الخاص بـ root /var/spool/cron/crontabs/root، والذي ينفذ أمر shell هذا (تحقق من crontab والبرنامج النصي). لاحظ أن myuser لا يمكنه رؤية crontab ولا البرنامج النصي Python. مع pspy، يمكنه رؤية الأوامر مع ذلك.

مثال CTF من Hack The Box

أدناه مثال من الجهاز Shrek من Hack The Box. في هذا التحدي CTF، المهمة هي استغلال مهمة cron مخفية تقوم بتغيير ملكية جميع الملفات في مجلد. الثغرة هي الاستخدام غير الآمن لحرف البدل مع chmod (تفاصيل للقارئ المهتم). يتطلب تخمينًا كبيرًا للعثور عليه واستغلاله. مع pspy، على الرغم من ذلك، فإن مهمة cron سهلة الاكتشاف والتحليل:

animated demo gif

كيف يعمل

توجد أدوات لسرد جميع العمليات المنفذة على أنظمة لينكس، بما في ذلك تلك التي انتهت. على سبيل المثال هناك forkstat. تستقبل إشعارات من النواة حول الأحداث المتعلقة بالعمليات مثل fork وexec.

تتطلب هذه الأدوات صلاحيات الجذر، لكن هذا لا يجب أن يعطيك إحساسًا زائفًا بالأمان. لا شيء يمنعك من التجسس على العمليات الجارية على نظام لينكس. الكثير من المعلومات مرئية في procfs طالما أن العملية قيد التشغيل. المشكلة الوحيدة هي أنك تحتاج إلى التقاط العمليات قصيرة العمر في الفاصل الزمني القصير جدًا الذي تكون فيه حية. مسح دليل /proc بحثًا عن PIDs جديدة في حلقة لا نهائية يؤدي الغرض لكنه يستهلك الكثير من وحدة المعالجة المركزية.

طريقة أكثر خفاءً هي استخدام الحيلة التالية. تميل العمليات إلى الوصول إلى ملفات مثل المكتبات في /usr، الملفات المؤقتة في /tmp، ملفات السجل في /var، ... باستخدام واجهة برمجة التطبيقات inotify، يمكنك الحصول على إشعارات كلما تم إنشاء هذه الملفات أو تعديلها أو حذفها أو الوصول إليها، إلخ. لا يتطلب لينكس مستخدمين متميزين لواجهة برمجة التطبيقات هذه لأنها مطلوبة للعديد من التطبيقات البريئة (مثل محررات النصوص التي تعرض لك مستكشف ملفات محدث). وبالتالي، بينما لا يمكن للمستخدمين غير الجذر مراقبة العمليات مباشرة، يمكنهم مراقبة تأثيرات العمليات على نظام الملفات.

يمكننا استخدام أحداث نظام الملفات كمحفز لمسح /proc، على أمل أن نتمكن من القيام بذلك بالسرعة الكافية لالتقاط العمليات. هذا ما يفعله pspy. لا يوجد ضمان بعدم تفويت واحدة، لكن الفرص تبدو جيدة في تجاربي. بشكل عام، كلما طالت مدة تشغيل العمليات، زادت فرصة التقاطها.

متنوع

الشعار: "بواسطة Creative Tail [CC BY 4.0 (http://creativecommons.org/licenses/by/4.0)]، عبر Wikimedia Commons" (رابط)

تنزيل الأداة