# Digital Forensics on Linux

Hệ điều hành Linux được sử dụng rộng rãi bởi các tổ chức và cá nhân trên toàn thế giới. Mạnh mẽ, linh hoạt và mã nguồn mở, Linux là một lựa chọn lý tưởng cho nhiều ứng dụng, biến nó thành một nền tảng lý tưởng cho forensics. Digital forensics liên quan đến việc thu thập, bảo quản, phân tích và báo cáo bằng chứng số sau các cuộc tấn công mạng và vi phạm bảo mật. Để giải quyết tội phạm, lấp đầy các lỗ hổng bảo mật và ngăn chặn các vi phạm trong tương lai, quy trình này là rất cần thiết.

## 1. Linux Live Response

Linux Live Response là một quy trình thu thập thông tin pháp lý trên máy tính có HĐH Linux sau một sự cố bảo mật. Quá trình này tập trung vào việc thu thập và phân tích dữ liệu tạm thời có thể bị mất, đặc biệt là trong trường hợp mất điện. Dữ liệu này có thể được sử dụng để xác định tình trạng của hệ thống khi xảy ra lỗi.

Trong các hệ thống Linux, "volatile data" (dữ liệu dễ bay hơi) đề cập đến dữ liệu bị mất khi nguồn điện của máy tính bị gián đoạn, phản ánh trạng thái của hệ thống tại thời điểm hoạt động và được tìm thấy trong bộ nhớ (RAM), thanh ghi CPU, kết nối mạng và các bộ nhớ tạm thời khác. Dữ liệu dễ bay hơi có tầm quan trọng lớn trong các cuộc điều tra pháp lý vì nó có thể chứa thông tin về các hoạt động của người dùng cuối trên hệ thống, thông tin quy trình, kết nối mạng và các thông tin quan trọng khác được lưu trữ trong bộ nhớ.

Lưu ý: Vì dữ liệu dễ bay hơi có thể ở trạng thái thay đổi liên tục và việc xem xét nó một cách nhanh chóng để hiểu những gì đang xảy ra trên hệ thống ngay khi sự kiện được chú ý là rất quan trọng.

### 1.1. Running Processes

Các quy trình đang chạy trên hệ thống cung cấp các chi tiết quan trọng về các ứng dụng và dịch vụ đang hoạt động trong hệ thống.&#x20;

Lệnh <mark style="color:red;">`ps`</mark> liệt kê tất cả các quy trình đang chạy và hiển thị các chi tiết như ID quy trình (PIDs), người dùng, mức sử dụng CPU và mức sử dụng bộ nhớ.

Lệnh <mark style="color:red;">`top`</mark> là một công cụ giám sát hệ thống thời gian thực hiển thị mức độ sử dụng tài nguyên hệ thống cũng như các quy trình, giúp xác định các quy trình đang làm chậm hệ thống hoặc thực hiện các hoạt động đáng ngờ.

Ví dụ: bạn có thể phát hiện một quy trình ransomware thực hiện mã hóa bằng cách quan sát mức sử dụng tài nguyên cao.

**The&#x20;**<mark style="color:red;">**`ps`**</mark>**&#x20;command**

* Theo mặc định <mark style="color:red;">`ps`</mark> chỉ hiển thị các quy trình của phiên terminal hiện tại.
* Người dùng có thể tùy chỉnh đầu ra bằng cách sử dụng các tham số khác nhau, nhưng khi được sử dụng như vậy, nó cung cấp thông tin hạn chế.
* Đầu ra thường chỉ bao gồm ID quy trình (PID), terminal ID (TTY), run time (TIME) và command name (CMD)

**The&#x20;**<mark style="color:red;">**`ps aux`**</mark>**&#x20;command**

* Lệnh <mark style="color:red;">`ps aux`</mark> hiển thị tất cả các quy trình đang chạy trên hệ thống, bất kể chúng là quy trình người dùng, phiên terminal hay quy trình nền.
* Đầu ra bao gồm tên người dùng (USER), ID quy trình (PID), mức sử dụng CPU và bộ nhớ (%CPU, %MEM), kích thước bộ nhớ ảo (VSZ), kích thước bộ nhớ vật lý (RSS), ID terminal (TTY), trạng thái quy trình (STAT), thời gian bắt đầu (START), tổng thời gian sử dụng CPU (TIME) và tên lệnh (COMMAND).

<figure><img src="/files/coCBR3dtRmezww5txNRP" alt=""><figcaption></figcaption></figure>

Ngoài ra, các công cụ của bên thứ ba như <mark style="color:red;">`htop`</mark> có thể được sử dụng để giám sát quy trình nâng cao hơn.

### 1.2. System Time

Khi tạo dòng thời gian của các sự kiện, thời gian hệ thống hiện tại và múi giờ là rất quan trọng.&#x20;

Lệnh <mark style="color:red;">`date`</mark> sẽ hiển thị thời gian hệ thống và múi giờ đã được đặt. Bạn có thể sử dụng lệnh này để so sánh các mục nhật ký với dấu thời gian và để xác định thứ tự mà các sự kiện diễn ra.&#x20;

Trên các hệ thống Linux, bạn có thể sử dụng lệnh <mark style="color:red;">`date`</mark> để tìm thời gian hệ thống hiện tại và lệnh <mark style="color:red;">`timedatectl`</mark> để tìm múi giờ.

<figure><img src="/files/QriSsrjJZ7L2jyPltxPW" alt=""><figcaption></figcaption></figure>

### 1.3. Logged on users (Người dùng đã đăng nhập)

Những người dùng đã đăng nhập vào hệ thống và thời gian đăng nhập của họ là rất quan trọng để giám sát hoạt động của người dùng. Chi tiết về những người dùng đã đăng nhập, thời gian đăng nhập và các terminal đã đăng nhập có thể được lấy bằng cách sử dụng các lệnh '<mark style="color:red;">`who`</mark>', '<mark style="color:red;">`w`</mark>' và '<mark style="color:red;">`last`</mark>'. Các lệnh này giúp phát hiện truy cập trái phép bằng cách hiển thị ai đã truy cập vào hệ thống và khi nào họ truy cập vào hệ thống.

**“**<mark style="color:red;">**`who`**</mark>**” command**

Nó hiển thị danh sách người dùng đã đăng nhập vào hệ thống, cung cấp thông tin cơ bản như tên người dùng, tên terminal (TTY) mà người dùng đăng nhập và ngày giờ đăng nhập.

<figure><img src="/files/Ao4xdEdO6pNlK7JwYRnd" alt=""><figcaption></figcaption></figure>

### 1.4. Open Files and Network Connections

Các tệp đang mở và kết nối mạng trên hệ thống cung cấp chi tiết về các luồng dữ liệu đang hoạt động và tương tác ứng dụng.&#x20;

Lệnh '<mark style="color:red;">`lsof`</mark>' có thể liệt kê các tệp đang mở và hiển thị quy trình nào đang truy cập các tệp đó, loại tệp và mã định danh tệp.

