如何删除 Linux 机器的入侵痕迹

1. 消除日志文件中的痕迹

日志文件是系统管理员和安全团队发现入侵的最主要线索。因此,这是痕迹清理的首要目标

  • 识别和清理日志:攻击者在入侵后,通常会在以下几个核心日志文件中留下痕迹:

    • /var/log/auth.log/var/log/secure:记录用户的登录和认证信息
    • /var/log/lastlog:记录所有用户的最后一次登录时间
    • /var/log/wtmp/var/run/utmp:记录用户的登录/登出历史
    • /var/log/cron:记录定时任务(Cron)的执行情况
  • 清理方法

    • 方法一:使用工具。你可以使用像 auditd 这样的工具来监控和篡改日志

    • 方法二:手动清理。用 vimnano 等文本编辑器打开日志文件,删除你的操作记录。然后,使用 > 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/
    
  • 清除缓存:清除系统和应用程序的缓存文件

Copyright © 版权信息 all right reserved,powered by Gitbook该文件修订时间: 2025-09-25 03:13:07

results matching ""

    No results matching ""