
लिनक्स स्थायित्व का पता लगाने, शिकार करने और कलाकृति संग्रह करने की स्क्रिप्ट
persisthunt.sh लक्षित persistence-संबंधित artifacts एकत्र करके और Linux persistence तकनीकों से आमतौर पर जुड़े संदिग्ध पैटर्न को उजागर करके जाँच को तेज़ करने में मदद करता है।
यह स्क्रिप्ट प्रसिद्ध Linux persistence तंत्रों में persistence detection, threat hunting और artifact collection में सहायता करती है। निष्कर्षों को विश्वास और गंभीरता के आधार पर तीन स्तरों - High, Low, और Informational में वर्गीकृत किया जाता है। उदाहरणों में /tmp/, /home/, /dev/tcp, curl को संदर्भित करने वाली संदिग्ध autorun प्रविष्टियाँ, या सक्रिय bind/reverse shells का पता लगाना शामिल है।
इसे एक लचीली नींव के रूप में डिज़ाइन किया गया है जिसे defenders detection logic और keywords जोड़कर या हटाकर अपने वातावरण के अनुसार अनुकूलित कर सकते हैं। आउटपुट बड़ा हो सकता है और इसके लिए वातावरण-विशिष्ट विश्लेषण की आवश्यकता हो सकती है, लेकिन यह LLMs या AI agents का उपयोग करके समीक्षा और सारांश के लिए भी उपयुक्त है।
root उपयोगकर्ता के रूप में चलाएँ और आउटपुट को एक फ़ाइल में रीडायरेक्ट करें
sudo persisthunt.sh > output.log
SSH के माध्यम से दूरस्थ होस्ट पर चलाएँ
ssh [email protected] 'bash -s' < persisthunt.sh > output.log 2>&1
=== [HIGH] Active reverse shell ===
bob 3889906 0.0 0.0 2800 1848 pts/2 S+ 06:38 0:00 sh -i
=== [HIGH] Active bind shell ===
LISTEN 0 1 0.0.0.0:4444 0.0.0.0:* users:(("python3",pid=3891687,fd=3))
bob 3891687 0.7 0.3 19540 12320 pts/3 S+ 06:41 0:00 python3 -c exec("""import socket as s,subprocess as sp;s1=s.socket(s.AF_INET,s.SOCK_STREAM);s1.setsockopt(s.SOL_SOCKET,s.SO_REUSEADDR, 1);s1.bind(("0.0.0.0",4444));s1.listen(1);c,a=s1.accept(); while True: d=c.recv(1024).decode();p=sp.Popen(d,shell=True,stdout=sp.PIPE,stderr=sp.PIPE,stdin=sp.PIPE);c.sendall(p.stdout.read()+p.stderr.read())""")
=== [HIGH] eBPF programs with raw network sockets (possible BPFdoor persistence) ===
PID: 3903559, Executable: bpfdoorpoc, Stack trace: /proc/3903559/stack:[<0>] packet_recvmsg+0x6e/0x5c0
=== [LOW] Recent ELF binary in tmp/home/hidden dirs ===
/var/tmp/.test