### 如何删除 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` 命令来删除特定行

        # 示例：清空 auth.log
        > /var/log/auth.log

  - 方法三：使用 `history -c`。清除当前会话的 Bash 历史记录。此外，你还需要手动删除 `.bash_history` 文件中的记录

        history -c
        rm /root/.bash_history

  - 方法四：使用 `sed`。这是一种更精确的方法，你可以使用 `sed` 命令删除包含特定关键词的行，而不影响其他日志

        # 示例：删除包含 IP 地址 1.2.3.4 的行
        sed -i '/1.2.3.4/d' /var/log/auth.log

- 重要提示：在进行任何操作前，最好以最小权限的账户进行，并立即在完成操作后清理该账户的痕迹

2. 删除恶意文件和后门

入侵成功后，攻击者通常会在系统中植入后门程序或 WebShell，以保持持久化访问

- 查找恶意文件：

  - 按时间戳查找：使用 `find` 命令查找在你入侵时间段内被修改过的文件。这通常是发现后门文件最有效的方法

        # 示例：查找过去 24 小时内修改过的文件
        find / -mtime 0 -type f -print

  - 按文件名或类型查找：查找常见的后门文件名，如 `.php`、`.jsp`、`.sh`，或者包含特定字符串的文件。

        # 示例：查找所有以 .jsp 结尾的文件
        find / -name "*.jsp"

- 删除文件：找到可疑文件后，使用 `rm` 命令将其彻底删除

3. 清理已创建的用户和计划任务

为了保持持久化，攻击者可能会创建新的用户账户或设置定时任务

- 删除用户：

  - 检查 `/etc/passwd` 和 `/etc/shadow` 文件，删除任何可疑的新用户

  - 使用 `userdel` 命令删除用户账户，并加上 `-r` 参数同时删除其主目录

        userdel -r maluser

- 清理计划任务：

  - 检查 `crontab -l` 命令的输出，删除任何可疑的定时任务
  - 检查 `/etc/cron.*` 目录下的所有文件，以及 `/var/spool/cron/` 目录下的用户 crontab 文件。

4. 消除其他关键痕迹

还有一些其他关键的痕迹需要清理，这些往往被忽略

- SSH 密钥：检查 `~/.ssh/authorized_keys` 文件，删除任何你添加的公钥

- 隐藏文件：检查你的主目录或系统目录中是否有以 `.` 开头的隐藏文件

      ls -al /home/

- 清除缓存：清除系统和应用程序的缓存文件