Linux Forensics
Trickest का उपयोग करें और आसानी से सबसे उन्नत समुदाय उपकरणों द्वारा संचालित कार्यप्रवाह बनाएं और स्वचालित करें। आज ही पहुंचें:
प्रारंभिक जानकारी एकत्र करना
मौलिक जानकारी
सबसे पहले, सुझाव दिया जाता है कि कुछ USB के साथ होना चाहिए जिसमें अच्छे जाने माने बाइनरी और लाइब्रेरी हों (आप बस उबंटू ले सकते हैं और फोल्डर /bin, /sbin, /lib, और /lib64 कॉपी कर सकते हैं), फिर USB को माउंट करें, और env variables को उन बाइनरी का उपयोग करने के लिए संशोधित करें:
जब आपने सिस्टम को अच्छे और जाने-माने binaries का उपयोग करने के लिए कॉन्फ़िगर कर लिया है, तो आप कुछ मौलिक जानकारी निकालना शुरू कर सकते हैं:
संदेहास्पद जानकारी
मूल जानकारी प्राप्त करते समय आपको ऐसी अजीब चीजों की जांच करनी चाहिए जैसे:
रूट प्रक्रियाएँ आम तौर पर कम PIDS के साथ चलती हैं, इसलिए अगर आप एक बड़ी PID के साथ एक रूट प्रक्रिया पाते हैं तो आप संदेह कर सकते हैं
/etc/passwd
में शैली बिना उपयोगकर्ताओं की रजिस्टर्ड लॉगिन की जांच करें/etc/shadow
में पासवर्ड हैश की जांच करें जिनके पास एक शैल नहीं है
मेमोरी डंप
चल रहे सिस्टम की मेमोरी प्राप्त करने के लिए, LiME का उपयोग करना सुझावित है। इसे कंपाइल करने के लिए, आपको पीडीआई की विक्टिम मशीन का वही कर्नेल उपयोग करना होगा।
ध्यान रखें कि आप LiME या किसी अन्य चीज़ को विक्टिम मशीन में इंस्टॉल नहीं कर सकते क्योंकि इससे इसमें कई बदलाव हो जाएंगे
तो, यदि आपके पास एक वैशिष्ट्यपूर्ण संस्करण का यूबंटू है तो आप apt-get install lime-forensics-dkms
का उपयोग कर सकते हैं
अन्य मामलों में, आपको LiME को github से डाउनलोड करना होगा और सही कर्नेल हेडर्स के साथ इसे कंपाइल करना होगा। विक्टिम मशीन के सटीक कर्नेल हेडर्स प्राप्त करने के लिए, आप बस अपनी मशीन पर निर्देशिका /lib/modules/<कर्नेल संस्करण>
की कॉपी कर सकते हैं, और फिर उन्हें उपयोग करके LiME को कंपाइल कर सकते हैं:
LiME समर्थित करता है 3 फ़ॉर्मेट:
Raw (हर सेगमेंट को एक साथ जोड़ा गया)
Padded (रॉ के समान, लेकिन दाईं बिट्स में शून्य हैं)
Lime (मेटाडेटा के साथ अनुशंसित फ़ॉर्मेट)
LiME का उपयोग नेटवर्क के माध्यम से डंप भेजने के लिए भी किया जा सकता है इसे सिस्टम पर स्टोर करने की बजाय कुछ इस प्रकार का उपयोग करके: path=tcp:4444
डिस्क इमेजिंग
बंद करना
सबसे पहले, आपको सिस्टम को बंद करने की आवश्यकता होगी। यह हमेशा एक विकल्प नहीं है क्योंकि कई बार सिस्टम एक उत्पादन सर्वर होगा जिसे कंपनी को बंद करने की सामर्थ्य नहीं होगी।
सिस्टम को बंद करने के 2 तरीके हैं, एक सामान्य बंद करना और एक "प्लग निकालना" बंद करना। पहला तरीका प्रक्रियाओं को सामान्य रूप से समाप्त करने और फ़ाइल सिस्टम को समकालीन होने देगा, लेकिन यह भी संभावित मैलवेयर को सबूत नष्ट करने की अनुमति देगा। "प्लग निकालना" दृष्टिकोण कुछ जानकारी की हानि ले सकता है (ज्यादातर जानकारी नष्ट नहीं होने वाली है क्योंकि हमने पहले ही मेमोरी का इमेज ले लिया है) और मैलवेयर को कुछ करने का कोई मौका नहीं होगा। इसलिए, यदि आपको लगता है कि वहाँ मैलवेयर हो सकता है, तो सिस्टम पर sync
कमांड को चलाएं और प्लग निकालें।
डिस्क का इमेज लेना
यह महत्वपूर्ण है कि मामले से संबंधित कुछ भी कनेक्ट करने से पहले, आपको यह सुनिश्चित करना होगा कि यह केवल पढ़ने योग्य रूप में माउंट होगा ताकि कोई भी जानकारी में कोई परिवर्तन न हो।
डिस्क इमेज पूर्व विश्लेषण
किसी भी अधिक डेटा के साथ डिस्क इमेज को इमेजिंग करें।
Trickest का उपयोग करें और आसानी से ऑटोमेट वर्कफ़्लो बनाएं जो दुनिया के सबसे उन्नत समुदाय उपकरणों द्वारा संचालित हैं। आज ही पहुंचें:
ज्ञात मैलवेयर की खोज
संशोधित सिस्टम फ़ाइलें
Linux सिस्टम घटकों की अखंडता सुनिश्चित करने के लिए उपकरण प्रदान करता है, जो संभावित समस्यात्मक फ़ाइलों को पहचानने में महत्वपूर्ण हैं।
RedHat आधारित सिस्टम: व्यापक जांच के लिए
rpm -Va
का उपयोग करें।Debian आधारित सिस्टम: प्रारंभिक सत्यापन के लिए
dpkg --verify
का उपयोग करें, और फिरdebsums | grep -v "OK$"
(apt-get install debsums
के साथdebsums
को स्थापित करने के बाद) का उपयोग करें किसी भी समस्याओं की पहचान के लिए।
मैलवेयर/रूटकिट डिटेक्टर्स
मैलवेयर खोजने में सहायक हो सकने वाले उपकरणों के बारे में जानने के लिए निम्नलिखित पृष्ठ पढ़ें:
pageMalware Analysisस्थापित कार्यक्रमों की खोज
Debian और RedHat सिस्टमों पर स्थापित कार्यक्रमों की प्रभावी खोज करने के लिए, सामान्य निरीक्षण के साथ सिस्टम लॉग और डेटाबेस का सहारा लेना ध्यान में रखें।
Debian के लिए,
/var/lib/dpkg/status
और/var/log/dpkg.log
की जांच करें पैकेज स्थापनाओं के बारे में विवरण प्राप्त करने के लिए,grep
का उपयोग करें विशिष्ट जानकारी के लिए।RedHat उपयोगकर्ता RPM डेटाबेस को
rpm -qa --root=/mntpath/var/lib/rpm
के साथ क्वेरी कर सकते हैं इंस्टॉल किए गए पैकेजों की सूची के लिए।
इन पैकेज प्रबंधकों के बाहर मैन्युअल या स्थापित किए गए सॉफ़्टवेयर को खोजने के लिए, /usr/local
, /opt
, /usr/sbin
, /usr/bin
, /bin
, और /sbin
जैसे निर्देशिकाओं का अन्वेषण करें। सिस्टम-विशेष आदेशों के साथ निर्देशिका सूचियों को मिलाकर पहचानें जिनमें जाने-माने पैकेजों से संबंधित नहीं हैं, सभी स्थापित कार्यक्रमों की खोज को बढ़ावा दें।
Trickest का उपयोग करें और आसानी से वर्ल्ड के सबसे उन्नत समुदाय उपकरणों द्वारा संचालित कार्यप्रवाह बनाएं और स्वचालित करें। आज ही पहुंचें:
हटाए गए चल रहे बाइनरी को पुनः प्राप्त करें
कल्पना करें एक प्रक्रिया जो /tmp/exec से निष्पादित की गई थी और फिर हटा दी गई थी। इसे निकालना संभव है
ऑटोस्टार्ट स्थानों की जांच
निर्धारित कार्यों
सेवाएं
मालवेयर को सेवा के रूप में स्थापित किया जा सकने वाले पथ:
/etc/inittab: rc.sysinit जैसे प्रारंभीकरण स्क्रिप्ट को बुलाता है, जो आगे स्टार्टअप स्क्रिप्ट्स की ओर निर्देशित करता है।
/etc/rc.d/ और /etc/rc.boot/: सेवा स्टार्टअप के लिए स्क्रिप्ट्स को रखते हैं, जिन्हें पुराने Linux संस्करणों में पाया जाता है।
/etc/init.d/: Debian जैसे कुछ Linux संस्करणों में स्टार्टअप स्क्रिप्ट्स को स्टोर करने के लिए उपयोग किया जाता है।
सेवाएं /etc/inetd.conf या /etc/xinetd/ के माध्यम से भी सक्रिय की जा सकती हैं, जो Linux प्रकार पर निर्भर करता है।
/etc/systemd/system: सिस्टम और सेवा प्रबंधक स्क्रिप्ट के लिए एक निर्देशिका।
/etc/systemd/system/multi-user.target.wants/: एक मल्टी-यूजर रनलेवल में शुरू किए जाने वाली सेवाओं के लिंक्स को रखता है।
/usr/local/etc/rc.d/: कस्टम या थर्ड-पार्टी सेवाओं के लिए।
~/.config/autostart/: उपयोगकर्ता-विशिष्ट स्वचालित स्टार्टअप एप्लिकेशन के लिए, जो उपयोगकर्ता-लक्षित मालवेयर के लिए एक छुपाने की जगह हो सकता है।
/lib/systemd/system/: सिस्टम-व्यापी डिफ़ॉल्ट यूनिट फ़ाइलें इंस्टॉल किए गए पैकेज्स द्वारा प्रदान की गई हैं।
कर्नेल मॉड्यूल
लिनक्स कर्नेल मॉड्यूल, जो अक्सर मालवेयर द्वारा रूटकिट घटक के रूप में उपयोग किए जाते हैं, सिस्टम बूट पर लोड किए जाते हैं। इन मॉड्यूल के लिए महत्वपूर्ण निर्देशिकाएं और फ़ाइलें शामिल हैं:
/lib/modules/$(uname -r): चल रहे कर्नेल संस्करण के लिए मॉड्यूल्स को रखता है।
/etc/modprobe.d: मॉड्यूल लोडिंग को नियंत्रित करने के लिए कॉन्फ़िगरेशन फ़ाइलें शामिल हैं।
/etc/modprobe और /etc/modprobe.conf: वैश्विक मॉड्यूल सेटिंग्स के लिए फ़ाइलें।
अन्य स्वचालित स्टार्टअर्ट स्थान
लिनक्स उपयोगकर्ता लॉगिन पर स्वचालित रूप से कार्यों को निष्पादित करने के लिए विभिन्न फ़ाइलों का उपयोग करता है, जो संभावित रूप से मालवेयर को छुपाने के लिए हो सकते हैं:
/etc/profile.d/*, /etc/profile, और /etc/bash.bashrc: किसी भी उपयोगकर्ता लॉगिन के लिए निष्पादित किया जाता है।
~/.bashrc, ~/.bash_profile, ~/.profile, और ~/.config/autostart: उपयोगकर्ता-विशिष्ट फ़ाइलें जो उनके लॉगिन पर चलती हैं।
/etc/rc.local: सभी सिस्टम सेवाएं शुरू होने के बाद चलाया जाता है, जो मल्टीयूजर परिवेश की ओर संकेत करता है।
लॉग की जांच
लिनक्स सिस्टम विभिन्न लॉग फ़ाइलों के माध्यम से उपयोगकर्ता गतिविधियों और सिस्टम घटनाओं का ट्रैक करते हैं। ये लॉग अनधिकृत पहुंच, मालवेयर संक्रमण, और अन्य सुरक्षा घटनाओं की पहचान के लिए महत्वपूर्ण हैं। मुख्य लॉग फ़ाइलें शामिल हैं:
/var/log/syslog (Debian) या /var/log/messages (RedHat): सिस्टम-व्यापी संदेश और गतिविधियों को कैप्चर करते हैं।
/var/log/auth.log (Debian) या /var/log/secure (RedHat): प्रमाणीकरण प्रयासों, सफल और असफल लॉगिन को रिकॉर्ड करते हैं।
grep -iE "session opened for|accepted password|new session|not in sudoers" /var/log/auth.log
का उपयोग संबंधित प्रमाणीकरण घटनाओं को फ़िल्टर करने के लिए करें।/var/log/boot.log: सिस्टम स्टार्टअप संदेश शामिल करता है।
/var/log/maillog या /var/log/mail.log: ईमेल सर्वर गतिविधियों को लॉग करता है, जो ईमेल संबंधित सेवाओं का ट्रैकिंग करने के लिए उपयोगी है।
/var/log/kern.log: कर्नेल संदेश स्टोर करता है, जिसमें त्रुटियाँ और चेतावनियाँ शामिल हैं।
/var/log/dmesg: डिवाइस ड्राइवर संदेशों को रखता है।
/var/log/faillog: सुरक्षा उल्लंघन जांच में मदद करने वाले असफल लॉगिन प्रयासों को रिकॉर्ड करता है।
/var/log/cron: क्रॉन जॉब क्रियाओं को लॉग करता है।
/var/log/daemon.log: पिछले सेवा गतिविधियों का ट्रैक करता है।
/var/log/btmp: असफल लॉगिन प्रयासों को दस्तावेज़ करता है।
/var/log/httpd/: Apache HTTPD त्रुटि और एक्सेस लॉग्स को रखता है।
/var/log/mysqld.log या /var/log/mysql.log: MySQL डेटाबेस गतिविधियों को लॉग करता है।
/var/log/xferlog: FTP फ़ाइल स्थानांतरण को रिकॉर्ड करता है।
/var/log/: यहाँ अप्रत्याशित लॉग के लिए हमेशा जांच करें।
लिनक्स सिस्टम लॉग और ऑडिट सबसिस्टम को एक उत्पीड़न या मालवेयर घटना में अक्षम या हटा दिया जा सकता है। क्योंकि लिनक्स सिस्टम पर लॉग आम तौर पर दुर्भाग्यपूर्ण गतिविधियों के बारे में सबसे उपयोगी जानकारी शामिल करते हैं, अतः अवैध पहुंच या टैम्परिंग का संकेत हो सकने वाले खालियों या अव्यवस्थित प्रविष्टियों की खोज करना महत्वपूर्ण है।
लिनक्स प्रत्येक उपयोगकर्ता के लिए एक कमांड हिस्ट्री बनाए रखता है, जिसे इसमें स्टोर किया जाता है:
~/.bash_history
~/.zsh_history
~/.zsh_sessions/*
~/.python_history
~/.*_history
इसके अतिरिक्त, last -Faiwx
कमांड उपयोगकर्ता लॉगिन की सूची प्रदान करता है। अज्ञात या अप्रत्याशित लॉगिन के लिए इसे जांचें।
अतिरिक्त अधिक अधिकार प्रदान कर सकने वाली फ़ाइलें जांचें:
अनपेक्षित उपयोगकर्ता अधिकारों के लिए
/etc/sudoers
की समीक्षा करें जो प्रदान किए गए हो सकते हैं।अनपेक्षित उपयोगकर्ता अधिकारों के लिए
/etc/sudoers.d/
की समीक्षा करें जो प्रदान किए गए हो सकते हैं।असामान्य समूह सदस्यता या अनुमतियों की पहचान के लिए
/etc/groups
की समीक्षा करें।असामान्य समूह सदस्यता या अनुमतियों की पहचान के लिए
/etc/passwd
की समीक्षा करें।
कुछ ऐप्स भी अपने खुद के लॉग उत्पन्न करते हैं:
SSH: अनधिकृत रिमोट कनेक्शन के लिए ~/.ssh/authorized_keys और ~/.ssh/known_hosts
उदाहरण
अधिक उदाहरण और जानकारी गिथब में: https://github.com/snovvcrash/usbrip
Trickest का उपयोग करें और आसानी से ऑटोमेट वर्कफ़्लो बनाएं जो दुनिया के सबसे उन्नत समुदाय उपकरणों द्वारा संचालित हैं। आज ही पहुंचें:
उपयोगकर्ता खातों और लॉगऑन गतिविधियों की समीक्षा
अनूठे नामों या खातों की जांच करें जो अनुमति दी गई घटनाओं के निकट बनाए गए या उपयोग किए गए हों, जो अनाधिकृत हो सकते हैं, /etc/passwd, /etc/shadow और सुरक्षा लॉग की जांच करें। संभावित सुडो ब्रूट-फ़ोर्स हमलों की भी जांच करें। इसके अतिरिक्त, उपयोगकर्ताओं को दी गई अप्रत्याशित विशेषाधिकारों के लिए फ़ाइलें जैसे /etc/sudoers और /etc/groups की भी जांच करें। अंत में, कोई पासवर्ड नहीं वाले खातों या आसानी से अनुमान लगाए जाने वाले पासवर्डों की जांच करें।
फ़ाइल सिस्टम की जांच
मैलवेयर जांच में फ़ाइल सिस्टम संरचनाओं का विश्लेषण
मैलवेयर घटनाओं की जांच करते समय, फ़ाइल सिस्टम की संरचना एक महत्वपूर्ण सूत्र होती है, जो घटनाओं की क्रमवार्ता और मैलवेयर की सामग्री दिखाती है। हालांकि, मैलवेयर लेखक इस विश्लेषण को बाधित करने के लिए तकनीक विकसित कर रहे हैं, जैसे फ़ाइल टाइमस्टैम्प को संशोधित करना या डेटा भंडारण के लिए फ़ाइल सिस्टम से बचना।
इन एंटी-फोरेंसिक विधियों का विरोध करने के लिए, निम्नलिखित महत्वपूर्ण है:
घटना समयरेखा विश्लेषण का विस्तृत विश्लेषण करें, जैसे कि Autopsy जैसे उपकरणों का उपयोग करके घटना समयरेखाओं को दृश्यीकरण करने या Sleuth Kit's
mactime
का उपयोग विस्तृत समयरेखा डेटा के लिए।तंत्रिका के $PATH में अप्रत्याशित स्क्रिप्ट की जांच करें, जिसमें हमलावर द्वारा उपयोग किए जाने वाले शैल या PHP स्क्रिप्ट शामिल हो सकते हैं।
अटिपिकल फ़ाइलों के लिए
/dev
जांचें, क्योंकि इसमें पारंपरिक रूप से विशेष फ़ाइलें होती हैं, लेकिन यह मैलवेयर संबंधित फ़ाइलों को भी रख सकता है।".. " (डॉट डॉट स्पेस) या "..^G" (डॉट डॉट कंट्रोल-जी) जैसे नामों वाली छिपी हुई फ़ाइलें या निर्देशिकाएं खोजें, जो कट्टर सामग्री को छुपा सकती हैं।
find / -user root -perm -04000 -print
आदेश का उपयोग करके सेटयूआइड रूट फ़ाइलें पहचानें। यह उच्च अनुमतियों वाली फ़ाइलों को खोजता है, जिन्हें हमलावरों द्वारा दुरुपयोग किया जा सकता है।इनोड तालिकाओं में मिटाने की समयचिह्न की समीक्षा करें, जिससे बड़ी संख्या में फ़ाइलों को मिटाया गया हो सकता है, जो रूटकिट या ट्रोजन की मौजूदगी की संकेत कर सकता है।
एक के बाद एक आने वाली इनोड की जांच करें, क्योंकि एक बार एक को पहचानने के बाद ये निकट में रखे गए मैलवेयर संबंधित फ़ाइलों को रख सकते हैं।
हाल ही में संशोधित फ़ाइलों के लिए सामान्य बाइनरी निर्देशिकाएं (/bin, /sbin) की जांच करें, क्योंकि ये मैलवेयर द्वारा संशोधित किए जा सकते हैं।
ध्यान दें कि एक हमलावर समय संशोधित कर सकता है ताकि फ़ाइलें वास्तविक लगें, लेकिन वह inode को संशोधित नहीं कर सकता। अगर आपको लगता है कि एक फ़ाइल इस बात का संकेत देती है कि यह उसी फ़ोल्डर में बाकी फ़ाइलों के साथ एक ही समय पर बनाई और संशोधित की गई थी, लेकिन inode अपेक्षाकृत बड़ा है, तो उस फ़ाइल के timestamps को संशोधित किया गया था।
विभिन्न फ़ाइल सिस्टम संस्करणों की तुलना करें
फ़ाइल सिस्टम संस्करण तुलना सारांश
संशोधित संस्करणों की तुलना करने और परिवर्तनों को पहचानने के लिए, हम सरलित git diff
कमांड का उपयोग करते हैं:
नई फ़ाइलें खोजने के लिए, दो निर्देशिकाओं की तुलना करें:
संशोधित सामग्री के लिए, विशिष्ट पंक्तियों को नजरअंदाज करते हुए परिवर्तनों की सूची बनाएं:
हटाए गए फ़ाइलें पता लगाने के लिए:
फ़िल्टर विकल्प (
--diff-filter
) मदद करते हैं किसी विशेष परिवर्तन जैसे जोड़ी गई (A
), हटाई गई (D
), या संशोधित (M
) फ़ाइलों तक पहुँचने में।A
: जोड़ी गई फ़ाइलेंC
: कॉपी की गई फ़ाइलेंD
: हटाई गई फ़ाइलेंM
: संशोधित फ़ाइलेंR
: नामकरण की गई फ़ाइलेंT
: प्रकार के परिवर्तन (उदा., फ़ाइल से सिंबलिंक)U
: अमर्जित फ़ाइलेंX
: अज्ञात फ़ाइलेंB
: टूटी हुई फ़ाइलें
संदर्भ
पुस्तक: मैलवेयर फोरेंसिक्स फ़ील्ड गाइड फॉर लिनक्स सिस्टम्स: डिजिटल फोरेंसिक्स फील्ड गाइड्स
Trickest का उपयोग करें और दुनिया के सबसे उन्नत समुदाय उपकरणों द्वारा संचालित औटोमेटेड वर्कफ़्लो आसानी से बनाएं। आज ही पहुंच प्राप्त करें:
Last updated