Lệnh '<mark style="color:red;">`netstat`</mark>' hiển thị các kết nối mạng đang hoạt động, các cổng đang lắng nghe và các giao thức mạng. Thông tin này có thể hữu ích cho việc phân tích các truy cập tệp hoặc lưu lượng mạng đáng ngờ.

**The “**<mark style="color:red;">**`lsof`**</mark>**” Command (List Open Files)**

Trên các hệ thống Linux và UNIX, lệnh "<mark style="color:red;">`lsof`</mark>" liệt kê các tệp đang mở và các quy trình sử dụng các tệp đó. Nó cung cấp các chi tiết như tên tệp, ID quy trình (PID), tên người dùng, loại tệp, số thiết bị và vị trí tệp. "<mark style="color:red;">`lsof`</mark>" là một lệnh rất linh hoạt và có nhiều cách sử dụng để hiểu những gì đang diễn ra trong hệ thống.&#x20;

Dưới đây là một vài ví dụ về cách sử dụng "<mark style="color:red;">`lsof`</mark>" để tìm các tệp đang mở:

* Nếu bạn muốn tìm các tệp đang mở cho một tệp hoặc thư mục, bạn có thể nhập đường dẫn tệp hoặc thư mục làm tham số cho <mark style="color:red;">`lsof`</mark>:

```bash
lsof /path/to/file_or_directory
```

```bash
lsof /tmp/.test.txt.swp
```

<figure><img src="/files/smOROc3dCMRJuHx4BGH0" alt=""><figcaption></figcaption></figure>

* Để liệt kê các tệp được mở bởi một quy trình cụ thể, hãy sử dụng tham số "<mark style="color:red;">`-p`</mark>". Nhập giá trị PID của quy trình làm tham số:

```bash
ps aux | grep nginx
```

```bash
lsof -p 980
```

<figure><img src="/files/ZKpfco6T3KiSxIjpUHGv" alt=""><figcaption></figcaption></figure>

* Để liệt kê các tệp được mở bởi một người dùng cụ thể, tham số "<mark style="color:red;">`-u`</mark>" được sử dụng với lệnh "<mark style="color:red;">`lsof`</mark>". Nhập tên người dùng hoặc giá trị ID người dùng (UID) vào tham số "<mark style="color:red;">`-u`</mark>":

```bash
lsof -u vivek
```

<figure><img src="/files/KUNo7crdnJZhFcUIFaXe" alt=""><figcaption></figcaption></figure>

**The “**<mark style="color:red;">**`netstat`**</mark>**” Command**

Lệnh "<mark style="color:red;">`netstat`</mark>" cung cấp thông tin chi tiết về các kết nối đang hoạt động, các cổng đang lắng nghe, các giao thức đang sử dụng và các quy trình liên quan, cung cấp các manh mối quan trọng trong quá trình điều tra pháp y. Những chi tiết này giúp các chuyên gia bảo mật và quản trị viên hệ thống xác định cách thức và thời điểm hệ thống có thể bị xâm phạm, từ đó tăng cường khả năng phòng thủ chống lại các mối đe dọa trong tương lai. Do đó, việc sử dụng lệnh "<mark style="color:red;">`netstat`</mark>" trong phân tích pháp y Linux là rất quan trọng để kiểm tra toàn diện các sự kiện trên mạng và đảm bảo an ninh hệ thống.

Dưới đây là một số tham số cơ bản và giải thích của chúng cho lệnh "<mark style="color:red;">`netstat`</mark>":

* <mark style="color:red;">**`-a, --all`**</mark>**:** Hiển thị cả socket đang lắng nghe và không lắng nghe.
* <mark style="color:red;">**`-l, --listening`**</mark>**:** Chỉ hiển thị socket đang lắng nghe.
* <mark style="color:red;">**`-t, --tcp`**</mark>**:** Hiển thị các kết nối TCP.
* <mark style="color:red;">**`-u, --udp`**</mark>**:** Hiển thị các kết nối UDP.
* <mark style="color:red;">**`-4, --inet`**</mark>**:** Chỉ hiển thị các kết nối IPv4.
* <mark style="color:red;">**`-6, --inet6`**</mark>**:** Chỉ hiển thị các kết nối IPv6.
* <mark style="color:red;">**`-n, --numeric`**</mark>**:** Hiển thị địa chỉ số thay vì giải quyết tên máy chủ, cổng hoặc tên người dùng, giúp tăng tốc độ tạo đầu ra.
* <mark style="color:red;">**`-p, --program`**</mark>**:** Hiển thị PID và tên của chương trình mà mỗi socket thuộc về (PID/Tên chương trình). Thường cần có quyền root để xem thông tin này.

Ví dụ: để liệt kê tất cả các kết nối TCP đang hoạt động, hãy sử dụng lệnh bên dưới:

```bash
netstat -at
```

<figure><img src="/files/jwMLXKF6sTOBtdZ7mGHp" alt=""><figcaption></figcaption></figure>

Ví dụ: để liệt kê chỉ các cổng TCP đang lắng nghe, hãy sử dụng lệnh bên dưới:

```bash
netstat -lt
```

<figure><img src="/files/yg7yQgpK6LgAqdsgxepo" alt=""><figcaption></figcaption></figure>

### 1.5. Network Status

Các lệnh như "<mark style="color:red;">`ifconfig`</mark>" hoặc "<mark style="color:red;">`ip addr`</mark>" hiển thị cấu hình giao diện mạng và địa chỉ IP, trong khi "<mark style="color:red;">`ss`</mark>" hoặc "<mark style="color:red;">`netstat`</mark>" cung cấp thông tin chi tiết về các kết nối đang hoạt động và các cổng đang lắng nghe, điều này rất quan trọng trong việc phát hiện các cuộc tấn công hoặc xâm nhập mạng.

Ví dụ: các lệnh trạng thái mạng như "<mark style="color:red;">`ip addr`</mark>" hoặc "<mark style="color:red;">`ifconfig`</mark>" có thể được sử dụng để phát hiện việc tạo giao diện mạng mới cho đường hầm DNS (DNS tunneling)

```bash
ip addr
```

<figure><img src="/files/tpItJYLGnqY6qdygrPDm" alt=""><figcaption></figcaption></figure>

### 1.6. Command History

Lịch sử các lệnh được người dùng thực thi tại dòng lệnh là một nguồn quan trọng để giám sát hành vi và hành động của người dùng. Tệp "<mark style="color:green;">`~/.bash_history`</mark>" cho người dùng ghi lại các lệnh đã thực thi. Lịch sử lệnh được sử dụng để theo dõi các thay đổi được thực hiện đối với hệ thống hoặc để xác định các lệnh có khả năng độc hại.

Có một số cách để xem lịch sử lệnh trong Linux, dễ dàng thông qua các tính năng của terminal và shell, cung cấp thông tin chi tiết có giá trị về hoạt động của người dùng.

