Files
2025-09-25 04:02:54 +08:00

94 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
### 如何删除 Linux 机器的入侵痕迹
**1. 消除日志文件中的痕迹**
日志文件是系统管理员和安全团队发现入侵的最主要线索。因此,这是痕迹清理的首要目标
- **识别和清理日志**:攻击者在入侵后,通常会在以下几个核心日志文件中留下痕迹:
- `/var/log/auth.log``/var/log/secure`:记录用户的登录和认证信息
- `/var/log/lastlog`:记录所有用户的最后一次登录时间
- `/var/log/wtmp``/var/run/utmp`:记录用户的登录/登出历史
- `/var/log/cron`:记录定时任务(Cron)的执行情况
- **清理方法**
- **方法一:使用工具**。你可以使用像 **`auditd`** 这样的工具来监控和篡改日志
- **方法二:手动清理**。用 **`vim`** 或 **`nano`** 等文本编辑器打开日志文件,删除你的操作记录。然后,使用 `> filename` 命令清空日志文件,或者使用 `dd` 命令来删除特定行
```bash
# 示例:清空 auth.log
> /var/log/auth.log
```
- **方法三:使用 `history -c`**。清除当前会话的 Bash 历史记录。此外,你还需要手动删除 `.bash_history` 文件中的记录
```bash
history -c
rm /root/.bash_history
```
- **方法四:使用 `sed`**。这是一种更精确的方法,你可以使用 `sed` 命令删除包含特定关键词的行,而不影响其他日志
```bash
# 示例:删除包含 IP 地址 1.2.3.4 的行
sed -i '/1.2.3.4/d' /var/log/auth.log
```
- **重要提示**:在进行任何操作前,最好以最小权限的账户进行,并立即在完成操作后清理该账户的痕迹
**2. 删除恶意文件和后门**
入侵成功后,攻击者通常会在系统中植入后门程序或 WebShell,以保持持久化访问
- **查找恶意文件**
- **按时间戳查找**:使用 `find` 命令查找在你入侵时间段内被修改过的文件。这通常是发现后门文件最有效的方法
```bash
# 示例:查找过去 24 小时内修改过的文件
find / -mtime 0 -type f -print
```
- **按文件名或类型查找**:查找常见的后门文件名,如 `.php`、`.jsp`、`.sh`,或者包含特定字符串的文件。
```bash
# 示例:查找所有以 .jsp 结尾的文件
find / -name "*.jsp"
```
- **删除文件**:找到可疑文件后,使用 `rm` 命令将其彻底删除
**3. 清理已创建的用户和计划任务**
为了保持持久化,攻击者可能会创建新的用户账户或设置定时任务
- **删除用户**
- 检查 `/etc/passwd` 和 `/etc/shadow` 文件,删除任何可疑的新用户
- 使用 `userdel` 命令删除用户账户,并加上 `-r` 参数同时删除其主目录
```bash
userdel -r maluser
```
- **清理计划任务**
- 检查 `crontab -l` 命令的输出,删除任何可疑的定时任务
- 检查 `/etc/cron.*` 目录下的所有文件,以及 `/var/spool/cron/` 目录下的用户 crontab 文件。
**4. 消除其他关键痕迹**
还有一些其他关键的痕迹需要清理,这些往往被忽略
- **SSH 密钥**:检查 `~/.ssh/authorized_keys` 文件,删除任何你添加的公钥
- **隐藏文件**:检查你的主目录或系统目录中是否有以 `.` 开头的隐藏文件
```bash
ls -al /home/
```
- **清除缓存**:清除系统和应用程序的缓存文件