hacktricks/forensics/basic-forensic-methodology/linux-forensics.md

440 lines
44 KiB
Markdown
Raw Permalink Normal View History

# Linux Forensics
2022-04-28 16:01:33 +00:00
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
2022-08-31 22:35:39 +00:00
\
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) का उपयोग करें ताकि आप दुनिया के **सबसे उन्नत** सामुदायिक उपकरणों द्वारा संचालित **वर्कफ़्लो** को आसानी से बना और **स्वचालित** कर सकें।\
आज ही एक्सेस प्राप्त करें:
2022-08-31 22:35:39 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% hint style="success" %}
AWS हैकिंग सीखें और अभ्यास करें:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP हैकिंग सीखें और अभ्यास करें: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
<summary>HackTricks का समर्थन करें</summary>
2022-04-28 16:01:33 +00:00
* [**सदस्यता योजनाएँ**](https://github.com/sponsors/carlospolop) देखें!
* **हमारे साथ जुड़ें** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **हमें** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** पर फॉलो करें।**
* **हैकिंग ट्रिक्स साझा करें और** [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) गिटहब रिपोजिटरी में PR सबमिट करें।
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}
2022-04-28 16:01:33 +00:00
## प्रारंभिक जानकारी संग्रहण
2022-05-01 16:32:23 +00:00
### बुनियादी जानकारी
2020-12-25 10:22:35 +00:00
सबसे पहले, यह अनुशंसा की जाती है कि आपके पास कुछ **USB** हो जिसमें **अच्छी ज्ञात बाइनरी और पुस्तकालय हों** (आप बस उबंटू प्राप्त कर सकते हैं और फ़ोल्डर _/bin_, _/sbin_, _/lib,_ और _/lib64_ की कॉपी कर सकते हैं), फिर USB को माउंट करें, और उन बाइनरी का उपयोग करने के लिए env वेरिएबल को संशोधित करें:
2020-12-25 10:22:35 +00:00
```bash
export PATH=/mnt/usb/bin:/mnt/usb/sbin
export LD_LIBRARY_PATH=/mnt/usb/lib:/mnt/usb/lib64
```
एक बार जब आपने सिस्टम को अच्छे और ज्ञात बाइनरीज़ का उपयोग करने के लिए कॉन्फ़िगर कर लिया है, तो आप **कुछ बुनियादी जानकारी निकालना** शुरू कर सकते हैं:
2020-12-25 10:22:35 +00:00
```bash
2022-09-07 15:35:57 +00:00
date #Date and time (Clock may be skewed, Might be at a different timezone)
2020-12-25 10:22:35 +00:00
uname -a #OS info
2022-09-07 15:35:57 +00:00
ifconfig -a || ip a #Network interfaces (promiscuous mode?)
2020-12-25 10:22:35 +00:00
ps -ef #Running processes
netstat -anp #Proccess and ports
lsof -V #Open files
netstat -rn; route #Routing table
df; mount #Free space and mounted devices
2020-12-25 22:35:08 +00:00
free #Meam and swap space
2020-12-25 10:22:35 +00:00
w #Who is connected
2020-12-26 23:48:55 +00:00
last -Faiwx #Logins
2020-12-25 10:22:35 +00:00
lsmod #What is loaded
cat /etc/passwd #Unexpected data?
cat /etc/shadow #Unexpected data?
2020-12-25 22:35:08 +00:00
find /directory -type f -mtime -1 -print #Find modified files during the last minute in the directory
2020-12-25 10:22:35 +00:00
```
#### संदिग्ध जानकारी
2020-12-25 10:22:35 +00:00
बुनियादी जानकारी प्राप्त करते समय आपको अजीब चीजों की जांच करनी चाहिए जैसे:
2020-12-25 22:25:37 +00:00
* **रूट प्रक्रियाएँ** आमतौर पर कम PIDS के साथ चलती हैं, इसलिए यदि आप एक बड़े PID के साथ रूट प्रक्रिया पाते हैं तो आप संदेह कर सकते हैं
* `/etc/passwd` के अंदर बिना शेल वाले उपयोगकर्ताओं के **पंजीकृत लॉगिन** की जांच करें
* बिना शेल वाले उपयोगकर्ताओं के लिए `/etc/shadow` के अंदर **पासवर्ड हैश** की जांच करें
2020-12-25 22:25:37 +00:00
2023-11-06 08:38:02 +00:00
### मेमोरी डंप
2020-12-25 22:25:37 +00:00
चल रहे सिस्टम की मेमोरी प्राप्त करने के लिए, [**LiME**](https://github.com/504ensicsLabs/LiME) का उपयोग करने की सिफारिश की जाती है।\
इसे **संकलित** करने के लिए, आपको **उसी कर्नेल** का उपयोग करना होगा जो पीड़ित मशीन उपयोग कर रही है।
2020-12-25 20:14:31 +00:00
{% hint style="info" %}
याद रखें कि आप **पीड़ित मशीन में LiME या कोई अन्य चीज़ स्थापित नहीं कर सकते** क्योंकि इससे इसमें कई परिवर्तन होंगे
2020-12-25 20:14:31 +00:00
{% endhint %}
तो, यदि आपके पास Ubuntu का एक समान संस्करण है, तो आप `apt-get install lime-forensics-dkms` का उपयोग कर सकते हैं।\
अन्य मामलों में, आपको [**LiME**](https://github.com/504ensicsLabs/LiME) को github से डाउनलोड करना होगा और इसे सही कर्नेल हेडर के साथ संकलित करना होगा। पीड़ित मशीन के **सटीक कर्नेल हेडर** प्राप्त करने के लिए, आप बस **निर्देशिका** `/lib/modules/<kernel version>` को अपनी मशीन पर कॉपी कर सकते हैं, और फिर **LiME** को उनका उपयोग करके संकलित कर सकते हैं:
2020-12-25 20:14:31 +00:00
```bash
make -C /lib/modules/<kernel version>/build M=$PWD
sudo insmod lime.ko "path=/home/sansforensics/Desktop/mem_dump.bin format=lime"
```
LiME 3 **फॉर्मेट्स** का समर्थन करता है:
2020-12-25 20:14:31 +00:00
* कच्चा (हर खंड को एक साथ जोड़ा गया)
* पैडेड (कच्चे के समान, लेकिन दाहिने बिट्स में ज़ीरो के साथ)
* लाइम (मेटाडेटा के साथ अनुशंसित फॉर्मेट)
2020-12-25 20:14:31 +00:00
LiME का उपयोग **नेटवर्क के माध्यम से डंप भेजने** के लिए भी किया जा सकता है, इसे सिस्टम पर स्टोर करने के बजाय कुछ इस तरह: `path=tcp:4444`
2020-12-25 20:14:31 +00:00
2023-11-06 08:38:02 +00:00
### डिस्क इमेजिंग
2020-12-25 21:41:10 +00:00
#### सिस्टम को बंद करना
2020-12-25 22:03:49 +00:00
सबसे पहले, आपको **सिस्टम को बंद करना** होगा। यह हमेशा एक विकल्प नहीं होता क्योंकि कभी-कभी सिस्टम एक प्रोडक्शन सर्वर होता है जिसे कंपनी बंद नहीं कर सकती।\
सिस्टम को बंद करने के **2 तरीके** हैं, एक **सामान्य शटडाउन** और एक **"प्लग को खींचना" शटडाउन**। पहला **प्रक्रियाओं को सामान्य रूप से समाप्त** करने और **फाइल सिस्टम** को **सिंक्रनाइज़** करने की अनुमति देगा, लेकिन यह संभावित **मैलवेयर** को **साक्ष्य नष्ट** करने की भी अनुमति देगा। "प्लग को खींचने" का दृष्टिकोण **कुछ जानकारी के नुकसान** को ले जा सकता है (जितनी जानकारी खोने वाली नहीं है क्योंकि हमने पहले ही मेमोरी की एक इमेज ली है) और **मैलवेयर को इसके बारे में कुछ करने का कोई अवसर नहीं मिलेगा**। इसलिए, यदि आप **संदेह** करते हैं कि वहाँ **मैलवेयर** हो सकता है, तो बस सिस्टम पर **`sync`** **कमांड** चलाएँ और प्लग को खींचें।
2020-12-25 22:03:49 +00:00
#### डिस्क की इमेज लेना
2020-12-25 22:20:35 +00:00
यह ध्यान रखना महत्वपूर्ण है कि **किसी भी चीज़ से अपने कंप्यूटर को कनेक्ट करने से पहले**, आपको यह सुनिश्चित करना होगा कि इसे **केवल पढ़ने के लिए माउंट किया जाएगा** ताकि किसी भी जानकारी को संशोधित करने से बचा जा सके।
2020-12-25 22:03:49 +00:00
```bash
#Create a raw copy of the disk
dd if=<subject device> of=<image file> bs=512
2022-09-07 15:35:57 +00:00
#Raw copy with hashes along the way (more secure as it checks hashes while it's copying the data)
2020-12-25 22:08:05 +00:00
dcfldd if=<subject device> of=<image file> bs=512 hash=<algorithm> hashwindow=<chunk size> hashlog=<hash file>
2020-12-25 22:21:23 +00:00
dcfldd if=/dev/sdc of=/media/usb/pc.image hash=sha256 hashwindow=1M hashlog=/media/usb/pc.hashes
2020-12-25 22:03:49 +00:00
```
### Disk Image pre-analysis
2020-12-25 22:03:49 +00:00
डिस्क इमेज को बिना किसी और डेटा के इमेज करना।
2021-01-05 13:06:39 +00:00
```bash
2022-09-07 15:35:57 +00:00
#Find out if it's a disk image using "file" command
2023-11-06 08:38:02 +00:00
file disk.img
2021-01-05 13:06:39 +00:00
disk.img: Linux rev 1.0 ext4 filesystem data, UUID=59e7a736-9c90-4fab-ae35-1d6a28e5de27 (extents) (64bit) (large files) (huge files)
#Check which type of disk image it's
2023-11-06 08:38:02 +00:00
img_stat -t evidence.img
2021-01-05 13:06:39 +00:00
raw
#You can list supported types with
img_stat -i list
Supported image format types:
2023-11-06 08:38:02 +00:00
raw (Single or split raw file (dd))
aff (Advanced Forensic Format)
afd (AFF Multiple File)
afm (AFF with external metadata)
afflib (All AFFLIB image formats (including beta ones))
ewf (Expert Witness Format (EnCase))
2021-01-05 13:06:39 +00:00
#Data of the image
2023-11-06 08:38:02 +00:00
fsstat -i raw -f ext4 disk.img
2021-01-05 13:06:39 +00:00
FILE SYSTEM INFORMATION
--------------------------------------------
File System Type: Ext4
2023-11-06 08:38:02 +00:00
Volume Name:
2021-01-05 13:06:39 +00:00
Volume ID: 162850f203fd75afab4f1e4736a7e776
Last Written at: 2020-02-06 06:22:48 (UTC)
Last Checked at: 2020-02-06 06:15:09 (UTC)
Last Mounted at: 2020-02-06 06:15:18 (UTC)
Unmounted properly
Last mounted on: /mnt/disk0
Source OS: Linux
[...]
#ls inside the image
fls -i raw -f ext4 disk.img
d/d 11: lost+found
d/d 12: Documents
d/d 8193: folder1
d/d 8194: folder2
V/V 65537: $OrphanFiles
#ls inside folder
fls -i raw -f ext4 disk.img 12
r/r 16: secret.txt
#cat file inside image
icat -i raw -f ext4 disk.img 16
ThisisTheMasterSecret
```
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
2022-08-31 22:35:39 +00:00
\
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) का उपयोग करें ताकि आप दुनिया के **सबसे उन्नत** सामुदायिक उपकरणों द्वारा संचालित **कार्यप्रवाहों** को आसानी से बना और **स्वचालित** कर सकें।\
आज ही एक्सेस प्राप्त करें:
2022-08-31 22:35:39 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## ज्ञात मैलवेयर के लिए खोजें
2020-12-23 19:52:25 +00:00
### संशोधित सिस्टम फ़ाइलें
2020-12-23 19:52:25 +00:00
Linux सिस्टम घटकों की अखंडता सुनिश्चित करने के लिए उपकरण प्रदान करता है, जो संभावित समस्याग्रस्त फ़ाइलों को पहचानने के लिए महत्वपूर्ण है।
* **RedHat-आधारित सिस्टम**: व्यापक जांच के लिए `rpm -Va` का उपयोग करें।
* **Debian-आधारित सिस्टम**: प्रारंभिक सत्यापन के लिए `dpkg --verify` का उपयोग करें, इसके बाद `debsums | grep -v "OK$"` (जिसके लिए `debsums` को `apt-get install debsums` के साथ स्थापित करें) का उपयोग करें ताकि किसी भी समस्या की पहचान की जा सके।
### मैलवेयर/रूटकिट डिटेक्टर्स
2020-12-23 19:52:25 +00:00
मैलवेयर खोजने के लिए उपयोगी उपकरणों के बारे में जानने के लिए निम्नलिखित पृष्ठ पढ़ें:
2020-12-23 19:52:25 +00:00
{% content-ref url="malware-analysis.md" %}
[malware-analysis.md](malware-analysis.md)
{% endcontent-ref %}
2020-12-23 19:52:25 +00:00
## स्थापित कार्यक्रमों के लिए खोजें
2020-12-23 19:52:25 +00:00
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`**_ जैसी निर्देशिकाओं का अन्वेषण करें। ज्ञात पैकेजों से संबंधित नहीं होने वाले निष्पादन योग्य फ़ाइलों की पहचान के लिए निर्देशिका सूचियों को सिस्टम-विशिष्ट कमांड के साथ मिलाएं, जिससे आप सभी स्थापित कार्यक्रमों की खोज को बढ़ा सकें।
2020-12-23 19:52:25 +00:00
```bash
# Debian package and log details
2020-12-23 19:52:25 +00:00
cat /var/lib/dpkg/status | grep -E "Package:|Status:"
cat /var/log/dpkg.log | grep installed
# RedHat RPM database query
rpm -qa --root=/mntpath/var/lib/rpm
# Listing directories for manual installations
ls /usr/sbin /usr/bin /bin /sbin
# Identifying non-package executables (Debian)
2020-12-23 19:52:25 +00:00
find /sbin/ -exec dpkg -S {} \; | grep "no path found"
# Identifying non-package executables (RedHat)
2020-12-23 19:52:25 +00:00
find /sbin/ exec rpm -qf {} \; | grep "is not"
# Find exacuable files
find / -type f -executable | grep <something>
2020-12-23 19:52:25 +00:00
```
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
2022-08-31 22:35:39 +00:00
\
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) का उपयोग करें ताकि आप दुनिया के **सबसे उन्नत** सामुदायिक उपकरणों द्वारा संचालित **कार्यप्रवाहों** को आसानी से बना और **स्वचालित** कर सकें।\
आज ही एक्सेस प्राप्त करें:
2022-08-31 22:35:39 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## हटाए गए चल रहे बाइनरी को पुनर्प्राप्त करें
2022-03-13 16:39:41 +00:00
कल्पना करें कि एक प्रक्रिया /tmp/exec से निष्पादित की गई थी और फिर हटा दी गई। इसे निकालना संभव है
```bash
cd /proc/3746/ #PID with the exec file deleted
head -1 maps #Get address of the file. It was 08048000-08049000
dd if=mem bs=1 skip=08048000 count=1000 of=/tmp/exec2 #Recorver it
```
## ऑटॉस्टार्ट स्थानों का निरीक्षण करें
2020-12-23 20:08:45 +00:00
### अनुसूचित कार्य
2020-12-23 20:08:45 +00:00
```bash
cat /var/spool/cron/crontabs/* \
/var/spool/cron/atjobs \
/var/spool/anacron \
/etc/cron* \
/etc/at* \
/etc/anacrontab \
/etc/incron.d/* \
/var/spool/incron/* \
#MacOS
ls -l /usr/lib/cron/tabs/ /Library/LaunchAgents/ /Library/LaunchDaemons/ ~/Library/LaunchAgents/
```
### Services
2020-12-23 20:08:45 +00:00
मैलवेयर को सेवा के रूप में स्थापित करने के लिए पथ:
* **/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/**: स्थापित पैकेजों द्वारा प्रदान की गई सिस्टम-व्यापी डिफ़ॉल्ट यूनिट फ़ाइलें।
2020-12-23 22:44:17 +00:00
### Kernel Modules
2020-12-23 22:44:17 +00:00
Linux कर्नेल मॉड्यूल, जो अक्सर मैलवेयर द्वारा रूटकिट घटकों के रूप में उपयोग किए जाते हैं, सिस्टम बूट पर लोड होते हैं। इन मॉड्यूल के लिए महत्वपूर्ण निर्देशिकाएँ और फ़ाइलें शामिल हैं:
2020-12-23 22:44:17 +00:00
* **/lib/modules/$(uname -r)**: चल रहे कर्नेल संस्करण के लिए मॉड्यूल रखता है।
* **/etc/modprobe.d**: मॉड्यूल लोडिंग को नियंत्रित करने के लिए कॉन्फ़िगरेशन फ़ाइलें होती हैं।
* **/etc/modprobe** और **/etc/modprobe.conf**: वैश्विक मॉड्यूल सेटिंग्स के लिए फ़ाइलें।
2020-12-23 22:44:17 +00:00
### Other Autostart Locations
2020-12-23 22:44:17 +00:00
Linux विभिन्न फ़ाइलों का उपयोग करता है जो उपयोगकर्ता लॉगिन पर स्वचालित रूप से कार्यक्रमों को निष्पादित करते हैं, जो संभावित रूप से मैलवेयर को आश्रय दे सकते हैं:
* **/etc/profile.d/**\*, **/etc/profile**, और **/etc/bash.bashrc**: किसी भी उपयोगकर्ता लॉगिन के लिए निष्पादित होते हैं।
* **\~/.bashrc**, **\~/.bash\_profile**, **\~/.profile**, और **\~/.config/autostart**: उपयोगकर्ता-विशिष्ट फ़ाइलें जो उनके लॉगिन पर चलती हैं।
* **/etc/rc.local**: सभी सिस्टम सेवाओं के शुरू होने के बाद चलती है, मल्टीयूजर वातावरण में संक्रमण के अंत को चिह्नित करती है।
## Examine Logs
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/**: यहाँ अप्रत्याशित लॉग के लिए हमेशा जाँच करें।
{% hint style="info" %}
Linux सिस्टम लॉग और ऑडिट उपप्रणालियाँ एक घुसपैठ या मैलवेयर घटना में अक्षम या हटा दी जा सकती हैं। क्योंकि Linux सिस्टम पर लॉग आमतौर पर दुर्भावनापूर्ण गतिविधियों के बारे में कुछ सबसे उपयोगी जानकारी रखते हैं, घुसपैठिए नियमित रूप से उन्हें हटा देते हैं। इसलिए, उपलब्ध लॉग फ़ाइलों की जांच करते समय, यह महत्वपूर्ण है कि आप उन अंतरालों या अनुक्रम से बाहर की प्रविष्टियों की तलाश करें जो हटाने या छेड़छाड़ का संकेत हो सकते हैं।
{% endhint %}
**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_ की जांच करें।
### USB Logs
[**usbrip**](https://github.com/snovvcrash/usbrip) एक छोटा सा सॉफ़्टवेयर है जो शुद्ध Python 3 में लिखा गया है जो USB इवेंट इतिहास तालिकाओं का निर्माण करने के लिए Linux लॉग फ़ाइलों (`/var/log/syslog*` या `/var/log/messages*` वितरण के आधार पर) को पार्स करता है।
यह जानना दिलचस्प है कि **सभी USBs का उपयोग किया गया है** और यदि आपके पास "उल्लंघन घटनाओं" (उन USBs का उपयोग जो उस सूची में नहीं हैं) को खोजने के लिए एक अधिकृत USBs की सूची है तो यह अधिक उपयोगी होगा।
### Installation
```bash
2023-11-06 08:38:02 +00:00
pip3 install usbrip
usbrip ids download #Download USB ID database
```
### उदाहरण
```bash
2021-05-28 17:27:17 +00:00
usbrip events history #Get USB history of your curent linux machine
usbrip events history --pid 0002 --vid 0e0f --user kali #Search by pid OR vid OR user
#Search for vid and/or pid
usbrip ids download #Downlaod database
usbrip ids search --pid 0002 --vid 0e0f #Search for pid AND vid
```
More examples and info inside the github: [https://github.com/snovvcrash/usbrip](https://github.com/snovvcrash/usbrip)
2021-05-28 17:27:17 +00:00
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
2022-08-31 22:35:39 +00:00
\
Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) to easily build and **automate workflows** powered by the world's **most advanced** community tools.\
Get Access Today:
2022-08-31 22:35:39 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## उपयोगकर्ता खातों और लॉगिन गतिविधियों की समीक्षा करें
_**/etc/passwd**_, _**/etc/shadow**_ और **सुरक्षा लॉग** की जांच करें ताकि असामान्य नामों या खातों का पता चल सके जो ज्ञात अनधिकृत घटनाओं के निकटता में बनाए गए या उपयोग किए गए हैं। इसके अलावा, संभावित sudo ब्रूट-फोर्स हमलों की जांच करें।\
इसके अलावा, _**/etc/sudoers**_ और _**/etc/groups**_ जैसी फ़ाइलों की जांच करें ताकि उपयोगकर्ताओं को दिए गए अप्रत्याशित विशेषाधिकारों का पता चल सके।\
अंत में, **कोई पासवर्ड नहीं** या **आसानी से अनुमानित** पासवर्ड वाले खातों की तलाश करें।
## फ़ाइल प्रणाली की जांच करें
2020-12-23 23:14:22 +00:00
### मैलवेयर जांच में फ़ाइल प्रणाली संरचनाओं का विश्लेषण
2020-12-23 23:14:22 +00:00
जब मैलवेयर घटनाओं की जांच की जाती है, तो फ़ाइल प्रणाली की संरचना जानकारी का एक महत्वपूर्ण स्रोत होती है, जो घटनाओं के अनुक्रम और मैलवेयर की सामग्री को प्रकट करती है। हालाँकि, मैलवेयर लेखक इस विश्लेषण को बाधित करने के लिए तकनीकें विकसित कर रहे हैं, जैसे फ़ाइल टाइमस्टैम्प को संशोधित करना या डेटा भंडारण के लिए फ़ाइल प्रणाली से बचना।
2020-12-23 23:14:22 +00:00
इन एंटी-फॉरेंसिक विधियों का मुकाबला करने के लिए, यह आवश्यक है:
2020-12-28 22:28:30 +00:00
* **घनिष्ठ समयरेखा विश्लेषण** करें, जैसे **Autopsy** का उपयोग करके घटनाओं की समयरेखा को दृश्य रूप में प्रस्तुत करना या **Sleuth Kit's** `mactime` का उपयोग करके विस्तृत समयरेखा डेटा प्राप्त करना।
* **सिस्टम के $PATH में अप्रत्याशित स्क्रिप्टों की जांच करें**, जिसमें हमलावरों द्वारा उपयोग किए गए शेल या PHP स्क्रिप्ट शामिल हो सकते हैं।
* **असामान्य फ़ाइलों के लिए `/dev` की जांच करें**, क्योंकि इसमें पारंपरिक रूप से विशेष फ़ाइलें होती हैं, लेकिन यह मैलवेयर से संबंधित फ़ाइलों को भी रख सकता है।
* **छिपी हुई फ़ाइलों या निर्देशिकाओं की खोज करें** जिनके नाम ".. " (डॉट डॉट स्पेस) या "..^G" (डॉट डॉट कंट्रोल-G) हो सकते हैं, जो दुर्भावनापूर्ण सामग्री को छिपा सकते हैं।
* **setuid रूट फ़ाइलों की पहचान करें** कमांड का उपयोग करके: `find / -user root -perm -04000 -print` यह उन फ़ाइलों को खोजता है जिनके पास उच्च विशेषाधिकार होते हैं, जिन्हें हमलावरों द्वारा दुरुपयोग किया जा सकता है।
* **मास फ़ाइल हटाने का पता लगाने के लिए इनोड तालिकाओं में हटाने के टाइमस्टैम्प की समीक्षा करें**, जो संभवतः रूटकिट या ट्रोजन की उपस्थिति का संकेत दे सकते हैं।
* **एक बार पहचानने के बाद निकटवर्ती दुर्भावनापूर्ण फ़ाइलों के लिए लगातार इनोड की जांच करें**, क्योंकि उन्हें एक साथ रखा जा सकता है।
* **हाल ही में संशोधित फ़ाइलों के लिए सामान्य बाइनरी निर्देशिकाओं** (_/bin_, _/sbin_) की जांच करें, क्योंकि इन्हें मैलवेयर द्वारा बदला जा सकता है।
````bash
# List recent files in a directory:
ls -laR --sort=time /bin```
# Sort files in a directory by inode:
ls -lai /bin | sort -n```
````
2020-12-28 22:28:30 +00:00
{% hint style="info" %}
ध्यान दें कि एक **हमलावर** **समय** को **संशोधित** कर सकता है ताकि **फाइलें वैध** **दिखें**, लेकिन वह **inode** को **संशोधित** नहीं कर सकता। यदि आप पाते हैं कि एक **फाइल** यह दर्शाती है कि इसे उसी समय **बनाया** और **संशोधित** किया गया था जैसे कि उसी फ़ोल्डर में अन्य फ़ाइलें, लेकिन **inode** **अप्रत्याशित रूप से बड़ा** है, तो उस **फाइल के टाइमस्टैम्प को संशोधित किया गया था**
{% endhint %}
2020-12-28 22:28:30 +00:00
## विभिन्न फाइल सिस्टम संस्करणों की तुलना करें
2021-01-06 15:28:14 +00:00
### फाइल सिस्टम संस्करण तुलना सारांश
फाइल सिस्टम संस्करणों की तुलना करने और परिवर्तनों को पहचानने के लिए, हम सरल `git diff` कमांड का उपयोग करते हैं:
* **नई फाइलें खोजने के लिए**, दो निर्देशिकाओं की तुलना करें:
2021-01-06 15:28:14 +00:00
```bash
git diff --no-index --diff-filter=A path/to/old_version/ path/to/new_version/
2023-11-06 08:38:02 +00:00
```
* **संशोधित सामग्री के लिए**, विशिष्ट पंक्तियों की अनदेखी करते हुए परिवर्तनों की सूची बनाएं:
2021-01-06 15:28:14 +00:00
```bash
git diff --no-index --diff-filter=M path/to/old_version/ path/to/new_version/ | grep -E "^\+" | grep -v "Installed-Time"
2021-01-06 15:28:14 +00:00
```
* **हटाए गए फ़ाइलों का पता लगाने के लिए**:
2021-01-06 15:28:14 +00:00
```bash
git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
2021-01-06 15:28:14 +00:00
```
* **फिल्टर विकल्प** (`--diff-filter`) विशिष्ट परिवर्तनों जैसे जोड़े गए (`A`), हटाए गए (`D`), या संशोधित (`M`) फ़ाइलों तक सीमित करने में मदद करते हैं।
* `A`: जोड़ी गई फ़ाइलें
* `C`: कॉपी की गई फ़ाइलें
* `D`: हटाई गई फ़ाइलें
* `M`: संशोधित फ़ाइलें
* `R`: नाम बदली गई फ़ाइलें
* `T`: प्रकार परिवर्तन (जैसे, फ़ाइल से सिम्लिंक)
* `U`: असंयुक्त फ़ाइलें
* `X`: अज्ञात फ़ाइलें
* `B`: टूटी हुई फ़ाइलें
2020-12-28 21:51:56 +00:00
2023-11-06 08:38:02 +00:00
## संदर्भ
2020-12-23 22:44:17 +00:00
2021-10-19 00:01:07 +00:00
* [https://cdn.ttgtmedia.com/rms/security/Malware%20Forensics%20Field%20Guide%20for%20Linux%20Systems\_Ch3.pdf](https://cdn.ttgtmedia.com/rms/security/Malware%20Forensics%20Field%20Guide%20for%20Linux%20Systems\_Ch3.pdf)
2020-12-23 22:44:17 +00:00
* [https://www.plesk.com/blog/featured/linux-logs-explained/](https://www.plesk.com/blog/featured/linux-logs-explained/)
* [https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---diff-filterACDMRTUXB82308203](https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---diff-filterACDMRTUXB82308203)
* **पुस्तक: Linux Systems के लिए Malware Forensics Field Guide: Digital Forensics Field Guides**
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\
Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) to easily build and **automate workflows** powered by the world's **most advanced** community tools.\
Get Access Today:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}