**The “**<mark style="color:red;">**`history`**</mark>**” Command**

Cách đơn giản và phổ biến nhất là thực thi lệnh "<mark style="color:red;">`history`</mark>" trong bash, lệnh này liệt kê lịch sử lệnh của người dùng.

```bash
history
```

<figure><img src="/files/uKBzgBB3kgSUsdaTgFSB" alt=""><figcaption></figcaption></figure>

**Viewing “**<mark style="color:green;">**`~.bash_history`**</mark>**” file directly (trực tiếp)**

Đối với người dùng sử dụng Bash, lịch sử lệnh thường được lưu trữ trong tệp "<mark style="color:green;">`.bash_history`</mark>" trong thư mục chính của người dùng, có thể được xem trực tiếp.

```bash
cat ~/.bash_history
```

<figure><img src="/files/73n0BkrZo4RpIwIKqHDx" alt=""><figcaption></figcaption></figure>

### 1.7. RAM Content

Dữ liệu bộ nhớ (RAM) cung cấp thông tin phong phú về các ứng dụng đang mở, hoạt động của người dùng và thông tin nhạy cảm. Một bản kết xuất bộ nhớ chụp một bản sao của dữ liệu được lưu trữ trong RAM để phân tích chi tiết, điều này rất quan trọng để phát hiện phần mềm độc hại, các lệnh ẩn hoặc dữ liệu nhạy cảm.

Có nhiều công cụ có thể được sử dụng để lấy bản kết xuất bộ nhớ. Một công cụ phổ biến trong Linux là <mark style="color:blue;">LiME (Linux Memory Extractor)</mark>, được sử dụng để lưu trạng thái hiện tại của hệ thống vào một tệp. Tệp kết xuất này sau đó có thể được phân tích bằng các công cụ chuyên dụng như <mark style="color:blue;">`Volatility`</mark>, một framework phân tích bộ nhớ mã nguồn mở kiểm tra nội dung bộ nhớ như các quy trình, kết nối mạng, các tệp đang mở và phiên người dùng.

## 2. Linux File Systems

Trong các cuộc điều tra pháp y trong môi trường điện toán Linux, việc hiểu và phân tích hệ thống tập tin là rất quan trọng để diễn giải chính xác các dữ liệu thu thập được. Linux hỗ trợ nhiều hệ thống tập tin khác nhau, mỗi hệ thống có những đặc điểm riêng. Các cuộc kiểm tra pháp y trên các hệ thống tập tin này có thể cung cấp một phạm vi thông tin rộng lớn, từ việc khôi phục các tập tin đã xóa đến theo dõi các sửa đổi hệ thống.

Linux hỗ trợ nhiều hệ thống tập tin như **EXT2**, **EXT3**, **EXT4**, **XFS**, **Btrfs** và **ReiserFS**. Mỗi hệ thống tập tin cung cấp những lợi thế riêng biệt về hiệu suất, độ tin cậy và tính năng.

* **EXT2 (Second Extended File System)** là một hệ thống tập tin Linux cũ, nổi tiếng với cấu trúc đơn giản và mạnh mẽ, thiếu hỗ trợ nhật ký (journaling). Mặc dù nó gây ra những thách thức cho việc khôi phục tập tin và phân tích pháp y, nhưng nó vẫn được sử dụng trong một số hệ thống ngày nay.
* **EXT3 (Third Extended File System)** là một phiên bản nâng cao của EXT2 với hỗ trợ nhật ký. Nhật ký giúp duy trì tính toàn vẹn của dữ liệu trong trường hợp hệ thống bị treo và tạo điều kiện thuận lợi cho việc theo dõi các thay đổi trong quá trình phân tích pháp y.
* **EXT4 (Fourth Extended File System)** được xây dựng dựa trên EXT3, hỗ trợ các tập tin và ổ đĩa lớn, mang lại khả năng truy cập và hiệu quả ổ đĩa nhanh hơn. EXT4 cung cấp các khả năng rộng hơn cho việc khôi phục và phân tích dữ liệu trong các cuộc điều tra pháp y.
* **XFS** được thiết kế cho các hệ thống tập tin và tập tin quy mô lớn, cung cấp các hoạt động hiệu suất cao và khả năng mở rộng. Trong pháp y số, nó hữu ích cho việc quản lý và phân tích các bộ dữ liệu lớn.
* **Btrfs (B-tree File System)** là một hệ thống tập tin hiện đại với các tính năng nâng cao như snapshotting (chụp nhanh), sao lưu dữ liệu và kiểm tra tính toàn vẹn của dữ liệu. Những tính năng này là các công cụ có giá trị để giám sát và khôi phục các sửa đổi dữ liệu trong các cuộc điều tra pháp y.
* **ReiserFS** được tối ưu hóa cho việc quản lý hiệu quả một số lượng lớn các tập tin nhỏ nhưng đã giảm dần về mức độ phổ biến do các vấn đề kỹ thuật và pháp lý.

Để xem việc sử dụng và các loại ổ đĩa hiện tại trong các hệ thống Linux, bạn có thể sử dụng lệnh "<mark style="color:red;">`df -hT`</mark>":

```bash
df -hT
```

<figure><img src="/files/llk2B0Yn0CGdSNoNYNvI" alt=""><figcaption></figcaption></figure>

## 3. Linux File System Forensics

Phân tích hệ thống tập tin Linux đóng một vai trò quan trọng trong các cuộc điều tra pháp y số, hỗ trợ giải quyết tội phạm, hiểu các vi phạm bảo mật và phát hiện các hoạt động độc hại tiềm ẩn. Linux hỗ trợ nhiều hệ thống tập tin khác nhau, mỗi hệ thống trình bày các dữ liệu và thách thức riêng trong quá trình phân tích pháp y. Quy trình pháp y thường bắt đầu bằng việc thu thập một ảnh của hệ thống hoặc thiết bị lưu trữ mục tiêu, bảo toàn dữ liệu gốc và cho phép phân tích mà không làm thay đổi hệ thống.

### 3.1. Imaging Tools

Trong phân tích pháp y Linux, việc chụp ảnh đĩa hoặc phân vùng và bảo toàn dữ liệu tại hiện trường là rất quan trọng cho việc kiểm tra. Các công cụ tạo ảnh tạo ra các bản sao bit-level của đĩa hoặc phân vùng, cho phép các chuyên gia pháp y kiểm tra dữ liệu mà không cần sửa đổi.

<mark style="color:red;">**`dd`**</mark>**&#x20;Command**

Lệnh "<mark style="color:red;">`dd`</mark>" là một trong những lệnh cơ bản và mạnh mẽ nhất trong các hệ thống Linux và Unix. Nó được sử dụng để chuyển đổi và sao chép nội dung tệp và đĩa.&#x20;

Tóm lại, lệnh "<mark style="color:red;">`dd`</mark>" có thể tạo ra một ảnh đĩa hoàn chỉnh ở cấp độ bit.

