如何清理被黑的用户账户(非root)?

如何清理被黑的用户账户(非root)?

因此,我设置了一个 Linux 服务器,但忘记禁用明文 ssh 密码或安装拒绝主机或启用任何类型的密码策略。通常我会使用拒绝主机,而且效果很好。由于错过了这个重要步骤(是的,我应该自动执行该过程),一个密码较弱的用户被黑客入侵了。现在假设一般权限良好,我该怎么做才能找出他们做了什么并将其删除?

顺便说一句,我本质上是一名程序员,而不是系统管理员,所以请多包涵!

答案1

您永远无法完全确定他们在用户帐户上做了什么。但可以从主目录中的 .*history 文件开始。

我的建议是复印已知的良好/重要数据,然后销毁其余数据。入侵者可能在配置文件、.bashrc 等中留下任何令人讨厌的意外信息。

您还应该检查系统上是否有该用户拥有的文件并查找正在运行的进程:

# find / -user USERNAME
# ps -a -u USERNAME

未来,我建议开启进程记账。然后您可以使用“lastcomm”检查之前运行的命令。

答案2

如果您手边有备份,您可以将其与当前文件系统进行比较,以查看发生了什么变化。特别注意路径中通常存在的目录,例如 /bin、/usr/bin、/usr/local/bin、/sbin、/usr/sbin、/usr/local/sbin、/opt/bin 等。

还要寻找rootkit:Windows rootkit 检测和删除工具列表

但您无法确定他们所做的一切都已找到。最好回到已知的良好状态(例如,上次备份),并随身携带经过仔细检查的自那时以来已更改的数据。更好的方法是擦除系统,并在将其连接到网络之前安装 IDS。

除非您正在运行助手或绊线或类似的东西,否则您没有太多其他选择。

答案3

如果疑似被入侵的账户没有特权,那么攻击者可能隐藏持久恶意软件的地方只有少数。妥善清理这些地方,无需彻底摧毁账户。

  1. 她将初始化文件:,,,,等.bashrc。对于非 bash shell,请检查相应的手册页。.bash_profile.profile.bash_login

  2. 如果系统使用 systemD,则还有另一个通过 systemd --user 实例的向量。用户定义的 systemD 单元进入~/.config~/.local [1]

  3. Cron 作业。取决于你的 cron 风格,但通常在/var/lib/...

  4. 桌面配置文件。通常在~/.config和中~/.local。为了安全起见,请删除这些目录。

  5. Pam_env 配置~/.pam_environment

还要注意,从正在运行的系统中执行清理并不安全,因为 systemD 允许通过登录来延迟用户,这意味着每次启动时都可能启动用户单元。幸运的是,攻击者需要安装 polkit 才能延迟受感染的用户... 如果您有 polkit,那么您将陷入痛苦之中 :)

因此,最好通过将 init=/bin/bash 传递给内核命令行来从 initramfs 中执行清理。

[1]https://wiki.archlinux.org/index.php/Systemd/User

答案4

清除用户帐户,移动重要数据(如果有)。检查用户命令历史记录,查看是否运行了任何脚本或任何非必需命令。从系统中删除用户并删除主目录。检查是否设置了任何 cronjobs。详细检查所有进程,查看受感染帐户是否设置了任何后台进程。

希望能帮助到你。

相关内容