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

446 lines
22 KiB
Markdown
Raw Normal View History

# Linux取证
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
\
使用[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)轻松构建和**自动化工作流程**,使用世界上**最先进**的社区工具。\
2023-08-03 19:12:22 +00:00
立即获取访问权限:
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>
<summary><strong>从零开始学习AWS黑客技术成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
支持HackTricks的其他方式
2022-04-28 16:01:33 +00:00
* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**,请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
* 获取[**官方PEASS & HackTricks周边产品**](https://peass.creator-spring.com)
* 发现[**PEASS家族**](https://opensea.io/collection/the-peass-family),我们的独家[NFT](https://opensea.io/collection/the-peass-family)收藏品
* **加入** 💬 [**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) github仓库提交PR来分享您的黑客技巧。
2022-04-28 16:01:33 +00:00
</details>
2023-08-03 19:12:22 +00:00
## 初始信息收集
2020-12-25 10:22:35 +00:00
2023-08-03 19:12:22 +00:00
### 基本信息
2020-12-25 10:22:35 +00:00
首先,建议准备一些带有**已知良好二进制文件和库的USB**您可以使用Ubuntu并复制文件夹_/bin__/sbin__/lib_和_/lib64_然后挂载USB修改环境变量以使用这些二进制文件
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
```
2023-08-03 19:12:22 +00:00
#### 可疑信息
2020-12-25 10:22:35 +00:00
在获取基本信息时,应检查以下异常情况:
2020-12-25 22:25:37 +00:00
- **Root进程**通常以较低的PID运行因此如果发现一个具有较大PID的Root进程可能存在可疑情况
- 检查`/etc/passwd`中没有shell的用户的**注册登录**
- 检查`/etc/shadow`中没有shell的用户的**密码哈希值**
2020-12-25 22:25:37 +00:00
2023-08-03 19:12:22 +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`\
在其他情况下您需要从github下载[**LiME**](https://github.com/504ensicsLabs/LiME),并使用正确的内核头文件编译它。要**获取受害机器的确切内核头文件**,只需将目录`/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
- 原始(每个段连接在一起)
- 填充(与原始相同,但右位填充为零)
- Lime推荐的带有元数据的格式
2020-12-25 21:41:10 +00:00
LiME还可以用于通过网络发送转储而不是将其存储在系统上使用类似以下的内容`path=tcp:4444`
2020-12-25 22:03:49 +00:00
### 磁盘成像
2020-12-25 22:03:49 +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
```
### 磁盘镜像预分析
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-08-03 19:12:22 +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-08-03 19:12:22 +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-08-03 19:12:22 +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-08-03 19:12:22 +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-08-03 19:12:22 +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
\
使用[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)轻松构建和**自动化工作流**,利用世界上**最先进**的社区工具。\
2023-08-03 19:12:22 +00:00
立即获取访问权限:
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$"`(在使用 `apt-get install debsums` 安装 `debsums` 后)来识别任何问题。
### 恶意软件/Rootkit检测器
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
2023-08-03 19:12:22 +00:00
## 搜索已安装的程序
2020-12-23 19:52:25 +00:00
要有效地搜索Debian和RedHat系统上已安装的程序考虑在常见目录中手动检查的同时利用系统日志和数据库。
2020-12-23 19:52:25 +00:00
- 对于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).png" alt=""><figcaption></figcaption></figure>
\
使用[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)轻松构建并**自动化**由全球**最先进**的社区工具驱动的工作流程。\
立即获取访问权限:
{% 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
```
2023-08-03 19:12:22 +00:00
## 检查自启动位置
2020-12-23 20:08:45 +00:00
2023-08-03 19:12:22 +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/
```
2023-08-03 19:12:22 +00:00
### 服务
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 20:08:45 +00:00
2020-12-23 22:44:17 +00:00
2023-08-03 19:12:22 +00:00
### 内核模块
2020-12-23 22:44:17 +00:00
Linux内核模块恶意软件常用作rootkit组件在系统启动时加载。关键用于这些模块的目录和文件包括
- **/lib/modules/$(uname -r)**:保存运行的内核版本的模块。
- **/etc/modprobe.d**:包含用于控制模块加载的配置文件。
- **/etc/modprobe** 和 **/etc/modprobe.conf**:全局模块设置的文件。
2020-12-23 22:44:17 +00:00
### 其他自启动位置
2020-12-23 22:44:17 +00:00
Linux使用各种文件在用户登录时自动执行程序可能隐藏恶意软件
2020-12-23 22:44:17 +00:00
- **/etc/profile.d/**、**/etc/profile** 和 **/etc/bash.bashrc**:任何用户登录时执行。
- **~/.bashrc**、**~/.bash_profile**、**~/.profile** 和 **~/.config/autostart**:用户特定文件,在其登录时运行。
- **/etc/rc.local**:在所有系统服务启动后运行,标志着过渡到多用户环境的结束。
2020-12-23 22:44:17 +00:00
2023-08-03 19:12:22 +00:00
## 检查日志
2020-12-23 22:44:17 +00:00
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**记录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/**:始终检查意外日志。
2020-12-23 22:44:17 +00:00
{% hint style="info" %}
Linux系统日志和审计子系统可能在入侵或恶意软件事件中被禁用或删除。因为Linux系统的日志通常包含有关恶意活动的最有用信息入侵者经常删除它们。因此在检查可用的日志文件时重要的是查找可能表示删除或篡改的间隙或顺序不当的条目。
2020-12-23 22:44:17 +00:00
{% endhint %}
**Linux为每个用户维护一个命令历史记录**,存储在:
2020-12-23 22:44:17 +00:00
- ~/.bash_history
- ~/.zsh_history
- ~/.zsh_sessions/*
- ~/.python_history
- ~/.*_history
2020-12-27 00:27:13 +00:00
此外,`last -Faiwx` 命令提供用户登录列表。检查其中是否有未知或意外登录。
2020-12-27 00:27:13 +00:00
检查可能授予额外权限的文件:
- 检查 `/etc/sudoers` 是否授予了意外用户权限。
- 检查 `/etc/sudoers.d/` 是否授予了意外用户权限。
- 检查 `/etc/groups` 以识别任何异常的组成员或权限。
- 检查 `/etc/passwd` 以识别任何异常的组成员或权限。
2020-12-27 00:27:13 +00:00
一些应用程序还会生成自己的日志:
2020-12-27 00:28:02 +00:00
- **SSH**:检查 _~/.ssh/authorized_keys_ 和 _~/.ssh/known_hosts_ 是否存在未经授权的远程连接。
- **Gnome桌面**:查看 _~/.recently-used.xbel_ 以查找通过Gnome应用程序最近访问的文件。
- **Firefox/Chrome**:检查 _~/.mozilla/firefox__~/.config/google-chrome_ 中的浏览器历史记录和下载是否存在可疑活动。
- **VIM**:查看 _~/.viminfo_ 以获取使用详细信息,如访问的文件路径和搜索历史。
- **Open Office**:检查最近访问的文档,可能指示文件受到 compromise。
- **FTP/SFTP**:查看 _~/.ftp_history_ 或 _~/.sftp_history_ 中的日志,以查找可能未经授权的文件传输。
- **MySQL**:调查 _~/.mysql_history_ 中执行的MySQL查询可能揭示未经授权的数据库活动。
- **Less**:分析 _~/.lesshst_ 以获取使用历史,包括查看的文件和执行的命令。
- **Git**:检查 _~/.gitconfig_ 和项目 _.git/logs_ 以查看对存储库的更改。
2020-12-23 23:14:22 +00:00
2023-08-03 19:12:22 +00:00
### USB日志
2021-05-28 17:27:17 +00:00
[**usbrip**](https://github.com/snovvcrash/usbrip) 是一款纯Python 3编写的小型软件用于解析Linux日志文件取决于发行版可能是`/var/log/syslog*`或`/var/log/messages*`以构建USB事件历史表。
2021-05-28 17:27:17 +00:00
了解所有已使用的USB设备是很有趣的如果您有授权的USB设备列表将更有用以查找“违规事件”使用未在该列表中的USB设备
2021-05-28 17:27:17 +00:00
2023-08-03 19:12:22 +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
```
### 例子
```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
```
更多示例和信息请查看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).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 22:44:17 +00:00
检查 _**/etc/passwd**_、_**/etc/shadow**_ 和**安全日志**查找是否有异常名称或账户在已知未经授权事件附近创建或使用。还要检查可能的sudo暴力攻击。\
此外,检查像 _**/etc/sudoers**__**/etc/groups**_ 这样的文件,查看是否给用户授予了意外的特权。\
最后,查找没有密码或**易于猜测**密码的账户。
2020-12-23 22:44:17 +00:00
2023-08-03 19:12:22 +00:00
## 检查文件系统
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**的`mactime`获取详细的时间线数据。
- **调查系统的$PATH中的意外脚本**这些脚本可能包括攻击者使用的shell或PHP脚本。
- **检查`/dev`中的非典型文件**,因为它传统上包含特殊文件,但可能包含与恶意软件相关的文件。
- **搜索隐藏文件或目录**,名称类似 ".. "(点 点 空格)或 "..^G"(点 点 控制-G这些文件可能隐藏恶意内容。
- 使用以下命令**识别setuid root文件**
```find / -user root -perm -04000 -print```
这会找到具有提升权限的文件,可能会被攻击者滥用。
- **查看inode表中的删除时间戳**以发现大量文件删除可能表明存在rootkit或特洛伊木马。
- **检查相邻的inode**,在识别一个恶意文件后,查看附近的恶意文件,因为它们可能被放在一起。
- **检查常见的二进制目录**_/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**却**意外地更大**,那么该文件的**时间戳已被修改**。
2020-12-28 22:28:30 +00:00
{% endhint %}
2023-08-03 19:12:22 +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/
2021-01-06 15:28:14 +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
```
- **检测已删除的文件**
2023-08-03 19:12:22 +00:00
```bash
git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
2023-08-03 19:12:22 +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-08-03 19:12:22 +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)
* **书籍: Malware Forensics Field Guide for Linux Systems: Digital Forensics Field Guides**
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>从零开始学习 AWS 黑客技术,成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS 红队专家)</strong></a><strong></strong></summary>
2022-04-28 16:01:33 +00:00
您在**网络安全公司**工作吗? 您想在 HackTricks 中看到您的**公司广告**吗? 或者您想访问**PEASS 的最新版本或下载 HackTricks 的 PDF**吗? 请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
2022-04-28 16:01:33 +00:00
* 发现我们的独家 [**NFTs**](https://opensea.io/collection/the-peass-family) 集合 [**The PEASS Family**](https://opensea.io/collection/the-peass-family)
* 获取[**官方 PEASS & HackTricks 商品**](https://peass.creator-spring.com)
* **加入** [**💬**](https://emojipedia.org/speech-balloon/) **Discord 群组**](https://discord.gg/hRep4RUj7f) 或 **电报群组** 或在 **Twitter** 上关注我 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
2022-04-28 16:01:33 +00:00
**通过向** [**hacktricks 仓库**](https://github.com/carlospolop/hacktricks) **和** [**hacktricks-cloud 仓库**](https://github.com/carlospolop/hacktricks-cloud) **提交 PR 来分享您的黑客技巧。**
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
\
使用 [**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" %}