Cú pháp lệnh <mark style="color:red;">`dd`</mark> cơ bản:

```bash
dd if=<source> of=<destination> bs=<block_size> status=progress
```

Các tham số trong lệnh và ý nghĩa của chúng như sau:

* **if= (Input File - Tệp Đầu Vào):** Chỉ định nguồn (ví dụ: một phân vùng đĩa) sẽ được sao chép.
* **of= (Output File - Tệp Đầu Ra):** Chỉ định đích (ví dụ: một tệp) nơi ảnh sẽ được ghi.
* **bs= (Block Size - Kích Thước Khối):** Chỉ định kích thước khối sẽ được sử dụng trong quá trình truyền dữ liệu. Việc chọn một giá trị phù hợp là quan trọng để có hiệu quả.
* **status=progress:** Hiển thị tiến trình của hoạt động, cung cấp thông tin theo thời gian thực cho người dùng.

Ví dụ: Để chụp ảnh một phân vùng ổ cứng (ví dụ: /dev/sdb1) và lưu nó vào một tệp có tên "disk\_image.img", bạn có thể sử dụng lệnh sau:

```bash
sudo dd if=/dev/sdb1 of=/path/to/disk_image.img bs=4M status=progress
```

Lệnh này chụp ảnh phân vùng `/dev/sdb1` vào tệp "`disk_image.img`". Tham số “<mark style="color:red;">`bs=4M`</mark>” cho thấy khối 4 MB đang được sử dụng, thường cải thiện tốc độ truyền dữ liệu. "<mark style="color:red;">`status=progress`</mark>" hiển thị tiến trình theo thời gian thực của hoạt động.

**Mounting Images**

Việc mounting an image cho phép truy cập vào các tệp trong hệ thống tệp. Điều này nên được thực hiện cho mục đích chỉ đọc, đảm bảo tính toàn vẹn của ảnh.

```bash
dd if=/dev/sda1 of=/tmp/sda1.img bs=4M status=progress
```

<figure><img src="/files/CIiPq0jJibcYFd0ClNEZ" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/2uHZrLnMG8DI5Omlij4r" alt=""><figcaption></figcaption></figure>

```bash
mount -o ro /tmp/sda1.img /mnt/image
```

Lệnh này mounts "`sda1.img`" image vào thư mục "`/mnt/image`" ở chế độ chỉ đọc như một thiết bị vòng lặp (loop device). Điều này cho phép truy cập vào các cấu trúc hệ thống tệp và các tệp bên trong ảnh.

<mark style="color:red;">**`dc3dd`**</mark>**&#x20;Tool**

"<mark style="color:red;">`dc3dd`</mark>" là một phiên bản nâng cao của "<mark style="color:red;">`dd`</mark>" được thiết kế đặc biệt cho mục đích pháp y số. Nó bao gồm các tính năng bổ sung như chỉ báo tiến trình, khả năng xuất giá trị hash và ghi vào nhiều tệp đầu ra đồng thời. Ví dụ: khi chụp ảnh đĩa bằng "<mark style="color:red;">`dc3dd`</mark>", bạn có thể đồng thời tạo giá trị hash MD5 và SHA-256.

### 3.2. Calculating Hash Value

Khi các ảnh đĩa hoặc phân vùng được thu thập, giá trị hash được tính toán để đảm bảo tính toàn vẹn và độ tin cậy của dữ liệu cho các phân tích tiếp theo. Giá trị hash là các chuỗi ký tự duy nhất được tính từ một khối dữ liệu, do đó ngay cả sự thay đổi nhỏ nhất trong dữ liệu cũng dẫn đến một giá trị hash khác biệt đáng kể.

**MD5**

MD5 (Message Digest Algorithm 5) là một thuật toán hash được sử dụng rộng rãi, tạo ra giá trị hash 128-bit. Mặc dù tính toán nhanh chóng, MD5 có thể không đủ trong các tình huống có độ nhạy cao do các lỗ hổng xung đột của nó.

**SHA-1**

SHA-1 (Secure Hash Algorithm 1) mạnh hơn MD5, tạo ra giá trị hash 160-bit. Tuy nhiên, SHA-256 được ưa chuộng hơn SHA-1 ngày nay do mức độ bảo mật cao hơn.

**SHA-256**

SHA-256, một phần của họ SHA-2, tạo ra giá trị hash 256-bit. Đây là thuật toán hash được ưa chuộng trong pháp y số ngày nay, đảm bảo tính toàn vẹn và bảo mật dữ liệu cao.&#x20;

Các ví dụ về tính toán giá trị hash cho cụm từ "`letsdefend`" bằng các thuật toán hash MD5, SHA-1 và SHA-256 được hiển thị bên dưới. Các giá trị hash cho tệp "`sda1.img`" được tạo trong phần trước cũng được hiển thị:

<figure><img src="/files/nFegCbkpGOQsl0o98fjc" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/zzX6cdx1wCza4ZfKyP1u" alt=""><figcaption></figcaption></figure>

Với các giá trị hash, chúng ta có thể xác minh tính toàn vẹn của dữ liệu giữa ảnh đĩa hoặc phân vùng đã thu thập và bản sao của nó trong các giai đoạn phân tích tiếp theo. Các giá trị hash khớp nhau xác nhận rằng dữ liệu không thay đổi và điều này rất quan trọng để chứng minh tính chính xác và độ tin cậy của các phát hiện trong các cuộc điều tra pháp y số.

### 3.3. Recovering Deleted Files

Khi các tập tin bị xóa trên hệ điều hành Linux, dữ liệu của chúng không bị xóa vật lý ngay lập tức khỏi đĩa; thay vào đó, hệ thống tập tin đánh dấu không gian bị chiếm bởi tập tin là "**free (trống)**" và có sẵn cho dữ liệu mới ghi đè. Tính năng này cho phép các chuyên gia pháp y khôi phục các tập tin đã xóa trước khi dữ liệu mới được ghi đè lên không gian của chúng.

**How to Recover Deleted Files?**

1. **Imaging Process:** Bước đầu tiên là thu thập ảnh của đĩa hoặc phân vùng mục tiêu để giảm thiểu rủi ro làm hỏng phương tiện gốc. "<mark style="color:red;">`dd`</mark>", "<mark style="color:red;">`dc3dd`</mark>" và các công cụ khác có thể được sử dụng để chụp ảnh đĩa.
2. **Selecting Tools:** Nhiều công cụ mã nguồn mở và thương mại có sẵn để khôi phục các tập tin đã xóa. The `Sleuth Kit (TSK)`, `TestDisk`, `Photorec`, `Foremost` hoặc các công cụ dành riêng cho các loại đĩa (ví dụ: `ext3grep`) thường được sử dụng trong Linux để khôi phục các tập tin đã xóa.
3. **File System Analysis:** Các công cụ quét ảnh đĩa để tìm các tập tin đã xóa, kiểm tra các bảng hệ thống tập tin và các dấu phân bổ.
4. **Detecting and Recovering Deleted Files:** Khi các tập tin đã xóa được định vị, các công cụ khôi phục có thể khôi phục chúng đến một vị trí an toàn để phân tích. Quá trình này phụ thuộc vào việc dữ liệu vật lý của tập tin vẫn còn tồn tại trên đĩa hay nó đã bị ghi đè hay chưa.

