可能重复:
我的服务器被黑了 紧急求助
突然,ssh 声称我的服务器上的密钥已更改。
由于密钥更改,甚至 freenx 也不再接受我的连接。
无论如何,上面没有什么重要的东西。
但我如何验证它是否已被破坏?
谢谢
答案1
需要注意的是,还有其他良性因素也可能导致这种密钥更改。
例如,大多数 SSH 客户端都会根据主机名和指纹建立缓存。我在工作中经常遇到这个问题,因为它涉及很多使用相同 IP(但位于不同网络)的机器,因此我的 ssh 客户端只存储 IP 和指纹,而忽略了它位于不同网络(因此是不同的机器)的事实(嘿,它怎么会知道?)。如果您重新安装了系统(密钥通常在安装期间生成),或者主机名曾经指向您进入的另一台机器,您也会收到相同的警告。
当密钥发生改变,而机器保持不变时,您应该回想一下这种改变是否有任何原因。您最近一直在摆弄 sshd 吗?如果重新安装/重新编译 sshd,某些发行版会生成新密钥。
如果以上情况都不属实,那么可能的情况是有人在进行中间人攻击。简单来说,就是一台机器冒充您的服务器,以便在您尝试登录时获取您的登录信息。要实现这一点,有人必须伪造您的机器地址/主机名,或者控制您和您的机器之间的数据传输点(路由器、网桥等)。
如果你进入了机器(通过适当的命令行切换到你的 ssh 客户端,或者从 /home/username/.ssh/known_hosts 中删除有问题的密钥),那么我对入侵检测的初步检查将是:
- 查找 /etc/ -mtime -3(查找 /etc/ 中过去 3 天内发生变化的任何文件。调整数字以确保它与问题开始时的时间重叠)
- 检查 /var/log 中的相应日志(安全、消息等)
- 检查是否有其他人登录到你的系统
- 使用上面列出的 find 命令来搜索你的 web-root 中不应该存在的更改(在 php 脚本中安装后门是获取未经授权访问的常用方法)
如果您可以物理访问该机器,我会进入其键盘/显示器,然后重新启动进入单用户模式。这可确保您在执行这些检查时只有您在系统上。
确认入侵后,第一步是清理系统。由于系统上没有重要的东西,最好的方法是完全重新安装,因为很难清理长期处于他人控制之下的系统。(他们曾多次安装大量后门以确保他们保持未经授权的访问)。
第二步是追踪系统最初是如何被入侵的,以确保这种情况不会再次发生。
答案2
我假设你正在使用 Linux,如果是这样,第一步是使用亨特检查是否有任何文件更改或感染。