Linux Forensics
Last updated
Last updated
Trickest का उपयोग करें ताकि आप दुनिया के सबसे उन्नत सामुदायिक उपकरणों द्वारा संचालित वर्कफ़्लो को आसानी से बना और स्वचालित कर सकें। आज ही एक्सेस प्राप्त करें:
सबसे पहले, यह अनुशंसा की जाती है कि आपके पास कुछ USB हो जिसमें अच्छी ज्ञात बाइनरी और पुस्तकालय हों (आप बस उबंटू प्राप्त कर सकते हैं और फ़ोल्डर /bin, /sbin, /lib, और /lib64 की कॉपी कर सकते हैं), फिर USB को माउंट करें, और उन बाइनरी का उपयोग करने के लिए env वेरिएबल को संशोधित करें:
एक बार जब आपने सिस्टम को अच्छे और ज्ञात बाइनरीज़ का उपयोग करने के लिए कॉन्फ़िगर कर लिया है, तो आप कुछ बुनियादी जानकारी निकालना शुरू कर सकते हैं:
बुनियादी जानकारी प्राप्त करते समय आपको अजीब चीजों की जांच करनी चाहिए जैसे:
रूट प्रक्रियाएँ आमतौर पर कम PIDS के साथ चलती हैं, इसलिए यदि आप एक बड़े PID के साथ रूट प्रक्रिया पाते हैं तो आप संदेह कर सकते हैं
/etc/passwd
के अंदर बिना शेल वाले उपयोगकर्ताओं के पंजीकृत लॉगिन की जांच करें
बिना शेल वाले उपयोगकर्ताओं के लिए /etc/shadow
के अंदर पासवर्ड हैश की जांच करें
चल रहे सिस्टम की मेमोरी प्राप्त करने के लिए, LiME का उपयोग करने की सिफारिश की जाती है। इसे संकलित करने के लिए, आपको उसी कर्नेल का उपयोग करना होगा जो पीड़ित मशीन उपयोग कर रही है।
याद रखें कि आप पीड़ित मशीन में LiME या कोई अन्य चीज़ स्थापित नहीं कर सकते क्योंकि इससे इसमें कई परिवर्तन होंगे
तो, यदि आपके पास Ubuntu का एक समान संस्करण है, तो आप apt-get install lime-forensics-dkms
का उपयोग कर सकते हैं।
अन्य मामलों में, आपको LiME को github से डाउनलोड करना होगा और इसे सही कर्नेल हेडर के साथ संकलित करना होगा। पीड़ित मशीन के सटीक कर्नेल हेडर प्राप्त करने के लिए, आप बस निर्देशिका /lib/modules/<kernel version>
को अपनी मशीन पर कॉपी कर सकते हैं, और फिर LiME को उनका उपयोग करके संकलित कर सकते हैं:
LiME 3 फॉर्मेट का समर्थन करता है:
कच्चा (हर खंड को एक साथ जोड़ा गया)
पैडेड (कच्चे के समान, लेकिन दाहिने बिट्स में ज़ीरो के साथ)
लाइम (मेटाडेटा के साथ अनुशंसित फॉर्मेट)
LiME का उपयोग नेटवर्क के माध्यम से डंप भेजने के लिए भी किया जा सकता है, इसे सिस्टम पर स्टोर करने के बजाय कुछ इस तरह: path=tcp:4444
सबसे पहले, आपको सिस्टम को बंद करना होगा। यह हमेशा एक विकल्प नहीं होता क्योंकि कभी-कभी सिस्टम एक प्रोडक्शन सर्वर होगा जिसे कंपनी बंद नहीं कर सकती।
सिस्टम को बंद करने के 2 तरीके हैं, एक सामान्य शटडाउन और एक "प्लग को खींचना" शटडाउन। पहला प्रक्रियाओं को सामान्य रूप से समाप्त करने की अनुमति देगा और फाइल सिस्टम को सिंक्रनाइज़ करेगा, लेकिन यह संभावित मैलवेयर को साक्ष्य नष्ट करने की अनुमति भी देगा। "प्लग को खींचने" का दृष्टिकोण कुछ जानकारी के नुकसान को ले जा सकता है (जानकारी का बहुत अधिक हिस्सा खोने वाला नहीं है क्योंकि हमने पहले ही मेमोरी की एक इमेज ली है) और मैलवेयर को इसके बारे में कुछ करने का कोई अवसर नहीं मिलेगा। इसलिए, यदि आप संदेह करते हैं कि वहाँ मैलवेयर हो सकता है, तो बस सिस्टम पर sync
कमांड निष्पादित करें और प्लग को खींचें।
यह ध्यान रखना महत्वपूर्ण है कि किसी भी मामले से संबंधित किसी भी चीज़ से अपने कंप्यूटर को कनेक्ट करने से पहले, आपको यह सुनिश्चित करना होगा कि इसे केवल पढ़ने के लिए माउंट किया जाएगा ताकि किसी भी जानकारी को संशोधित करने से बचा जा सके।
डिस्क इमेज को बिना किसी और डेटा के इमेज करना।
Trickest का उपयोग करें ताकि आप दुनिया के सबसे उन्नत सामुदायिक उपकरणों द्वारा संचालित कार्यप्रवाहों को आसानी से बना और स्वचालित कर सकें। आज ही एक्सेस प्राप्त करें:
Linux सिस्टम घटकों की अखंडता सुनिश्चित करने के लिए उपकरण प्रदान करता है, जो संभावित समस्याग्रस्त फ़ाइलों को पहचानने के लिए महत्वपूर्ण है।
RedHat-आधारित सिस्टम: व्यापक जांच के लिए rpm -Va
का उपयोग करें।
Debian-आधारित सिस्टम: प्रारंभिक सत्यापन के लिए dpkg --verify
का उपयोग करें, इसके बाद debsums | grep -v "OK$"
(जिसके लिए debsums
को apt-get install debsums
के साथ स्थापित करें) का उपयोग करें ताकि किसी भी समस्या की पहचान की जा सके।
मैलवेयर खोजने के लिए उपयोगी उपकरणों के बारे में जानने के लिए निम्नलिखित पृष्ठ पढ़ें:
Debian और RedHat सिस्टम पर स्थापित कार्यक्रमों की प्रभावी खोज के लिए, सामान्य निर्देशिकाओं में मैनुअल जांच के साथ-साथ सिस्टम लॉग और डेटाबेस का उपयोग करने पर विचार करें।
Debian के लिए, पैकेज इंस्टॉलेशन के बारे में विवरण प्राप्त करने के लिए /var/lib/dpkg/status
और /var/log/dpkg.log
की जांच करें, विशेष जानकारी के लिए grep
का उपयोग करें।
RedHat उपयोगकर्ता स्थापित पैकेजों की सूची के लिए rpm -qa --root=/mntpath/var/lib/rpm
के साथ RPM डेटाबेस को क्वेरी कर सकते हैं।
इन पैकेज प्रबंधकों के बाहर या मैन्युअल रूप से स्थापित सॉफ़्टवेयर को उजागर करने के लिए, /usr/local
, /opt
, /usr/sbin
, /usr/bin
, /bin
, और /sbin
जैसी निर्देशिकाओं का अन्वेषण करें। ज्ञात पैकेजों से संबंधित नहीं होने वाले निष्पादन योग्य फ़ाइलों की पहचान के लिए निर्देशिका सूचियों को सिस्टम-विशिष्ट कमांड के साथ मिलाएं, जिससे आप सभी स्थापित कार्यक्रमों की खोज को बढ़ा सकें।
Trickest का उपयोग करें ताकि आप दुनिया के सबसे उन्नत सामुदायिक उपकरणों द्वारा संचालित वर्कफ़्लो को आसानी से बना और स्वचालित कर सकें। आज ही एक्सेस प्राप्त करें:
कल्पना करें कि एक प्रक्रिया /tmp/exec से निष्पादित की गई थी और फिर हटा दी गई। इसे निकालना संभव है
मैलवेयर को सेवा के रूप में स्थापित करने के लिए पथ:
/etc/inittab: आरंभिक स्क्रिप्ट जैसे rc.sysinit को कॉल करता है, आगे स्टार्टअप स्क्रिप्ट की ओर निर्देशित करता है।
/etc/rc.d/ और /etc/rc.boot/: सेवा स्टार्टअप के लिए स्क्रिप्ट्स होते हैं, बाद वाला पुराने लिनक्स संस्करणों में पाया जाता है।
/etc/init.d/: कुछ लिनक्स संस्करणों जैसे डेबियन में स्टार्टअप स्क्रिप्ट्स को संग्रहीत करने के लिए उपयोग किया जाता है।
सेवाएँ /etc/inetd.conf या /etc/xinetd/ के माध्यम से भी सक्रिय की जा सकती हैं, लिनक्स के प्रकार के आधार पर।
/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 (डेबियन) या /var/log/messages (रेडहैट): सिस्टम-व्यापी संदेशों और गतिविधियों को कैप्चर करता है।
/var/log/auth.log (डेबियन) या /var/log/secure (रेडहैट): प्रमाणीकरण प्रयासों, सफल और असफल लॉगिन को रिकॉर्ड करता है।
प्रासंगिक प्रमाणीकरण घटनाओं को फ़िल्टर करने के लिए 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/: अपाचे 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 की जांच करें।
Gnome Desktop: Gnome अनुप्रयोगों के माध्यम से हाल ही में एक्सेस की गई फ़ाइलों के लिए ~/.recently-used.xbel में देखें।
Firefox/Chrome: संदिग्ध गतिविधियों के लिए ~/.mozilla/firefox या ~/.config/google-chrome में ब्राउज़र इतिहास और डाउनलोड की जांच करें।
VIM: उपयोग विवरणों के लिए ~/.viminfo की समीक्षा करें, जैसे एक्सेस की गई फ़ाइल पथ और खोज इतिहास।
Open Office: हाल की दस्तावेज़ पहुंच की जांच करें जो समझौता की गई फ़ाइलों का संकेत दे सकती है।
FTP/SFTP: अनधिकृत फ़ाइल ट्रांसफर के लिए ~/.ftp_history या ~/.sftp_history में लॉग की समीक्षा करें।
MySQL: निष्पादित MySQL क्वेरी के लिए ~/.mysql_history की जांच करें, जो संभावित रूप से अनधिकृत डेटाबेस गतिविधियों को प्रकट कर सकती है।
Less: उपयोग इतिहास के लिए ~/.lesshst का विश्लेषण करें, जिसमें देखी गई फ़ाइलें और निष्पादित कमांड शामिल हैं।
Git: रिपॉजिटरी में परिवर्तनों के लिए ~/.gitconfig और प्रोजेक्ट .git/logs की जांच करें।
usbrip एक छोटा सा सॉफ़्टवेयर है जो शुद्ध पायथन 3 में लिखा गया है जो लिनक्स लॉग फ़ाइलों (/var/log/syslog*
या /var/log/messages*
वितरण के आधार पर) को पार्स करता है ताकि USB इवेंट इतिहास तालिकाएँ बनाई जा सकें।
यह जानना दिलचस्प है कि सभी USBs का उपयोग किया गया है और यदि आपके पास "उल्लंघन घटनाओं" (उन USBs का उपयोग जो उस सूची में नहीं हैं) को खोजने के लिए एक अधिकृत USBs की सूची है तो यह और भी उपयोगी होगा।
More examples and info inside the github: https://github.com/snovvcrash/usbrip
Use Trickest to easily build and automate workflows powered by the world's most advanced community tools. Get Access Today:
असामान्य नामों या खातों की जांच करें जो /etc/passwd, /etc/shadow और सुरक्षा लॉग में बनाए गए हैं या ज्ञात अनधिकृत घटनाओं के निकट उपयोग किए गए हैं। इसके अलावा, संभावित sudo ब्रूट-फोर्स हमलों की जांच करें। इसके अलावा, उपयोगकर्ताओं को दिए गए अप्रत्याशित विशेषाधिकारों के लिए /etc/sudoers और /etc/groups जैसी फ़ाइलों की जांच करें। अंत में, कोई पासवर्ड नहीं या आसानी से अनुमानित पासवर्ड वाले खातों की तलाश करें।
जब मैलवेयर घटनाओं की जांच की जाती है, तो फ़ाइल प्रणाली की संरचना जानकारी का एक महत्वपूर्ण स्रोत होती है, जो घटनाओं के अनुक्रम और मैलवेयर की सामग्री को प्रकट करती है। हालाँकि, मैलवेयर लेखक इस विश्लेषण को बाधित करने के लिए तकनीकें विकसित कर रहे हैं, जैसे फ़ाइल टाइमस्टैम्प को संशोधित करना या डेटा भंडारण के लिए फ़ाइल प्रणाली से बचना।
इन एंटी-फॉरेंसिक विधियों का मुकाबला करने के लिए, यह आवश्यक है:
घनिष्ठ समयरेखा विश्लेषण करें, जैसे Autopsy का उपयोग करके घटनाओं की समयरेखा को दृश्य रूप में प्रस्तुत करना या Sleuth Kit's mactime
का उपयोग करके विस्तृत समयरेखा डेटा प्राप्त करना।
सिस्टम के $PATH में अप्रत्याशित स्क्रिप्टों की जांच करें, जिसमें हमलावरों द्वारा उपयोग किए गए शेल या PHP स्क्रिप्ट शामिल हो सकते हैं।
असामान्य फ़ाइलों के लिए /dev
की जांच करें, क्योंकि इसमें पारंपरिक रूप से विशेष फ़ाइलें होती हैं, लेकिन यह मैलवेयर से संबंधित फ़ाइलों को भी रख सकता है।
छिपी हुई फ़ाइलों या निर्देशिकाओं की खोज करें जिनके नाम ".. " (डॉट डॉट स्पेस) या "..^G" (डॉट डॉट कंट्रोल-G) हो सकते हैं, जो दुर्भावनापूर्ण सामग्री को छिपा सकते हैं।
setuid रूट फ़ाइलों की पहचान करें कमांड का उपयोग करके: find / -user root -perm -04000 -print
यह उन फ़ाइलों को खोजता है जिनके पास उच्च विशेषाधिकार होते हैं, जिन्हें हमलावरों द्वारा दुरुपयोग किया जा सकता है।
मास फ़ाइल हटाने के संकेत के लिए इनोड तालिकाओं में हटाने के टाइमस्टैम्प की समीक्षा करें, जो संभवतः रूटकिट या ट्रोजन की उपस्थिति का संकेत दे सकते हैं।
एक बार पहचानने के बाद निकटवर्ती दुर्भावनापूर्ण फ़ाइलों के लिए लगातार इनोड की जांच करें, क्योंकि उन्हें एक साथ रखा जा सकता है।
हाल ही में संशोधित फ़ाइलों के लिए सामान्य बाइनरी निर्देशिकाओं (/bin, /sbin) की जांच करें, क्योंकि इन्हें मैलवेयर द्वारा बदला जा सकता है।
ध्यान दें कि एक हमलावर समय को संशोधित कर सकता है ताकि फाइलें वैध दिखें, लेकिन वह inode को संशोधित नहीं कर सकता। यदि आप पाते हैं कि एक फाइल यह दर्शाती है कि इसे उसी समय बनाया और संशोधित किया गया था जैसे कि उसी फ़ोल्डर में अन्य फ़ाइलें, लेकिन inode अप्रत्याशित रूप से बड़ा है, तो उस फाइल के टाइमस्टैम्प को संशोधित किया गया था।
फाइल सिस्टम संस्करणों की तुलना करने और परिवर्तनों को पहचानने के लिए, हम सरल git diff
कमांड का उपयोग करते हैं:
नई फाइलें खोजने के लिए, दो निर्देशिकाओं की तुलना करें:
संशोधित सामग्री के लिए, विशिष्ट पंक्तियों की अनदेखी करते हुए परिवर्तनों की सूची बनाएं:
हटाए गए फ़ाइलों का पता लगाने के लिए:
फिल्टर विकल्प (--diff-filter
) विशिष्ट परिवर्तनों जैसे जोड़े गए (A
), हटाए गए (D
), या संशोधित (M
) फ़ाइलों तक संकीर्ण करने में मदद करते हैं।
A
: जोड़ी गई फ़ाइलें
C
: कॉपी की गई फ़ाइलें
D
: हटाई गई फ़ाइलें
M
: संशोधित फ़ाइलें
R
: नाम बदली गई फ़ाइलें
T
: प्रकार परिवर्तन (जैसे, फ़ाइल से सिम्लिंक)
U
: असंयुक्त फ़ाइलें
X
: अज्ञात फ़ाइलें
B
: टूटी हुई फ़ाइलें
पुस्तक: Linux Systems के लिए Malware Forensics Field Guide: Digital Forensics Field Guides
Use Trickest to easily build and automate workflows powered by the world's most advanced community tools. Get Access Today:
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE) GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)