### 3.4. Data Recovery from a Disk in "Ext3" Format

"<mark style="color:red;">`Ext3grep`</mark>" là một công cụ khôi phục tập tin được thiết kế đặc biệt cho các hệ thống tập tin Ext3 được sử dụng trong hệ điều hành Linux.&#x20;

Công cụ này có thể khôi phục các tập tin, thư mục đã xóa và nội dung của chúng dựa trên các tham số như dấu thời gian cụ thể, tên tập tin hoặc loại tập tin.&#x20;

Trong quá trình khôi phục tập tin, "<mark style="color:red;">`ext3grep`</mark>" tìm kiếm dữ liệu đã xóa và khôi phục các tập tin được tìm thấy.

1. Cài đặt gói "<mark style="color:red;">`ext3grep`</mark>"

```bash
apt install ext3grep
```

2. Capture an image of the disk nơi các tập tin đã xóa sẽ được khôi phục.

```bash
dd if=/dev/sdb1 of=/root/forensic.dd status=progress bs=8k
```

```bash
uname -a
```

```bash
df -hT
```

<figure><img src="/files/9mPUn8PNp8ed5sWGToA4" alt=""><figcaption></figcaption></figure>

3. Sử dụng tham số "<mark style="color:red;">`--dump-name`</mark>" để xem tất cả các tập tin trong ảnh.

```bash
ext3grep --dump-name forensic.dd
```

<figure><img src="/files/S1WUNySFRwJHToRvwRqU" alt=""><figcaption></figcaption></figure>

4. Sử dụng tham số "<mark style="color:red;">`--restore-all`</mark>" để khôi phục tất cả các tập tin từ ảnh

```bash
ext3grep --restore-all forensic.dd
```

Các tập tin đã khôi phục được thêm vào dưới thư mục "RESTORED\_FILES".

<figure><img src="/files/tZR5B7j9goS32nWvISqb" alt=""><figcaption></figcaption></figure>

Sau khi khôi phục tập tin bằng "<mark style="color:red;">`ext3grep`</mark>" trên một hệ thống Linux, dữ liệu quan trọng có thể được khôi phục thành công, giảm đáng kể rủi ro mất dữ liệu trong các tình huống pháp y số, nơi cần khôi phục dữ liệu bị xóa hoặc bị hỏng do tai nạn.

## 4. Linux Configuration Files

Các tệp hệ thống Linux rất quan trọng cho hoạt động, cấu hình và quản lý các hệ điều hành Linux. Trong phân tích pháp y, các tệp này cung cấp thông tin quan trọng để hiểu các hoạt động của hệ thống, hành vi người dùng và các vi phạm bảo mật tiềm ẩn.

### 4.1. <mark style="color:blue;">**`/etc/passwd`**</mark>

Tệp này chứa các chi tiết cơ bản về tài khoản người dùng trên hệ thống như username, UID, GID, home directory và shell mặc định để tạo điều kiện thuận lợi cho việc cấu hình và xác định tài khoản người dùng.

* **Phát hiện tài khoản người dùng trái phép:** Tệp <mark style="color:blue;">`/etc/passwd`</mark> chứa tất cả các tài khoản người dùng được xác định trên hệ thống và giúp xác định người dùng nào đã tạo tài khoản. Nếu một người dùng độc hại đã được thêm vào hoặc một tài khoản người dùng đã bị thay đổi một cách đáng ngờ, đây có thể là dấu hiệu của một vi phạm bảo mật.
* **Giám sát hoạt động của người dùng trên hệ thống:** Các hoạt động được thực hiện thông qua tài khoản người dùng giúp hiểu các hoạt động của hệ thống và việc sử dụng độc hại tiềm ẩn.
* **Môi trường và hành vi của người dùng:** <mark style="color:blue;">`/etc/passwd`</mark> cung cấp thông tin về thư mục chính và shell mặc định của người dùng. Điều này có thể được sử dụng để hiểu cách người dùng tương tác với hệ thống và những hoạt động họ thực hiện.

Nội dung tệp ví dụ như trong hình bên dưới:

<figure><img src="/files/rZkCxAlUI596rodKm7uq" alt=""><figcaption></figcaption></figure>

Mỗi dòng trong tệp "<mark style="color:blue;">`/etc/passwd`</mark>" có cấu trúc sau:

```
username:x:user_id:group_id:real_name:user_home_directory:user_shell
```

* **username:** Tên được sử dụng bởi người dùng để đăng nhập vào hệ thống.
* **x:** Chỗ giữ chỗ nơi mật khẩu được mã hóa đã được lưu trữ trong những thời điểm trước đây. Vì lý do bảo mật, nó thường được biểu thị bằng "x" hiện nay, với mật khẩu được mã hóa thực tế được lưu trữ trong tệp "<mark style="color:blue;">`/etc/shadow`</mark>".
* **user\_id (UID):** Mã định danh duy nhất cho mỗi người dùng. Đối với người dùng "root", giá trị này thường là "0".
* **group\_id (GID):** Số của nhóm chính của người dùng. Nhóm người dùng và quyền được quản lý bằng số này.
* **real\_name:** Tên thật hoặc mô tả của người dùng. Trường này là tùy chọn và có thể chứa thông tin bổ sung về người dùng.
* **user\_home\_directory:** Đường dẫn đến home directory của người dùng. Khi người dùng đăng nhập, thư mục này sẽ tự động được đặt làm thư mục làm việc.
* **user\_shell:** Đường dẫn đến shell dòng lệnh của người dùng. Điều này xác định giao diện dòng lệnh mà người dùng sẽ sử dụng khi truy cập hệ thống.

### 4.2. <mark style="color:blue;">**`/etc/shadow`**</mark>

Nó lưu trữ các phiên bản băm của mật khẩu người dùng và chỉ có thể truy cập được bởi root. Phân tích tệp "/etc/shadow" là quan trọng trong các cuộc điều tra pháp y số.

