我有一个运行 Ubuntu 14.04 的 Digital Ocean droplet。我用它在公共服务器上运行快速的 node.js 测试。我刚刚通过 SSH 登录并查看$ lsof -i
我正在使用的端口。在列表底部我注意到:
sshd 30952 root 3u IPv4 66978103 0t0 TCP xxx.xxx.xxx.xxx:ssh->120.52.72.81:7810 (ESTABLISHED)
sshd 30953 sshd 3u IPv4 66978103 0t0 TCP xxx.xxx.xxx.xxx:ssh->120.52.72.81:7810 (ESTABLISHED)
我没想到这些 ssh 连接(应该只有我才会这样!)所以我查了一下 IP 地址,发现它似乎在中国。那么我现在该怎么做才能检查这些 ssh 连接是否是恶意的,如果是,他们可能对服务器做了什么。我宁愿不删除它,但如果它已被入侵(因为他们有 root 访问权限,我猜它已被入侵!)那么也许这是最简单的做法。
更新:自从写下上述内容以来,我有 2 个不同的 SSH 连接,所以我推测它确实受到了损害。
sshd 31009 root 3u IPv4 66979206 0t0 TCP xxx.xxx.xxx.xxx:ssh->221.194.44.218:50829 (ESTABLISHED)
sshd 31010 sshd 3u IPv4 66979206 0t0 TCP xxx.xxx.xxx.xxx:ssh->221.194.44.218:50829 (ESTABLISHED)
如果有人可以建议一个合理的方法来检查妥协/清理它/看看发生了什么,那将会很有助于我学习(我真是个新手!)。
更新 2:这似乎不是妥协的迹象,而是暴力登录尝试的迹象 - 请参阅来自的评论@bodgit和@ultrajohn以下。
答案1
不,这不是妥协的证据。
互联网上的任何服务器都可能经常遭到暴力破解 SSH 和其他类型登录的尝试。这些类型的攻击是自动的,没有针对性。通常攻击的目的是安装一个机器人,该机器人可用于发送垃圾邮件或发起更多攻击。这些攻击通常基于字典。
显然,如果某个攻击者要尝试随机用户名和密码,他们首先会建立与您的 SSH 服务器的连接。这就是您在 lsof 中看到的内容(在 netstat 中也会看到)。
如果您想要检查是否存在泄露,请查看 wtmp(键入 who),并查看系统日志。系统日志中的审计记录(如“为用户 james 打开了会话”)会提供一些线索。
您还可以查找您不认识的用户,并检查流量和连接(该命令netstat -nvlp
很方便),以查看您的服务器是否正在运行意外的进程,例如发送电子邮件或发起与其他服务的连接。