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
का उपयोग कर सकते हैं।
अन्य मामलों में, आपको github से LiME डाउनलोड करना होगा और इसे सही कर्नेल हेडर के साथ संकलित करना होगा। पीड़ित मशीन के सटीक कर्नेल हेडर प्राप्त करने के लिए, आप बस डायरेक्टरी /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
के साथ स्थापित करें) का उपयोग करें ताकि किसी भी समस्या की पहचान की जा सके।
Malware खोजने के लिए उपयोगी उपकरणों के बारे में जानने के लिए निम्नलिखित पृष्ठ पढ़ें:
Malware AnalysisDebian और 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/: सेवा स्टार्टअप के लिए स्क्रिप्ट्स होते हैं, बाद वाला पुराने Linux संस्करणों में पाया जाता है।
/etc/init.d/: कुछ Linux संस्करणों जैसे Debian में स्टार्टअप स्क्रिप्ट्स को संग्रहीत करने के लिए उपयोग किया जाता है।
सेवाएँ /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/: स्थापित पैकेजों द्वारा प्रदान की गई सिस्टम-व्यापी डिफ़ॉल्ट यूनिट फ़ाइलें।
Linux कर्नेल मॉड्यूल, जो अक्सर मैलवेयर द्वारा रूटकिट घटकों के रूप में उपयोग किए जाते हैं, सिस्टम बूट पर लोड होते हैं। इन मॉड्यूल के लिए महत्वपूर्ण निर्देशिकाएँ और फ़ाइलें शामिल हैं:
/lib/modules/$(uname -r): चल रहे कर्नेल संस्करण के लिए मॉड्यूल रखता है।
/etc/modprobe.d: मॉड्यूल लोडिंग को नियंत्रित करने के लिए कॉन्फ़िगरेशन फ़ाइलें होती हैं।
/etc/modprobe और /etc/modprobe.conf: वैश्विक मॉड्यूल सेटिंग्स के लिए फ़ाइलें।
Linux उपयोगकर्ता लॉगिन पर स्वचालित रूप से कार्यक्रमों को निष्पादित करने के लिए विभिन्न फ़ाइलों का उपयोग करता है, जो संभावित रूप से मैलवेयर को आश्रय दे सकता है:
/etc/profile.d/*, /etc/profile, और /etc/bash.bashrc: किसी भी उपयोगकर्ता लॉगिन के लिए निष्पादित होते हैं।
~/.bashrc, ~/.bash_profile, ~/.profile, और ~/.config/autostart: उपयोगकर्ता-विशिष्ट फ़ाइलें जो उनके लॉगिन पर चलती हैं।
/etc/rc.local: सभी सिस्टम सेवाओं के शुरू होने के बाद चलती है, मल्टीयूजर वातावरण में संक्रमण के अंत को चिह्नित करती है।
Linux सिस्टम उपयोगकर्ता गतिविधियों और सिस्टम घटनाओं को विभिन्न लॉग फ़ाइलों के माध्यम से ट्रैक करता है। ये लॉग अनधिकृत पहुंच, मैलवेयर संक्रमण, और अन्य सुरक्षा घटनाओं की पहचान के लिए महत्वपूर्ण हैं। प्रमुख लॉग फ़ाइलें शामिल हैं:
/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/: यहाँ अप्रत्याशित लॉग के लिए हमेशा जाँच करें।
Linux सिस्टम लॉग और ऑडिट उपप्रणालियाँ एक घुसपैठ या मैलवेयर घटना में अक्षम या हटा दी जा सकती हैं। क्योंकि Linux सिस्टम पर लॉग आमतौर पर दुर्भावनापूर्ण गतिविधियों के बारे में कुछ सबसे उपयोगी जानकारी रखते हैं, घुसपैठिए नियमित रूप से उन्हें हटा देते हैं। इसलिए, उपलब्ध लॉग फ़ाइलों की जांच करते समय, यह महत्वपूर्ण है कि आप उन अंतरालों या अनुक्रम से बाहर की प्रविष्टियों की तलाश करें जो हटाने या छेड़छाड़ का संकेत हो सकते हैं।
Linux प्रत्येक उपयोगकर्ता के लिए एक कमांड इतिहास बनाए रखता है, जो संग्रहीत होता है:
~/.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_history की जांच करें।
Less: उपयोग इतिहास के लिए ~/.lesshst का विश्लेषण करें, जिसमें देखी गई फ़ाइलें और निष्पादित कमांड शामिल हैं।
Git: रिपॉजिटरी में परिवर्तनों के लिए ~/.gitconfig और प्रोजेक्ट .git/logs की जांच करें।
usbrip एक छोटा सा सॉफ़्टवेयर है जो शुद्ध Python 3 में लिखा गया है जो USB इवेंट इतिहास तालिकाओं का निर्माण करने के लिए Linux लॉग फ़ाइलों (/var/log/syslog*
या /var/log/messages*
वितरण के आधार पर) को पार्स करता है।
यह जानना दिलचस्प है कि सभी 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) की जांच करें, क्योंकि इन्हें मैलवेयर द्वारा संशोधित किया जा सकता है।
ध्यान दें कि एक हमलावर समय को संशोधित कर सकता है ताकि फाइलें वैध दिखें, लेकिन वह इनोड को संशोधित नहीं कर सकता। यदि आप पाते हैं कि एक फाइल यह दर्शाती है कि इसे उसी समय बनाया और संशोधित किया गया था जैसे कि उसी फ़ोल्डर में अन्य फ़ाइलें, लेकिन इनोड अप्रत्याशित रूप से बड़ा है, तो उस फाइल के टाइमस्टैम्प को संशोधित किया गया था।
फाइल सिस्टम संस्करणों की तुलना करने और परिवर्तनों को पहचानने के लिए, हम सरल 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)