* **Phân tích bảo mật mật khẩu:** Tính đầy đủ của các chính sách mật khẩu và độ phức tạp của mật khẩu là cơ bản cho bảo mật hệ thống. Việc sử dụng mật khẩu yếu hoặc mặc định có thể chỉ ra những điểm yếu bảo mật tiềm ẩn.
* **Nỗ lực bẻ khóa các giá trị hash:** Kiểm tra các tình huống mà kẻ tấn công có thể đã có được các giá trị hash mật khẩu và cố gắng bẻ khóa chúng.
* **Trạng thái tài khoản:** Tệp "<mark style="color:blue;">`/etc/shadow`</mark>" cũng bao gồm trạng thái của tài khoản người dùng, chẳng hạn như tạm thời tắt tài khoản, mật khẩu hết hạn hoặc tài khoản bị khóa. Những chi tiết này là rất quan trọng để hiểu những thay đổi được thực hiện trong hoặc sau một cuộc tấn công.
* **Truy cập hoặc sửa đổi trái phép:** Các thay đổi bất ngờ trong tệp, truy cập trái phép hoặc các hoạt động độc hại có thể là dấu hiệu của ý định xấu. Ví dụ, một kẻ tấn công có quyền truy cập vào hệ thống có thể cố gắng giành quyền truy cập liên tục bằng cách thay đổi các giá trị hash mật khẩu.

Nội dung tệp ví dụ như trong hình bên dưới:

<figure><img src="/files/LO8dK9EZTbp5jy1m7YaM" alt=""><figcaption></figcaption></figure>

Mỗi dòng trong tệp "/etc/shadow" có cấu trúc sau:

```
username:password_hash:time:minimum:maximum:warning:inactivity:expiration_date
```

* **username:** Tên của người dùng trên hệ thống, khớp với nội dung của tệp "<mark style="color:blue;">`/etc/passwd`</mark>".
* **password\_hash:** Mật khẩu được mã hóa của người dùng. Đây không phải là mật khẩu thực tế, mà là giá trị hash được tính bằng một hàm hash.
* **time:** Tổng số ngày kể từ ngày 1 tháng 1 năm 1970 khi mật khẩu được thay đổi lần cuối (Unix timestamp).
* **minimum:** Số ngày tối thiểu mà người dùng phải đợi trước khi thay đổi mật khẩu của họ.
* **maximum:** Số ngày tối đa mà người dùng có thể giữ mật khẩu trước khi thay đổi nó.
* **warning:** Số ngày trước khi mật khẩu hết hạn khi người dùng được cảnh báo.
* **inactivity:** Số ngày sau khi mật khẩu hết hạn trước khi tài khoản trở nên không hoạt động.
* **expiration\_date:** Ngày mà tài khoản sẽ hết hạn, được biểu thị bằng số ngày kể từ ngày 1 tháng 1 năm 1970.

### 4.3. <mark style="color:blue;">`/etc/group`</mark>

Nó liệt kê các nhóm trên hệ thống và những người dùng thuộc mỗi nhóm. Mỗi nhóm có các quyền cụ thể đối với các tài nguyên hệ thống.

Trong phân tích pháp y số, nó được sử dụng để kiểm tra tư cách thành viên nhóm và các phân công nhóm có thể không được phép.

* **Phát hiện các phân công nhóm trái phép:** Điều tra các tình huống mà kẻ tấn công có thể đã thêm mình vào các nhóm đặc quyền để nâng cao quyền của họ.
* **Kiểm tra các điều khiển truy cập dựa trên nhóm:** Việc kiểm tra chi tiết tư cách thành viên nhóm giúp hiểu ai có quyền truy cập vào tài nguyên hệ thống và phát hiện truy cập trái phép.

Nội dung tệp ví dụ như trong hình bên dưới:

<figure><img src="/files/KfHlf6JwtP8sA9VNCYoh" alt=""><figcaption></figcaption></figure>

Mỗi dòng trong tệp "<mark style="color:blue;">`/etc/group`</mark>" có cấu trúc sau:

```
group_name:x:group_id:group_members
```

* **group\_name:** Tên của nhóm, phải là duy nhất trên hệ thống.
* **x:** Trong quá khứ, trường này thường chứa mật khẩu của nhóm. Trong các hệ thống hiện đại, nó thường được điền bằng ký tự 'x' và mật khẩu nhóm được lưu trữ ở nơi khác.
* **group\_id (GID):** Mã định danh duy nhất cho mỗi nhóm, được sử dụng để quản lý các quyền dựa trên nhóm trên hệ thống.
* **group\_members:** Danh sách các tên người dùng được phân tách bằng dấu phẩy của một nhóm được xác định bằng "group\_id". Những người dùng này là thành viên của nhóm.

### 4.4. <mark style="color:blue;">`/etc/sudoers`</mark>

Nó xác định những lệnh mà người dùng hoặc nhóm có thể thực thi với quyền "root" bằng lệnh "sudo". Thông thường, nó được kiểm tra để hiểu các chính sách ủy quyền trên hệ thống và xác định các ủy quyền sudo có khả năng không được phép.

* **Kiểm tra chính sách ủy quyền:** Việc hiểu các cấp ủy quyền và quyền của người dùng trên hệ thống là rất quan trọng để xác định các vi phạm bảo mật.
* **Phát hiện các ủy quyền "sudo" trái phép:** Sử dụng nó để điều tra các ủy quyền được thêm hoặc sửa đổi có thể ảnh hưởng đến các cấp độ kiểm soát trên hệ thống.

Nội dung tệp ví dụ như trong hình bên dưới:

<figure><img src="/files/J1zNWfSW2BGYLF8LBhwa" alt=""><figcaption></figcaption></figure>

### 4.5. <mark style="color:blue;">`/etc/crontab`</mark>

Nó xác định các tác vụ theo lịch trình (cron jobs) trên hệ thống và chứa các lệnh và tập lệnh sẽ tự động chạy vào những thời điểm cụ thể.

<mark style="color:blue;">`/etc/crontab`</mark> là điều cần thiết để phát hiện các tập lệnh và lệnh đáng ngờ hoặc độc hại được thực thi tự động. Kẻ tấn công thường sử dụng các tác vụ theo lịch trình để duy trì quyền truy cập dài hạn vào hệ thống hoặc tự động hóa các hoạt động độc hại.

* **Phát hiện các tác vụ tự động độc hại:** Các tập lệnh hoặc lệnh độc hại được thêm bởi kẻ tấn công có thể được lưu trữ trong tệp này.
* **Hiểu các hoạt động tự động trên hệ thống:** Việc phân tích chi tiết các quy trình tự động trên hệ thống là rất quan trọng để theo dõi dấu vết của kẻ tấn công và hiểu những thay đổi được thực hiện đối với hệ thống.
* **Malware và Backdoors:** Kẻ tấn công có thể thêm các tác vụ ẩn vào tệp "<mark style="color:blue;">`/etc/crontab`</mark>" để duy trì sự tồn tại trên hệ thống và thường xuyên tham gia vào các hoạt động độc hại. Do đó, các mục đáng ngờ trong tệp có thể cho biết sự hiện diện của phần mềm độc hại hoặc cửa hậu.

Nội dung tệp ví dụ như trong hình bên dưới:

<figure><img src="/files/QThfZwJJkvx1s826nSW4" alt=""><figcaption></figcaption></figure>

