अपडेट पर वापस जाएँ
UpdatedJul 24, 2026

Persistnux — Updated!

बैश-आधारित लिनक्स स्थायित्व पहचान उपकरण जो DFIR जाँच के लिए है। 15+ स्थायित्व तंत्रों (systemd, cron, कर्नेल मॉड्यूल, SSH, कंटेनर) को विश्वास स्कोरिंग के साथ स्कैन करता है और फोरेंसिक विश्लेषण के लिए CSV/JSONL रिपोर्ट उत्पन्न करता है।

साझा करें

Persistnux

Linux पर स्थायित्व (persistence) का पता लगाने वाला एक व्यापक उपकरण, जो डिजिटल फोरेंसिक और घटना प्रतिक्रिया (DFIR) जांच के लिए है।

अवलोकन

Persistnux एक bash-आधारित उपकरण है जो हमलावरों द्वारा समझौता किए गए सिस्टम तक पहुंच बनाए रखने के लिए उपयोग किए जाने वाले ज्ञात Linux स्थायित्व तंत्रों की पहचान करने के लिए डिज़ाइन किया गया है। यह सिस्टम भर में व्यापक जाँच करता है और आगे के विश्लेषण के लिए CSV और JSONL दोनों प्रारूपों में विस्तृत रिपोर्ट तैयार करता है।

विशेषताएँ

  • व्यापक पहचान: सभी प्रमुख Linux स्थायित्व तंत्रों को कवर करता है
  • लाइव विश्लेषण: न्यूनतम निर्भरता के साथ सीधे लाइव सिस्टम पर चलता है
  • विस्तृत आउटपुट: फ़ाइल हैश, मेटाडेटा और विश्वास स्कोर के साथ CSV और JSONL रिपोर्ट तैयार करता है
  • रूट और नॉन-रूट: रूट विशेषाधिकारों के साथ या बिना काम करता है (नॉन-रूट के लिए सीमित दायरा)
  • DFIR-तैयार: आउटपुट प्रारूप सामान्य DFIR उपकरणों और कार्यप्रवाहों के अनुकूल हैं
  • संदेह स्कोरिंग: संकेतकों के आधार पर स्वचालित विश्वास स्कोरिंग (LOW, MEDIUM, HIGH, CRITICAL)
  • गलत सकारात्मक में कमी: पैकेज प्रबंधक एकीकरण और ज्ञात-अच्छी सेवा श्वेतसूचीकरण
  • समय-आधारित विश्लेषण: हाल ही में संशोधित फ़ाइलों को उच्च विश्वास स्कोर प्राप्त होता है
  • पैटर्न मिलान: रिवर्स शेल, डाउनलोड-एक्ज़ीक्यूट पैटर्न, अस्पष्टीकरण तकनीकों का पता लगाता है

पता लगाए गए स्थायित्व तंत्र

1. Systemd सेवाएँ

  • /etc/systemd/system, /lib/systemd/system, /usr/lib/systemd/system में सेवा फ़ाइलें (.service)
  • उपयोगकर्ता-स्तरीय systemd सेवाएँ
  • अक्षम सेवाओं और ExecStart के बिना सेवाओं को फ़िल्टर करता है
  • संदिग्ध ExecStart कमांड का पता लगाता है
  • निष्पादित बाइनरी/स्क्रिप्ट की पैकेज अखंडता सत्यापित करता है

