
बैश-आधारित लिनक्स स्थायित्व पहचान उपकरण जो DFIR जाँच के लिए है। 15+ स्थायित्व तंत्रों (systemd, cron, कर्नेल मॉड्यूल, SSH, कंटेनर) को विश्वास स्कोरिंग के साथ स्कैन करता है और फोरेंसिक विश्लेषण के लिए CSV/JSONL रिपोर्ट उत्पन्न करता है।
Linux पर स्थायित्व (persistence) का पता लगाने वाला एक व्यापक उपकरण, जो डिजिटल फोरेंसिक और घटना प्रतिक्रिया (DFIR) जांच के लिए है।
Persistnux एक bash-आधारित उपकरण है जो हमलावरों द्वारा समझौता किए गए सिस्टम तक पहुंच बनाए रखने के लिए उपयोग किए जाने वाले ज्ञात Linux स्थायित्व तंत्रों की पहचान करने के लिए डिज़ाइन किया गया है। यह सिस्टम भर में व्यापक जाँच करता है और आगे के विश्लेषण के लिए CSV और JSONL दोनों प्रारूपों में विस्तृत रिपोर्ट तैयार करता है।
/etc/systemd/system, /lib/systemd/system, /usr/lib/systemd/system में सेवा फ़ाइलें (.service)/etc/crontab, /etc/cron.d/*)/etc/cron.{daily,hourly,weekly,monthly})/etc/cron.allow और /etc/cron.deny ACL फ़ाइलें — गैर-मौजूद उपयोगकर्ताओं को संदर्भित करने वाली प्रविष्टियाँ चिह्नित/etc/profile, /etc/bash.bashrc, /etc/zshrc)/etc/profile.d/*).bashrc, .bash_profile, .zshrc, .profile, आदि)/etc/rc.local और वेरिएंट/etc/init.d)/etc/rc*.d)/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) — गणना और अखंडता सत्यापन.config/autostart, /etc/xdg/autostart) — रूट होने पर सभी उपयोगकर्ता होम स्कैन किए जाते हैं/etc/environment) — LD_PRELOAD/LD_LIBRARY_PATH लाइब्रेरी पथ सत्यापित/etc/sudoers, /etc/sudoers.d/) — NOPASSWD/ALL पैटर्न → HIGH.so मॉड्यूल पैकेज प्रबंधक के माध्यम से सत्यापित; @include निर्देशों का अनुसरण; /etc/pam.conf शामिलpam_exec.so स्क्रिप्ट विश्लेषण — लापता/संदिग्ध स्क्रिप्ट → CRITICALpam_python.so / pam_perl.so रिले डिटेक्शन — स्क्रिप्ट निकाली और विश्लेषित/etc/security/ में pam_script.so हुक फ़ाइल डिटेक्शनpam_env.conf और ~/.pam_environment LD_PRELOAD लाइब्रेरी सत्यापन/etc/security/ सामान्य स्कैन/etc/update-motd.d/) — पैकेज सत्यापन; संशोधित → CRITICAL~/.ssh/authorized_keys — हाल ही में संशोधित कुंजियाँ चिह्नित; command= विकल्प सामग्री का संदिग्ध पैटर्न के लिए विश्लेषण~/.ssh/rc — उपस्थिति को MEDIUM चिह्नित; संदिग्ध/रिवर्स शेल सामग्री → HIGH/CRITICALdpkg -V, RHEL/CentOS पर rpm -Va)/usr/bin, /usr/sbin, /bin, /sbin में संशोधित फ़ाइलें → CRITICAL खोज/lib/security में संशोधित PAM मॉड्यूल → CRITICAL खोज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-आधारित)ResultAny/ResultInactive/ResultActive=yes वाली .pkla फ़ाइलेंunix-user:*) अनुदानpolkit.Result.YES वाली .rules फ़ाइलें (JavaScript-आधारित Polkit >= 0.106)Exec= पंजीकरण (/usr/share/dbus-1/system-services/)allow own="*" या send_destination="*" निर्देश/etc/NetworkManager/dispatcher.d/)RUN+= निर्देश मनमाने कमांड या स्क्रिप्ट निष्पादित करना (/etc/udev/rules.d/, /lib/udev/rules.d/)/run/udev/rules.d/ में रनटाइम-इंजेक्टेड नियमRUN+= में at/cron प्रतिनिधिमंडल पैटर्न (सामान्य फोरग्राउंड प्रतिबंध बाईपास)--privileged, --pid=host)docker.sock बाइंड-माउंट (Docker API के माध्यम से पूर्ण होस्ट नियंत्रण)nsenter -t 1getcap के माध्यम से फ़ाइल क्षमता स्कैन — GTFOBins पर cap_setuid+ep → CRITICAL.original, .old, .bak, .real)/etc/passwd में UID 0 वाले गैर-रूट खाते/etc/passwd शेल फ़ील्ड में अनुगामी स्थान के माध्यम से शेल मास्किंग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
डिफ़ॉल्ट रूप से, Persistnux शोर कम करने और कार्रवाई योग्य खतरों पर ध्यान केंद्रित करने के लिए केवल संदिग्ध खोज (MEDIUM, HIGH, CRITICAL विश्वास) दिखाता है।
# डिफ़ॉल्ट: केवल संदिग्ध खोज दिखाएं
sudo ./persistnux.sh
# बेसलाइन (LOW विश्वास) सहित सभी खोज दिखाएं
sudo ./persistnux.sh --all
# या
sudo FILTER_MODE=all ./persistnux.sh