* **SHELL:** Chỉ định shell nơi các cron job sẽ được thực thi. Ví dụ: "/bin/sh".
* **PATH:** Chỉ định các đường dẫn nơi các tệp lệnh sẽ được tìm kiếm khi các cron job được thực thi.
* **minute:** Chỉ định phút (0 - 59) của mỗi giờ khi cron job sẽ chạy.
* **hour:** Chỉ định giờ (0 - 23) của ngày khi cron job sẽ chạy.
* **day of month:** Chỉ định ngày trong tháng (1 - 31) khi cron job sẽ chạy.
* **month:** Chỉ định tháng (1 - 12 hoặc chỉ hiển thị là Jan, Feb, Mar, Apr, v.v.) khi cron job sẽ chạy.
* **day of week:** Chỉ định ngày trong tuần (0 - 6, trong đó Chủ nhật có thể là 0 hoặc 7, hoặc chỉ hiển thị là Sun, Mon, Tue, v.v.) khi cron job sẽ chạy.
* **user-name:** Chỉ định tên người dùng mà cron job sẽ chạy dưới.
* **command to be executed:** Chỉ định lệnh hoặc tập lệnh sẽ được thực thi.

Các ví dụ được hiển thị bên dưới:

<figure><img src="/files/Xms1s1baHyTMP4iOFMgp" alt=""><figcaption></figcaption></figure>

## 5. Linux System Files

Trong hệ điều hành Linux, có một số tệp hệ thống cần được phân tích cho các cuộc điều tra pháp lý số. Phân tích các tệp hệ thống này có thể cung cấp thông tin về hoạt động trên hệ thống. Trong phần trước chúng ta đã phân tích các tệp cấu hình khác nhau trong thư mục "<mark style="color:blue;">**`/etc`**</mark>".&#x20;

### 5.1. “<mark style="color:blue;">`.ssh/authorized_keys`</mark>”

Trong pháp lý số, phân tích tệp "<mark style="color:blue;">`~/.ssh/authorized_keys`</mark>" đóng một vai trò quan trọng trong việc phát hiện các lỗ hổng bảo mật tiềm ẩn, truy cập trái phép hoặc các nỗ lực tấn công. Tệp này, nằm trong thư mục "<mark style="color:blue;">`home`</mark>" của người dùng, tiết lộ những người dùng và keys nào được ủy quyền cho truy cập từ xa.

Tệp "<mark style="color:blue;">`authorized_keys`</mark>" chứa các khóa công khai được ủy quyền cho truy cập SSH từ xa. Việc thêm khóa công khai vào tệp "<mark style="color:blue;">`~/.ssh/authorized_keys`</mark>" của người dùng cho phép chủ sở hữu khóa riêng tương ứng truy cập vào tài khoản người dùng mà không cần sử dụng mật khẩu.

* **Phát hiện truy cập trái phép:** Tệp "<mark style="color:blue;">`.ssh/authorized_keys`</mark>" chứa các khóa công khai được cấp quyền truy cập SSH vào hệ thống của người dùng. Nếu một khóa công khai bất ngờ hoặc không xác định được thêm vào tệp này, nó có thể chỉ ra truy cập trái phép hoặc một nỗ lực để giành quyền truy cập bởi một cá nhân không được ủy quyền.
* **Đánh giá bảo mật hệ thống:** Số lượng và loại khóa trong tệp có thể cung cấp thông tin chi tiết về trạng thái bảo mật của hệ thống. Ví dụ: các khóa sử dụng các thuật toán yếu hoặc lỗi thời có thể chỉ ra các rủi ro bảo mật tiềm ẩn.
* **Lạm dụng hoặc các hoạt động độc hại:** Kẻ tấn công có thể đạt được và duy trì quyền truy cập từ xa bằng cách thêm các khóa công khai của chúng vào các tài khoản người dùng bị xâm phạm. Những sửa đổi như vậy có thể được coi là bằng chứng về lạm dụng hoặc các hoạt động độc hại.

Nội dung tệp mẫu:

<figure><img src="/files/W9UTAWl2JZaxERrQR0yi" alt=""><figcaption></figcaption></figure>

Nội dung của tệp "<mark style="color:blue;">`.ssh/authorized_keys`</mark>" tuân theo định dạng này cho mỗi dòng:

```
<key_type> <key_value> <comment>
```

* <mark style="color:red;">`key_type`</mark>: Chỉ định loại khóa SSH, chẳng hạn như ssh-rsa, ssh-dss, ecdsa-sha2-nistp256, ssh-ed25519.
* <mark style="color:red;">`key_value`</mark>: Hiển thị giá trị được mã hóa base64 của khóa công khai của người dùng, đây là một chuỗi văn bản dài.
* <mark style="color:red;">`comment`</mark>: Một nhận xét tùy chọn cho biết khóa được sử dụng cho ai hoặc thiết bị nào, thường được sử dụng làm địa chỉ email của chủ sở hữu.

### 5.2. “<mark style="color:blue;">`.bashrc`</mark>”

Trong pháp lý số, tệp "<mark style="color:blue;">`.bashrc`</mark>" cung cấp thông tin có giá trị để hiểu hành vi của người dùng, các tùy chỉnh được thực hiện trên hệ thống và các lệnh có khả năng độc hại.&#x20;

Ví dụ: các lệnh chỉ ra việc thực thi các tập lệnh cụ thể tại mỗi phiên terminal hoặc thiết lập các kết nối mạng nhất định có thể được tìm thấy trong tệp "<mark style="color:blue;">`.bashrc`</mark>".

**Kiểm tra tệp “**<mark style="color:blue;">**`.bashrc`**</mark>**”**

* **Tùy chỉnh của người dùng:** Người dùng cá nhân hóa quy trình làm việc bằng cách xác định bí danh, hàm và biến môi trường. Các tùy chỉnh này có thể cung cấp manh mối về cách người dùng tương tác với hệ thống.
* **Các lệnh được thực thi tự động:** "<mark style="color:blue;">`.bashrc`</mark>" có thể chứa các lệnh được đặt để thực thi tự động. Điều này rất quan trọng trong pháp lý số để xác định các hành động tự động tiềm ẩn hoặc dấu vết mà người dùng để lại trên hệ thống.
* **Các hành động độc hại:** Có những trường hợp người dùng hoặc kẻ tấn công có thể sửa đổi tệp ".bashrc" để lại tác động lâu dài lên hệ thống. Ví dụ: các lệnh khởi tạo phần mềm độc hại khi khởi động có thể được thêm vào.
* **Ngày truy cập và sửa đổi:** Ngày truy cập và sửa đổi cuối cùng của tệp "<mark style="color:blue;">`.bashrc`</mark>" có thể được sử dụng để tạo dòng thời gian các hoạt động của người dùng, đặc biệt hữu ích trong việc xác định thời điểm xảy ra vi phạm bảo mật.

**Sử dụng tệp "**<mark style="color:blue;">**`.bashrc`**</mark>**" trong pháp lý số**

