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

534 lines
29 KiB
Markdown
Raw Normal View History

2024-02-10 18:14:16 +00:00
# Linux Dijital Delil İncelemesi
2022-04-28 16:01:33 +00:00
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
2022-08-31 22:35:39 +00:00
\
2024-02-10 18:14:16 +00:00
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturabilir ve otomatikleştirebilirsiniz.\
Bugün Erişim Alın:
2022-08-31 22:35:39 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 18:14:16 +00:00
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong> ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin<strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
HackTricks'ı desteklemenin diğer yolları:
2023-12-30 10:12:47 +00:00
2024-02-10 18:14:16 +00:00
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)'i **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** paylaşın.
2022-04-28 16:01:33 +00:00
</details>
2024-02-10 18:14:16 +00:00
## İlk Bilgi Toplama
2022-05-01 16:32:23 +00:00
2024-02-10 18:14:16 +00:00
### Temel Bilgiler
2020-12-25 10:22:35 +00:00
2024-02-10 18:14:16 +00:00
İlk olarak, **iyi bilinen ikili ve kütüphanelere sahip bir USB**'ye sahip olmanız önerilir (sadece ubuntu alabilir ve _/bin_, _/sbin_, _/lib_ ve _/lib64_ klasörlerini kopyalayabilirsiniz), ardından USB'yi bağlayın ve çevre değişkenlerini bu ikilileri kullanacak şekilde değiştirin:
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
```
2024-02-10 18:14:16 +00:00
Sistem ayarlarını iyi ve bilinen ikili dosyaları kullanacak şekilde yapılandırdıktan sonra, **bazı temel bilgileri çıkarmaya** başlayabilirsiniz:
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
```
2024-02-10 18:14:16 +00:00
#### Şüpheli bilgiler
2020-12-25 10:22:35 +00:00
2024-02-10 18:14:16 +00:00
Temel bilgileri elde ederken şunları kontrol etmelisiniz:
2020-12-25 22:25:37 +00:00
2024-02-10 18:14:16 +00:00
* **Root işlemleri** genellikle düşük PIDS ile çalışır, bu yüzden büyük bir PID'ye sahip bir root işlemi bulursanız şüphelenebilirsiniz.
* `/etc/passwd` içinde kabuğu olmayan kullanıcıların **kayıtlı girişlerini** kontrol edin.
* Kabuğu olmayan kullanıcıların **şifre hash'lerini** `/etc/shadow` içinde kontrol edin.
2020-12-25 22:25:37 +00:00
2024-02-10 18:14:16 +00:00
### Bellek Dökümü
2020-12-25 22:25:37 +00:00
2024-02-10 18:14:16 +00:00
Çalışan sistemin belleğini elde etmek için [**LiME**](https://github.com/504ensicsLabs/LiME) kullanmanız önerilir.\
Onu **derlemek** için, kurban makinenin kullandığı **aynı çekirdeği** kullanmanız gerekmektedir.
2020-12-25 20:14:31 +00:00
{% hint style="info" %}
2024-02-10 18:14:16 +00:00
Unutmayın ki, kurban makineye LiME veya başka bir şey **kuramazsınız**, çünkü bunlar birçok değişiklik yapacaktır.
2020-12-25 20:14:31 +00:00
{% endhint %}
2024-02-10 18:14:16 +00:00
Bu yüzden, Ubuntu'nun aynı sürümüne sahipseniz `apt-get install lime-forensics-dkms` komutunu kullanabilirsiniz.\
Diğer durumlarda, [**LiME**'yi](https://github.com/504ensicsLabs/LiME) github'dan indirmeniz ve doğru çekirdek başlıklarıyla derlemeniz gerekmektedir. Kurban makinenin **kesin çekirdek başlıklarını** elde etmek için, sadece `/lib/modules/<çekirdek sürümü>` dizinini kopyalayın ve ardından onları kullanarak LiME'yi **derleyin**:
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"
```
2024-02-10 18:14:16 +00:00
LiME 3 **formatı** destekler:
2020-12-25 20:14:31 +00:00
2024-02-10 18:14:16 +00:00
* Ham (her segment birleştirilmiş)
* Dolgulu (ham ile aynı, ancak sağ bitlerde sıfır ile doldurulmuş)
* Lime (metadata ile birlikte önerilen format)
2020-12-25 20:14:31 +00:00
2024-02-10 18:14:16 +00:00
LiME ayrıca, bunun yerine **dökümü ağ üzerinden göndermek** için kullanılabilir, örneğin: `path=tcp:4444`
2020-12-25 20:14:31 +00:00
2024-02-10 18:14:16 +00:00
### Disk Görüntüleme
2020-12-25 21:41:10 +00:00
2024-02-10 18:14:16 +00:00
#### Kapatma
2020-12-25 22:03:49 +00:00
2024-02-10 18:14:16 +00:00
Öncelikle, **sistemi kapatmanız** gerekecektir. Bu her zaman bir seçenek olmayabilir, çünkü sistem bazen şirketin kapatamayacağı bir üretim sunucusu olabilir.\
Sistemi kapatmanın **2 yolu** vardır, biri **normal kapatma** diğeri ise **"fişi çekme" kapatması**. İlk yöntem, **işlemlerin normal şekilde sonlandırılmasına** ve **dosya sisteminin senkronize edilmesine** izin verecektir, ancak aynı zamanda **mümkün olan kötü amaçlı yazılımın delilleri yok etmesine** de izin verecektir. "Fişi çekme" yaklaşımı, **bazı bilgi kaybı** taşıyabilir (belleğin bir görüntüsünü zaten aldığımız için çok fazla bilgi kaybolmayacak) ve **kötü amaçlı yazılımın buna karşı yapabileceği bir şey olmayacaktır**. Bu nedenle, bir **kötü amaçlı yazılım** olabileceğinden şüpheleniyorsanız, sistemin üzerinde **`sync`** **komutunu** çalıştırın ve fişi çekin.
2020-12-25 22:03:49 +00:00
2024-02-10 18:14:16 +00:00
#### Diskin bir görüntüsünü almak
2020-12-25 22:20:35 +00:00
2024-02-10 18:14:16 +00:00
Önemli bir nokta, **bilgisayarınızı dava ile ilgili herhangi bir şeye bağlamadan önce**, bilginin değiştirilmesini önlemek için **salt okunur olarak bağlanacağınızdan emin olmanız gerektiğidir**.
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
```
2024-02-10 18:14:16 +00:00
### Disk Görüntüsü Ön Analizi
2020-12-25 22:03:49 +00:00
2024-02-10 18:14:16 +00:00
Daha fazla veri olmadan bir disk görüntüsü oluşturma.
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
2024-02-10 18:14:16 +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
2024-02-10 18:14:16 +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:
2024-02-10 18:14:16 +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
2024-02-10 18:14:16 +00:00
fsstat -i raw -f ext4 disk.img
2021-01-05 13:06:39 +00:00
FILE SYSTEM INFORMATION
--------------------------------------------
File System Type: Ext4
2024-02-10 18:14:16 +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).png" alt=""><figcaption></figcaption></figure>
2022-08-31 22:35:39 +00:00
\
2024-02-10 18:14:16 +00:00
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturabilir ve otomatikleştirebilirsiniz.\
Bugün Erişim Alın:
2022-08-31 22:35:39 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
2024-02-10 18:14:16 +00:00
## Bilinen Kötü Amaçlı Yazılımları Arama
2020-12-23 19:52:25 +00:00
2024-02-10 18:14:16 +00:00
### Değiştirilmiş Sistem Dosyaları
2020-12-23 19:52:25 +00:00
2024-02-10 18:14:16 +00:00
Linux, potansiyel sorunlu dosyaları tespit etmek için sistem bileşenlerinin bütünlüğünü sağlamak için araçlar sunar.
2020-12-23 19:52:25 +00:00
2024-02-10 18:14:16 +00:00
- **RedHat tabanlı sistemler**: Kapsamlı bir kontrol için `rpm -Va` kullanın.
- **Debian tabanlı sistemler**: İlk doğrulama için `dpkg --verify` kullanın, ardından herhangi bir sorunu belirlemek için `debsums | grep -v "OK$"` (apt-get install debsums ile `debsums`'ı yükledikten sonra) kullanın.
2020-12-23 19:52:25 +00:00
2024-02-10 18:14:16 +00:00
### Kötü Amaçlı Yazılım/Kökkit Tespit Araçları
2020-12-23 19:52:25 +00:00
2024-02-10 18:14:16 +00:00
Kötü amaçlı yazılım bulmak için kullanışlı olabilecek araçlar hakkında bilgi edinmek için aşağıdaki sayfayı okuyun:
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
2024-02-10 18:14:16 +00:00
## Yüklenmiş Programları Arama
2020-12-23 19:52:25 +00:00
2024-02-10 18:14:16 +00:00
Debian ve RedHat sistemlerinde yüklenmiş programları etkili bir şekilde aramak için, sistem günlüklerini ve veritabanlarını yanı sıra ortak dizinlerde manuel kontrol yapmayı düşünebilirsiniz.
2020-12-23 19:52:25 +00:00
2024-02-10 18:14:16 +00:00
- Debian için, paket kurulumları hakkında ayrıntıları almak için **_`/var/lib/dpkg/status`_** ve **_`/var/log/dpkg.log`_** dosyalarını inceleyin ve belirli bilgileri filtrelemek için `grep` kullanın.
2020-12-23 19:52:25 +00:00
2024-02-10 18:14:16 +00:00
- RedHat kullanıcıları, yüklenmiş paketleri listelemek için `rpm -qa --root=/mntpath/var/lib/rpm` komutunu kullanarak RPM veritabanını sorgulayabilirler.
2020-12-23 19:52:25 +00:00
2024-02-10 18:14:16 +00:00
Bu paket yöneticileri dışında manuel olarak veya bunların dışında yüklenen yazılımları ortaya çıkarmak için **_`/usr/local`_**, **_`/opt`_**, **_`/usr/sbin`_**, **_`/usr/bin`_**, **_`/bin`_**, ve **_`/sbin`_** gibi dizinleri keşfedin. Dizin listelerini sistem özel komutlarıyla birleştirerek, bilinen paketlere bağlı olmayan yürütülebilir dosyaları belirlemek için arama sürecinizi geliştirin.
2020-12-23 19:52:25 +00:00
```bash
2024-02-07 04:05:50 +00:00
# Debian package and log details
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"
2024-02-07 04:05:50 +00:00
# Identifying non-package executables (RedHat)
2020-12-23 19:52:25 +00:00
find /sbin/ exec rpm -qf {} \; | grep "is not"
2024-02-07 04:05:50 +00:00
# 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).png" alt=""><figcaption></figcaption></figure>
2022-08-31 22:35:39 +00:00
\
2024-02-10 18:14:16 +00:00
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen **otomatik iş akışları** oluşturabilir ve otomatikleştirebilirsiniz.\
Bugün Erişim Alın:
2022-08-31 22:35:39 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
2024-02-10 18:14:16 +00:00
## Silinen Çalışan İkili Dosyaları Kurtarma
2024-02-07 04:05:50 +00:00
2024-02-10 18:14:16 +00:00
/tmp/exec dizininden çalıştırılan ve silinen bir işlem hayal edin. Bunun çıkarılması mümkündür.
2024-02-07 04:05:50 +00:00
```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
```
2024-02-10 18:14:16 +00:00
### Zamanlanmış Görevler
2022-03-13 16:39:41 +00:00
2024-02-10 18:14:16 +00:00
Zamanlanmış görevler, Linux sistemlerde otomatik olarak çalıştırılan görevlerdir. Bu görevler, belirli bir zaman veya olaya bağlı olarak çalıştırılabilir. Zamanlanmış görevlerin listesini görmek için aşağıdaki komutu kullanabilirsiniz:
2020-12-23 20:08:45 +00:00
2024-02-10 18:14:16 +00:00
```bash
crontab -l
```
2020-12-23 20:08:45 +00:00
2024-02-10 18:14:16 +00:00
Bu komut, mevcut kullanıcıya ait zamanlanmış görevleri listeler.
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/
```
2024-02-10 18:14:16 +00:00
### Hizmetler
2020-12-23 20:08:45 +00:00
2024-02-10 18:14:16 +00:00
Kötü amaçlı yazılımın hizmet olarak kurulabileceği yollar:
2024-02-07 04:05:50 +00:00
2024-02-10 18:14:16 +00:00
- **/etc/inittab**: rc.sysinit gibi başlatma betiklerini çağırarak başlatma betiklerine yönlendirir.
- **/etc/rc.d/** ve **/etc/rc.boot/**: Hizmet başlatma için betikleri içerir, ikincisi eski Linux sürümlerinde bulunur.
- **/etc/init.d/**: Debian gibi belirli Linux sürümlerinde başlatma betiklerini depolamak için kullanılır.
- Hizmetler ayrıca **/etc/inetd.conf** veya **/etc/xinetd/** üzerinden etkinleştirilebilir, Linux varyantına bağlı olarak.
- **/etc/systemd/system**: Sistem ve hizmet yöneticisi betikleri için bir dizin.
- **/etc/systemd/system/multi-user.target.wants/**: Çok kullanıcılı bir çalışma düzeyinde başlatılması gereken hizmetlere bağlantılar içerir.
- **/usr/local/etc/rc.d/**: Özel veya üçüncü taraf hizmetleri için.
- **~/.config/autostart/**: Kullanıcıya özgü otomatik başlatma uygulamaları için, kullanıcı hedefli kötü amaçlı yazılım için bir saklanma noktası olabilir.
- **/lib/systemd/system/**: Kurulu paketler tarafından sağlanan sistem genelinde varsayılan birim dosyalarını içerir.
2020-12-23 20:08:45 +00:00
2020-12-23 22:44:17 +00:00
2024-02-10 18:14:16 +00:00
### Çekirdek Modülleri
2020-12-23 22:44:17 +00:00
2024-02-10 18:14:16 +00:00
Kötü amaçlı yazılım tarafından kök kiti bileşeni olarak sıklıkla kullanılan Linux çekirdek modülleri, sistem başlangıcında yüklenir. Bu modüller için kritik olan dizinler ve dosyalar şunlardır:
2024-02-07 04:05:50 +00:00
2024-02-10 18:14:16 +00:00
- **/lib/modules/$(uname -r)**: Çalışan çekirdek sürümü için modülleri içerir.
- **/etc/modprobe.d**: Modül yüklemeyi kontrol etmek için yapılandırma dosyalarını içerir.
- **/etc/modprobe** ve **/etc/modprobe.conf**: Genel modül ayarları için dosyalar.
2020-12-23 22:44:17 +00:00
2024-02-10 18:14:16 +00:00
### Diğer Otomatik Başlatma Konumları
2020-12-23 22:44:17 +00:00
2024-02-10 18:14:16 +00:00
Linux, kullanıcı oturumu açıldığında otomatik olarak programları çalıştırmak için çeşitli dosyalar kullanır ve bu dosyalar kötü amaçlı yazılım barındırabilir:
2020-12-23 22:44:17 +00:00
2024-02-10 18:14:16 +00:00
- **/etc/profile.d/***, **/etc/profile** ve **/etc/bash.bashrc**: Her kullanıcı oturumu açıldığında çalıştırılır.
- **~/.bashrc**, **~/.bash_profile**, **~/.profile** ve **~/.config/autostart**: Kullanıcıya özgü oturum açmalarında çalışan dosyalar.
- **/etc/rc.local**: Tüm sistem hizmetleri başladıktan sonra çalışır, çok kullanıcılı bir ortama geçişin sonunu işaretler.
2020-12-23 22:44:17 +00:00
2024-02-10 18:14:16 +00:00
## Günlükleri İncele
2020-12-23 22:44:17 +00:00
2024-02-10 18:14:16 +00:00
Linux sistemleri, çeşitli günlük dosyaları aracılığıyla kullanıcı etkinliklerini ve sistem olaylarını takip eder. Bu günlükler, yetkisiz erişimi, kötü amaçlı yazılım enfeksiyonlarını ve diğer güvenlik olaylarını tespit etmek için önemlidir. Önemli günlük dosyaları şunları içerir:
2024-02-07 04:05:50 +00:00
2024-02-10 18:14:16 +00:00
- **/var/log/syslog** (Debian) veya **/var/log/messages** (RedHat): Sistem genelindeki mesajları ve etkinlikleri kaydeder.
- **/var/log/auth.log** (Debian) veya **/var/log/secure** (RedHat): Kimlik doğrulama girişimlerini, başarılı ve başarısız oturum açmalarını kaydeder.
- İlgili kimlik doğrulama olaylarını filtrelemek için `grep -iE "session opened for|accepted password|new session|not in sudoers" /var/log/auth.log` komutunu kullanın.
- **/var/log/boot.log**: Sistem başlatma mesajlarını içerir.
- **/var/log/maillog** veya **/var/log/mail.log**: E-posta sunucusu etkinliklerini kaydeder, e-posta ile ilgili hizmetleri izlemek için kullanışlıdır.
- **/var/log/kern.log**: Hata ve uyarılar da dahil olmak üzere çekirdek mesajlarını saklar.
- **/var/log/dmesg**: Aygıt sürücüsü mesajlarını içerir.
- **/var/log/faillog**: Başarısız oturum açma girişimlerini kaydeder, güvenlik ihlali soruşturmalarına yardımcı olur.
- **/var/log/cron**: Cron işi yürütmelerini kaydeder.
- **/var/log/daemon.log**: Arka planda çalışan hizmet etkinliklerini takip eder.
- **/var/log/btmp**: Başarısız oturum açma girişimlerini belgeler.
- **/var/log/httpd/**: Apache HTTPD hata ve erişim günlüklerini içerir.
- **/var/log/mysqld.log** veya **/var/log/mysql.log**: MySQL veritabanı etkinliklerini kaydeder.
- **/var/log/xferlog**: FTP dosya transferlerini kaydeder.
- **/var/log/**: Burada beklenmedik günlükler için her zaman kontrol yapın.
2020-12-23 22:44:17 +00:00
{% hint style="info" %}
2024-02-10 18:14:16 +00:00
Linux sistem günlükleri ve denetim alt sistemi, bir saldırı veya kötü amaçlı yazılım olayında devre dışı bırakılabilir veya silinebilir. Linux sistemlerindeki günlükler genellikle kötü amaçlı etkinlikler hakkında en kullanışlı bilgileri içerdiğinden, saldırganlar bunları rutin olarak siler. Bu nedenle, mevcut günlük dosyalarını incelemek önemlidir ve silme veya oynama belirtileri olabilecek boşlukları veya sırasız girişleri aramak önemlidir.
2020-12-23 22:44:17 +00:00
{% endhint %}
2024-02-10 18:14:16 +00:00
**Linux, her kullanıcı için bir komut geçmişi tutar**, bu geçmiş aşağıdaki dosyalarda saklanır:
2020-12-23 22:44:17 +00:00
2024-02-07 04:05:50 +00:00
- ~/.bash_history
- ~/.zsh_history
- ~/.zsh_sessions/*
- ~/.python_history
- ~/.*_history
2020-12-27 00:27:13 +00:00
2024-02-10 18:14:16 +00:00
Ayrıca, `last -Faiwx` komutu kullanıcı oturum açmalarının bir listesini sağlar. Bilinmeyen veya beklenmeyen oturum açmaları için kontrol edin.
2020-12-27 00:27:13 +00:00
2024-02-10 18:14:16 +00:00
Ek ayrıcalıklar sağlayabilecek dosyaları kontrol edin:
2020-12-27 00:27:13 +00:00
2024-02-10 18:14:16 +00:00
- Verilen beklenmeyen kullanıcı ayrıcalıklarını belirlemek için `/etc/sudoers` dosyasını gözden geçirin.
- Verilen beklenmeyen kullanıcı ayrıcalıklarını belirlemek için `/etc/sudoers.d/` dizinini gözden geçirin.
- Olağandışı grup üyeliklerini veya izinleri belirlemek için `/etc/groups` dosyasını inceleyin.
- Olağandışı grup üyeliklerini veya izinleri belirlemek için `/etc/passwd` dosyasını inceleyin.
2020-12-27 00:27:13 +00:00
2024-02-10 18:14:16 +00:00
Bazı uygulamalar kendi günlüklerini oluşturur:
2020-12-27 00:28:02 +00:00
2024-02-10 18:14:16 +00:00
- **SSH**: Yetkisiz uzak bağlantıları belirlemek için _~/.ssh/authorized_keys_ ve _~/.ssh/known_hosts_ dosyalarını inceleyin.
- **Gnome Masaüstü**: Gnome uygulamaları aracılığıyla son zamanlarda erişilen dosyalar için _~/.recently-used.xbel_ dosyasına bakın.
- **Firefox/Chrome**: Şüpheli etkinlikleri belirlemek için tarayıcı geçmişi ve indirmeleri _~/.mozilla/firefox_ veya _~/.config/google-chrome_ dizininde kontrol edin.
- **VIM**: Erişilen dosya yolları ve arama geçmişi gibi kullanım ayrıntıları için _~/.viminfo_ dosyasını gözden geçirin.
- **Open Office**: Kompromize edilmiş dosyaları gösterebilecek son belge erişimlerini kontrol edin.
- **FTP/SFTP**: Yetkisiz dosya transferleri için _~/.ftp_history_ veya _~/.sftp_history_ günlüklerini inceleyin.
- **MySQL**: Yetkisiz veritabanı etkinliklerini ortaya çıkarabilecek _~/.mysql_history_ dosyasını araştırın.
- **Less**: Görüntülenen dosyaları ve yürütülen komutları içeren _~/.lesshst_ dosyasını analiz edin.
- **Git**: Değişiklikleri belirlemek için _~/.gitconfig_ ve proje _.git/logs_ dosyalarını inceleyin.
2020-12-23 23:14:22 +00:00
2024-02-10 18:14:16 +00:00
### USB Günlükleri
2021-05-28 17:27:17 +00:00
2024-02-10 18:14:16 +00:00
[**usbrip**](https://github.com/snovvcrash/usbrip), Linux günlük dosyalarını (`/var/log/syslog*` veya dağıtıma bağlı olarak `/var/log/messages*`) USB olay geçmişi tabloları oluşturmak için ayrıştıran, saf Python 3 ile yazılmış küçük bir yazılımdır.
2021-05-28 17:27:17 +00:00
2024-02-10 18:14:16 +00:00
**Kullanılan tüm USB'leri bilmek** ilginç olacaktır ve yetkilendirilmiş bir USB listesine sahipseniz, "ihlal olaylarını" (bu listede olmayan USB'lerin kullanımı) bulmak için daha da kullanışlı olacaktır.
2021-05-28 17:27:17 +00:00
2024-02-10 18:14:16 +00:00
### Kurulum
2024-02-07 04:05:50 +00:00
```bash
2021-05-28 17:27:17 +00:00
pip3 install usbrip
2022-09-07 15:35:57 +00:00
usbrip ids download #Download USB ID database
2021-05-28 17:27:17 +00:00
```
2024-02-10 18:14:16 +00:00
### Örnekler
#### 1. Disk İmagesi Oluşturma
2021-05-28 17:27:17 +00:00
2024-02-10 18:14:16 +00:00
Bir Linux sistemde disk imajı oluşturmak için `dd` komutunu kullanabilirsiniz. Aşağıdaki komut, `/dev/sda` diskinden bir imaj oluşturur ve `image.dd` adında bir dosyaya kaydeder:
2021-05-28 17:27:17 +00:00
2024-02-10 18:14:16 +00:00
```bash
dd if=/dev/sda of=image.dd
```
#### 2. Disk İmagesini İnceleme
Oluşturulan disk imajını incelemek için `file` komutunu kullanabilirsiniz. Aşağıdaki komut, `image.dd` dosyasının türünü ve özelliklerini gösterir:
```bash
file image.dd
```
#### 3. İmzaları İnceleme
İmzaları incelemek için `binwalk` aracını kullanabilirsiniz. Aşağıdaki komut, `image.dd` dosyasındaki imzaları gösterir:
```bash
binwalk image.dd
```
#### 4. Dosya Sistemini İnceleme
Disk imajındaki dosya sistemini incelemek için `mmls` komutunu kullanabilirsiniz. Aşağıdaki komut, `image.dd` dosyasındaki dosya sistemini gösterir:
```bash
mmls image.dd
```
#### 5. Dosyaları İnceleme
Disk imajındaki dosyaları incelemek için `foremost` aracını kullanabilirsiniz. Aşağıdaki komut, `image.dd` dosyasındaki dosyaları kurtarır:
```bash
foremost -i image.dd -o output_directory
```
#### 6. Log Dosyalarını İnceleme
Log dosyalarını incelemek için `grep` komutunu kullanabilirsiniz. Aşağıdaki komut, `auth.log` dosyasında belirli bir kelimeyi arar:
```bash
grep "kelime" auth.log
```
#### 7. Bellek İmagesini İnceleme
Bellek imajını incelemek için `volatility` aracını kullanabilirsiniz. Aşağıdaki komut, `memdump.mem` dosyasındaki süreçleri ve bağlantıları gösterir:
```bash
volatility -f memdump.mem imageinfo
volatility -f memdump.mem pslist
volatility -f memdump.mem connections
```
#### 8. Ağ İncelemesi
Ağ trafiğini incelemek için `tcpdump` komutunu kullanabilirsiniz. Aşağıdaki komut, `eth0` arayüzündeki ağ trafiğini kaydeder:
```bash
tcpdump -i eth0 -w capture.pcap
```
#### 9. Sistem Günlüklerini İnceleme
Sistem günlüklerini incelemek için `/var/log` dizinindeki günlük dosyalarını kullanabilirsiniz. Aşağıdaki komut, `auth.log` dosyasını görüntüler:
```bash
cat /var/log/auth.log
```
#### 10. Kullanıcı İncelemesi
Kullanıcıları incelemek için `/etc/passwd` dosyasını kullanabilirsiniz. Aşağıdaki komut, sistemdeki kullanıcıları gösterir:
```bash
cat /etc/passwd
```
2024-02-07 04:05:50 +00:00
```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
```
2024-02-10 18:14:16 +00:00
Daha fazla örnek ve bilgi için github'a bakın: [https://github.com/snovvcrash/usbrip](https://github.com/snovvcrash/usbrip)
2021-05-28 17:27:17 +00:00
2024-02-07 04:05:50 +00:00
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
2022-08-31 22:35:39 +00:00
\
2024-02-10 18:14:16 +00:00
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturun ve otomatikleştirin.\
Bugün Erişim Alın:
2022-08-31 22:35:39 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
2024-02-07 04:05:50 +00:00
2024-02-10 18:14:16 +00:00
## Kullanıcı Hesaplarını ve Oturum Açma Etkinliklerini İnceleyin
2020-12-23 22:44:17 +00:00
2024-02-10 18:14:16 +00:00
Bilinen yetkisiz olaylara yakın zamanda oluşturulan veya kullanılan sıradışı isimleri veya hesapları tespit etmek için _**/etc/passwd**_, _**/etc/shadow**_ ve **güvenlik günlüklerini** inceleyin. Ayrıca, olası sudo brute-force saldırılarını kontrol edin.\
Ayrıca, kullanıcılara verilen beklenmeyen ayrıcalıkları kontrol etmek için _**/etc/sudoers**_ ve _**/etc/groups**_ gibi dosyalara bakın.\
Son olarak, şifresi olmayan veya kolayca tahmin edilebilen şifrelere sahip hesapları arayın.
2020-12-23 22:44:17 +00:00
2024-02-10 18:14:16 +00:00
## Dosya Sistemi İncelemesi
2020-12-23 23:14:22 +00:00
2024-02-10 18:14:16 +00:00
### Zararlı Yazılım İncelemesinde Dosya Sistemi Yapılarını Analiz Etme
2020-12-23 23:14:22 +00:00
2024-02-10 18:14:16 +00:00
Zararlı yazılım olaylarını incelemek için dosya sistemi yapısı bilgileri önemli bir kaynaktır ve hem olayların sırasını hem de zararlı yazılımın içeriğini ortaya çıkarır. Bununla birlikte, zararlı yazılım yazarları, dosya zaman damgalarını değiştirme veya veri depolama için dosya sisteminden kaçınma gibi analizi engellemek için teknikler geliştirmektedir.
2020-12-23 23:14:22 +00:00
2024-02-10 18:14:16 +00:00
Bu anti-forensik yöntemlere karşı koymak için şunlar önemlidir:
2024-02-07 04:05:50 +00:00
2024-02-10 18:14:16 +00:00
- **Olay zaman çizelgesini görselleştirmek** için **Autopsy** gibi araçları kullanarak kapsamlı bir zaman çizelgesi analizi yapın veya ayrıntılı zaman çizelgesi verileri için **Sleuth Kit'in** `mactime`'ını kullanın.
- Saldırganlar tarafından kullanılan kabuk veya PHP betiklerini içerebilecek sistemdeki beklenmedik betikleri inceleyin.
- Geleneksel olarak özel dosyalar içerdiği için **/dev** içindeki tipik olmayan dosyalara bakın, çünkü zararlı yazılım ile ilişkili dosyalar içerebilir.
- ".. " (nokta nokta boşluk) veya "..^G" (nokta nokta kontrol-G) gibi isimlere sahip **gizli dosyaları veya dizinleri arayın**, bunlar zararlı içeriği gizleyebilir.
- Aşağıdaki komutu kullanarak **setuid root dosyalarını** belirleyin:
```find / -user root -perm -04000 -print```
Bu, saldırganlar tarafından kötüye kullanılabilecek yükseltilmiş izinlere sahip dosyaları bulur.
- Kök kiti veya truva atlarının varlığını gösterebilecek toplu dosya silmelerini tespit etmek için inode tablolarındaki silme zaman damgalarını **inceleyin**.
- Bir tane belirledikten sonra yakındaki zararlı dosyaları tespit etmek için ardışık inode'ları **inceleyin**, çünkü birlikte yerleştirilmiş olabilirler.
- Zararlı yazılım tarafından değiştirilmiş olabileceği için **/bin_, _/sbin_ gibi yaygın ikili dizinleri** son zamanlarda değiştirilen dosyalar için kontrol edin.
2024-02-07 04:05:50 +00:00
```bash
2024-02-10 18:14:16 +00:00
# List recent files in a directory:
2024-02-07 04:05:50 +00:00
ls -laR --sort=time /bin```
2024-02-10 18:14:16 +00:00
# Sort files in a directory by inode:
2024-02-07 04:05:50 +00:00
ls -lai /bin | sort -n```
```
2020-12-28 22:28:30 +00:00
{% hint style="info" %}
2024-02-10 18:14:16 +00:00
Not: Bir **saldırgan**, **dosyaların görünümünü meşru** göstermek için **zamanı değiştirebilir**, ancak **inode**'u değiştiremez. Bir **dosyanın**, aynı klasördeki diğer dosyalarla aynı **zamanda oluşturulduğunu ve değiştirildiğini gösterdiği**, ancak **inode**'un **beklenmedik şekilde daha büyük olduğu** durumda, o dosyanın **zaman damgalarının değiştirildiği** anlaşılır.
2020-12-28 22:28:30 +00:00
{% endhint %}
2024-02-10 18:14:16 +00:00
## Farklı dosya sistem sürümlerini karşılaştırma
2020-12-28 22:28:30 +00:00
2024-02-10 18:14:16 +00:00
### Dosya Sistem Sürümü Karşılaştırma Özeti
2021-01-06 15:28:14 +00:00
2024-02-10 18:14:16 +00:00
Dosya sistem sürümlerini karşılaştırmak ve değişiklikleri belirlemek için basitleştirilmiş `git diff` komutlarını kullanırız:
2024-02-07 04:05:50 +00:00
2024-02-10 18:14:16 +00:00
- **Yeni dosyaları bulmak** için iki dizini karşılaştırın:
2021-01-06 15:28:14 +00:00
```bash
2024-02-07 04:05:50 +00:00
git diff --no-index --diff-filter=A path/to/old_version/ path/to/new_version/
2021-01-06 15:28:14 +00:00
```
2024-02-10 18:14:16 +00:00
- **Değiştirilmiş içerik için**, belirli satırları görmezden gelerek değişiklikleri listeleyin:
2021-01-06 15:28:14 +00:00
```bash
2024-02-07 04:05:50 +00:00
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
```
2024-02-10 18:14:16 +00:00
- **Silinmiş dosyaları tespit etmek için**:
2021-01-06 15:28:14 +00:00
```bash
2024-02-07 04:05:50 +00:00
git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
2021-01-06 15:28:14 +00:00
```
2024-02-10 18:14:16 +00:00
- **Filtre seçenekleri** (`--diff-filter`), eklenen (`A`), silinen (`D`) veya değiştirilen (`M`) dosyalar gibi belirli değişikliklere odaklanmayı sağlar.
- `A`: Eklenen dosyalar
- `C`: Kopyalanan dosyalar
- `D`: Silinen dosyalar
- `M`: Değiştirilen dosyalar
- `R`: Yeniden adlandırılan dosyalar
- `T`: Tür değişiklikleri (örneğin, dosyadan sembole)
- `U`: Birleştirilmemiş dosyalar
- `X`: Bilinmeyen dosyalar
- `B`: Bozuk dosyalar
## Referanslar
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/)
2024-02-07 04:05:50 +00:00
* [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)
2024-02-10 18:14:16 +00:00
* **Kitap: Malware Forensics Field Guide for Linux Systems: Digital Forensics Field Guides**
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 18:14:16 +00:00
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>'ı öğrenin!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
**Bir siber güvenlik şirketinde mi çalışıyorsunuz?** **Şirketinizi HackTricks'te reklamını görmek ister misiniz?** veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuz olan [**NFT'lerimizi**](https://opensea.io/collection/the-peass-family) keşfedin.
* [**Resmi PEASS & HackTricks ürünlerine**](https://peass.creator-spring.com) göz atın.
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**'u takip edin**.
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
**Hacking hilelerinizi** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **ve** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **ile göndererek paylaşın**.
2022-04-28 16:01:33 +00:00
</details>
2022-08-31 22:35:39 +00:00
<figure><img src="../../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
2022-08-31 22:35:39 +00:00
\
2024-02-10 18:14:16 +00:00
Dünyanın en gelişmiş topluluk araçları tarafından desteklenen **iş akışlarını kolayca oluşturun ve otomatikleştirin** için [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)'i kullanın.
Bugün Erişim Alın:
2022-08-31 22:35:39 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}