2. क्रॉन जॉब और अनुसूचित कार्य

  • सिस्टम क्रॉनटैब (/etc/crontab, /etc/cron.d/*)
  • आवधिक निष्पादन निर्देशिकाएँ (/etc/cron.{daily,hourly,weekly,monthly})
  • सभी उपयोगकर्ताओं के लिए उपयोगकर्ता क्रॉनटैब (रूट मोड)
  • एट जॉब (At jobs)
  • अनुसूचित कार्यों में संदिग्ध कमांड पैटर्न
  • /etc/cron.allow और /etc/cron.deny ACL फ़ाइलें — गैर-मौजूद उपयोगकर्ताओं को संदर्भित करने वाली प्रविष्टियाँ चिह्नित

3. शेल प्रोफ़ाइल और RC फ़ाइलें

  • सिस्टम-व्यापी प्रोफ़ाइल (/etc/profile, /etc/bash.bashrc, /etc/zshrc)
  • Profile.d स्क्रिप्ट (/etc/profile.d/*)
  • उपयोगकर्ता प्रोफ़ाइल (.bashrc, .bash_profile, .zshrc, .profile, आदि)
  • फिश शेल कॉन्फ़िगरेशन
  • प्रोफ़ाइल फ़ाइलों में दुर्भावनापूर्ण कमांड का पता लगाता है

4. Init स्क्रिप्ट और RC.local

  • /etc/rc.local और वेरिएंट
  • SysV init स्क्रिप्ट (/etc/init.d)
  • रनलेवल स्क्रिप्ट (/etc/rc*.d)
  • संदिग्ध डाउनलोड/निष्पादन कमांड का पता लगाता है

5. कर्नेल मॉड्यूल और लाइब्रेरी प्रीलोडिंग

  • LD_PRELOAD कॉन्फ़िगरेशन (/etc/ld.so.preload) — प्रत्येक सूचीबद्ध लाइब्रेरी पैकेज प्रबंधक के माध्यम से सत्यापित
  • डायनामिक लिंकर कॉन्फ़िगरेशन (/etc/ld.so.conf, /etc/ld.so.conf.d/) — कॉन्फ़ फ़ाइल अखंडता + गैर-मानक पथ .so फ़ाइलें स्कैन और सत्यापित
  • /etc/environment LD_PRELOAD/LD_LIBRARY_PATH — env फ़ाइल को HIGH चिह्नित; संदर्भित लाइब्रेरी पथ सत्यापित (अप्रबंधित/संशोधित → CRITICAL)
  • कर्नेल मॉड्यूल पैरामीटर (/etc/modprobe.d/, /etc/modprobe.conf) — फ़ाइल अखंडता; install निर्देशों का संदिग्ध कमांड लक्ष्यों के लिए विश्लेषण; सुरक्षा मॉड्यूल (apparmor, selinux, seccomp) की blacklist को HIGH चिह्नित
  • कर्नेल मॉड्यूल ऑटो-लोड कॉन्फ़िगरेशन (/etc/modules, /etc/modules-load.d/) — कॉन्फ़िग अखंडता; संदर्भित मॉड्यूल नामों को modinfo के माध्यम से .ko फ़ाइलों में हल किया और सत्यापित
  • लोड किए गए कर्नेल मॉड्यूल (lsmod) — गणना और अखंडता सत्यापन

6. अतिरिक्त तंत्र

  • XDG ऑटोस्टार्ट प्रविष्टियाँ (.config/autostart, /etc/xdg/autostart) — रूट होने पर सभी उपयोगकर्ता होम स्कैन किए जाते हैं
  • सिस्टम एनवायरनमेंट फ़ाइलें (/etc/environment) — LD_PRELOAD/LD_LIBRARY_PATH लाइब्रेरी पथ सत्यापित
  • Sudoers कॉन्फ़िगरेशन और ड्रॉप-इन (/etc/sudoers, /etc/sudoers.d/) — NOPASSWD/ALL पैटर्न → HIGH
  • PAM (प्लगेबल ऑथेंटिकेशन मॉड्यूल):
    • सभी .so मॉड्यूल पैकेज प्रबंधक के माध्यम से सत्यापित; @include निर्देशों का अनुसरण; /etc/pam.conf शामिल
    • pam_exec.so स्क्रिप्ट विश्लेषण — लापता/संदिग्ध स्क्रिप्ट → CRITICAL
    • pam_python.so / pam_perl.so रिले डिटेक्शन — स्क्रिप्ट निकाली और विश्लेषित
    • /etc/security/ में pam_script.so हुक फ़ाइल डिटेक्शन
    • कॉन्फ़िग फ़ाइल अखंडता — संशोधित पैकेज-स्वामित्व वाली PAM कॉन्फ़िग → CRITICAL
    • pam_env.conf और ~/.pam_environment LD_PRELOAD लाइब्रेरी सत्यापन
    • /etc/security/ सामान्य स्कैन
  • MOTD स्क्रिप्ट (/etc/update-motd.d/) — पैकेज सत्यापन; संशोधित → CRITICAL
  • Git क्रेडेंशियल हेल्पर और core.pager सेटिंग्स — सभी उपयोगकर्ताओं के लिए सामग्री विश्लेषण
  • सामान्य वेब निर्देशिकाओं में वेब शेल

8. SSH स्थायित्व

  • प्रति-उपयोगकर्ता ~/.ssh/authorized_keys — हाल ही में संशोधित कुंजियाँ चिह्नित; command= विकल्प सामग्री का संदिग्ध पैटर्न के लिए विश्लेषण
  • प्रति-उपयोगकर्ता ~/.ssh/rc — उपस्थिति को MEDIUM चिह्नित; संदिग्ध/रिवर्स शेल सामग्री → HIGH/CRITICAL

9. बाइनरी अपहरण

  • पैकेज डेटाबेस के विरुद्ध स्थापित सिस्टम बाइनरी की सत्यापन (Debian/Ubuntu पर dpkg -V, RHEL/CentOS पर rpm -Va)
  • /usr/bin, /usr/sbin, /bin, /sbin में संशोधित फ़ाइलें → CRITICAL खोज
  • /lib/security में संशोधित PAM मॉड्यूल → CRITICAL खोज
  • गलत सकारात्मक से बचने के लिए कॉन्फ़ फ़ाइलों (dpkg कॉन्फ़िगरेशन फ़ाइलें) को बाहर रखा गया है

10. बूटलोडर और Initramfs

  • GRUB init= कर्नेल पैरामीटर इंजेक्शन (/etc/default/grub, /etc/default/grub.d/*.cfg)
  • / पर रूट-स्तरीय गिराई गई init स्क्रिप्ट
  • /sysroot/etc/shadow में लिखने वाले pre-pivot हुक के साथ Dracut initramfs मॉड्यूल
  • /etc/initramfs-tools/scripts/ और /hooks/ में Ubuntu initramfs-tools हुक स्क्रिप्ट
  • हाल ही में संशोधित /boot/initrd.img-* इमेज (mtime-आधारित)

11. Polkit (PolicyKit) हेरफेर

  • बिना शर्त ResultAny/ResultInactive/ResultActive=yes वाली .pkla फ़ाइलें
  • वाइल्डकार्ड पहचान (unix-user:*) अनुदान
  • बिना शर्त polkit.Result.YES वाली .rules फ़ाइलें (JavaScript-आधारित Polkit >= 0.106)

12. D-Bus और NetworkManager

  • दुर्भावनापूर्ण D-Bus सिस्टम सेवा Exec= पंजीकरण (/usr/share/dbus-1/system-services/)
  • D-Bus नीति वाइल्डकार्ड allow own="*" या send_destination="*" निर्देश
  • NetworkManager डिस्पैचर स्क्रिप्ट (/etc/NetworkManager/dispatcher.d/)

13. Udev नियम

  • Udev RUN+= निर्देश मनमाने कमांड या स्क्रिप्ट निष्पादित करना (/etc/udev/rules.d/, /lib/udev/rules.d/)
  • /run/udev/rules.d/ में रनटाइम-इंजेक्टेड नियम
  • RUN+= में at/cron प्रतिनिधिमंडल पैटर्न (सामान्य फोरग्राउंड प्रतिबंध बाईपास)

14. कंटेनर एस्केप

  • विशेषाधिकार प्राप्त Docker कंटेनर (--privileged, --pid=host)
  • कंटेनरों में docker.sock बाइंड-माउंट (Docker API के माध्यम से पूर्ण होस्ट नियंत्रण)
  • कंटेनर एंट्रीपॉइंट या Dockerfiles में nsenter -t 1
  • उपयोगकर्ता-लिखने योग्य निर्देशिकाओं में एस्केप तकनीकों वाली Dockerfiles

15. उन्नत बाइनरी और विशेषाधिकार जाँच

  • सिस्टम निर्देशिकाओं में सक्रिय SUID/SGID फ़ाइलसिस्टम स्कैन
  • getcap के माध्यम से फ़ाइल क्षमता स्कैन — GTFOBins पर cap_setuid+ep → CRITICAL
  • बाइनरी अपहरण: रैपर स्क्रिप्ट के साथ नाम बदले गए मूल (.original, .old, .bak, .real)
  • /etc/passwd में UID 0 वाले गैर-रूट खाते
  • /etc/passwd शेल फ़ील्ड में अनुगामी स्थान के माध्यम से शेल मास्किंग
  • SSH authorized_keys फ़ाइलों वाले सिस्टम खाते (UID 1-999)

स्थापना

# रिपॉजिटरी क्लोन करें
git clone https://github.com/yourusername/persistnux.git
cd persistnux

# स्क्रिप्ट को निष्पादन योग्य बनाएं
chmod +x persistnux.sh

उपयोग

मूल उपयोग (लाइव विश्लेषण)

# डिफ़ॉल्ट सेटिंग्स के साथ चलाएं (केवल संदिग्ध खोज दिखाता है)
sudo ./persistnux.sh

# सहायता और सभी विकल्प दिखाएं
./persistnux.sh --help

# सामान्य उपयोगकर्ता के रूप में चलाएं (सीमित दायरा)
./persistnux.sh

फ़िल्टरिंग विकल्प (v2.4+)

डिफ़ॉल्ट रूप से, Persistnux शोर कम करने और कार्रवाई योग्य खतरों पर ध्यान केंद्रित करने के लिए केवल संदिग्ध खोज (MEDIUM, HIGH, CRITICAL विश्वास) दिखाता है।

# डिफ़ॉल्ट: केवल संदिग्ध खोज दिखाएं
sudo ./persistnux.sh

# बेसलाइन (LOW विश्वास) सहित सभी खोज दिखाएं
sudo ./persistnux.sh --all
# या
sudo FILTER_MODE=all ./persistnux.sh

श्रेणियाँ