* **Kiểm tra nội dung:** Lệnh "<mark style="color:red;">`cat ~/.bashrc`</mark>" hoặc một trình soạn thảo văn bản có thể được sử dụng để kiểm tra nội dung tệp.
* **Kiểm tra ngày sửa đổi:** Lệnh "<mark style="color:red;">`ls -la ~/.bashrc`</mark>" hiển thị ngày và giờ sửa đổi cuối cùng của tệp.
* **So sánh giữa các tài khoản người dùng:** So sánh các tệp "<mark style="color:blue;">`.bashrc`</mark>" giữa các tài khoản người dùng khác nhau có thể giúp phát hiện các điểm bất thường hoặc khác biệt.

Tóm lại, tệp "<mark style="color:blue;">`.bashrc`</mark>" là một thành phần quan trọng trong phân tích pháp lý Linux để hiểu hành vi của người dùng và các tương tác hệ thống. Nội dung của nó cung cấp những hiểu biết sâu sắc về các cuộc điều tra pháp lý, tiết lộ cách hệ thống được sử dụng và có khả năng phơi bày các hoạt động độc hại.

### 5.3. systemd and service

"<mark style="color:red;">`systemd`</mark>" là một hệ thống init và trình quản lý dịch vụ được sử dụng trong các bản phân phối Linux hiện đại. Nó có nhiều chức năng hơn hệ thống init "SysV" truyền thống, hợp lý hóa việc khởi động hệ thống và quản lý các phụ thuộc hiệu quả hơn.&#x20;

Trong pháp lý số, systemd và các lệnh liên quan của nó cung cấp các công cụ quan trọng để quản lý các services và đơn vị (unit), ghi nhật ký các sự kiện hệ thống và kiểm tra các quy trình khởi động hệ thống.

Với <mark style="color:red;">`systemd`</mark>, các dịch vụ hệ thống được quản lý bằng các tệp có phần mở rộng "<mark style="color:blue;">`.service`</mark>". Phân tích pháp lý có thể kiểm tra thông tin như danh sách các dịch vụ đang chạy, trạng thái của chúng và thời gian bắt đầu (bao gồm cả việc chúng có tự động khởi động khi khởi động lại hay không) để xác định hoạt động độc hại tiềm ẩn hoặc hành vi hệ thống bất thường.

Dưới đây là một số lệnh liên quan đến các dịch vụ:

* <mark style="color:red;">`systemctl status`</mark>: Hiển thị trạng thái của tất cả các dịch vụ và đơn vị trên hệ thống.
* <mark style="color:red;">`systemctl list-units --type=service`</mark>: Liệt kê tất cả các dịch vụ đang chạy.
* <mark style="color:red;">`journalctl -u <service-name>`</mark>: Hiển thị các mục nhật ký liên quan đến một dịch vụ cụ thể.

### 5.4. <mark style="color:blue;">`/tmp`</mark> or <mark style="color:blue;">`/var/tmp`</mark>

Kẻ tấn công thường sử dụng các thư mục "<mark style="color:blue;">`/tmp`</mark>" hoặc "<mark style="color:blue;">`/var/tmp`</mark>" để thực hiện các hoạt động độc hại trên hệ thống. Các thư mục này thường có các quyền ghi lỏng lẻo hơn, giúp kẻ tấn công dễ dàng tải lên phần mềm, công cụ hoặc tập lệnh độc hại. Các tệp như vậy có thể cung cấp manh mối về bản chất và phương pháp của một cuộc tấn công.

Các ví dụ về lệnh có thể được sử dụng cho hệ điều hành Linux bao gồm:

* <mark style="color:red;">`ls`</mark>: Liệt kê nội dung thư mục. Khi được sử dụng với các tham số "<mark style="color:red;">`-lart`</mark>", nó hiển thị danh sách chi tiết các tệp được sắp xếp theo thời gian tạo/sửa đổi:
  * Lệnh: <mark style="color:red;">`ls -lart /tmp`</mark>
  * Lệnh: <mark style="color:red;">`ls -lart /var/tmp`</mark>
* <mark style="color:red;">`find`</mark>: Tìm kiếm các tệp thuộc một loại cụ thể. Ví dụ: các tệp có phần mở rộng như `.php`, `.py` hoặc `.sh` thường được kẻ tấn công sử dụng:
  * Lệnh: <mark style="color:red;">`find /tmp -name '*.php'`</mark>
  * Lệnh: <mark style="color:red;">`find /var/tmp -name '*.sh'`</mark>
* <mark style="color:red;">`grep`</mark>: Tìm kiếm các từ hoặc chuỗi cụ thể trong nội dung tệp. Điều này hữu ích cho việc tìm kiếm các tệp chứa các lệnh độc hại, địa chỉ IP hoặc tên người dùng cụ thể:
  * Lệnh: <mark style="color:red;">`grep -R "malicious_code" /tmp`</mark>
  * Lệnh: <mark style="color:red;">`grep -R "192.168.1.1" /var/tmp`</mark>
* <mark style="color:red;">`find`</mark>: Tìm kiếm các tệp dựa trên thời gian sửa đổi hoặc truy cập cuối cùng của chúng. Điều này giúp lọc các tệp dựa trên một khung thời gian cụ thể của một sự kiện:
  * Lệnh: <mark style="color:red;">`find /tmp -mtime -2`</mark> # Các tệp được sửa đổi trong 2 ngày qua
  * Lệnh: <mark style="color:red;">`find /var/tmp -atime -`</mark>`2` # Các tệp được truy cập trong 2 ngày qua
* <mark style="color:red;">`find`</mark>: Tìm các tệp lớn chiếm dung lượng đĩa. Điều này có thể hữu ích để phát hiện các tệp độc hại lớn hoặc các tệp thu thập dữ liệu được cài đặt bởi kẻ tấn công:
  * Lệnh: <mark style="color:red;">`find /tmp -size +10M`</mark> # Tìm các tệp lớn hơn 10MB
  * Lệnh: <mark style="color:red;">`find /var/tmp -size +10M`</mark>
* <mark style="color:red;">`find`</mark>: Tìm các tệp có quyền không chính xác (ví dụ: có thể ghi toàn cầu). Điều này quan trọng để phát hiện các lỗ hổng bảo mật:
  * Lệnh: <mark style="color:red;">`find /tmp -type f -perm -o=w`</mark>
  * Lệnh: <mark style="color:red;">`find /var/tmp -type f -perm -o=w`</mark>

<figure><img src="/files/SXHQYgsSITP1AUG2vG4o" alt=""><figcaption></figcaption></figure>

Các lệnh này rất mạnh mẽ để điều tra các mối đe dọa bảo mật tiềm ẩn, hoạt động độc hại và việc sử dụng tệp tạm thời trên Linux. Mỗi lệnh phục vụ một mục đích cụ thể trong quá trình phân tích. Cùng nhau, chúng cung cấp một cái nhìn toàn diện về hoạt động đáng ngờ hoặc độc hại trên hệ thống.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://viettaliii.gitbook.io/home/soc-and-dfir/dfir/digital-forensics-on-linux.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
