我认为我的 Ubuntu 盒子被入侵了,黑客试图用我的电脑发送垃圾邮件(通过端口 25)。
部分内容/var/log/auth.log
提取如下(我把实际用户改为,myuser
并将一些外部IP地址改为1.2.3.x
):
Feb 20 06:07:12 ubuntu systemd-logind[954]: New session 77 of user myuser.
Feb 20 06:08:22 ubuntu sshd[21251]: error: connect_to 1.2.3.4 port 25: failed.
Feb 20 06:08:22 ubuntu sshd[21251]: error: connect_to 1.2.3.5 port 25: failed.
Feb 20 06:08:22 ubuntu sshd[21251]: error: connect_to 1.2.3.5 port 25: failed.
Feb 20 06:08:22 ubuntu sshd[21251]: error: connect_to 1.2.3.6 port 25: failed.
...(thousands of similar lines follows)...
由于错误信息是由 生成的sshd
,我推测黑客是通过 以 身份登录 SSH 来获取访问权限的myuser
。 其在 中的相应记录/etc/passwd
如下:
myuser:x:1003:1004:myuser:/home/myuser:/bin/false
我猜想黑客应该无法以 的shell 身份登录,myuser
也就是说/bin/false
,即使他可以登录,也应该立即被踢出。我myuser
也无法通过 PuTTY 登录。我自己登录的登录记录如下:
Feb 22 10:26:58 ubuntu sshd[3653]: pam_unix(sshd:session): session opened for user myuser by (uid=0)
Feb 22 10:26:58 ubuntu systemd-logind[734]: New session 2 of user myuser.
Feb 22 10:26:58 ubuntu sshd[3653]: pam_unix(sshd:session): session closed for user myuser
所以,显然我的设置有问题,并且/或者在文件/bin/false
中不起作用/etc/passwd
。我当前的设置有什么问题,我应该如何修复漏洞?
答案1
这commandline.ninja 中有关 /bin/false、/sbin/nologin 和 SSH 的文章似乎回答了你的问题。
##执行摘要
黑客可以绕过使用/bin/false
作为该用户 shell 的保护转发端口通过ssh
以下命令:
[user@panel~] ssh -N [email protected] -L 2525:127.0.0.1:25
##临时修复
###禁用端口转发
如果在您的场景中可能的话,最简单和最彻底的方法就是在配置文件中禁用 TCP 端口转发
sshd
(/etc/ssh/sshd_config
在许多系统上):
AllowAgentForwarding no AllowTcpForwarding no X11Forwarding no
###阻止用户帐户/密码
- 编辑
/etc/shadow
并设置用户密码为*
- 确认您的系统中不存在该用户的 SSH 密钥。
影子密码
加密*
密码为 意味着/etc/shadow
账户被锁定,用户将无法通过密码验证登录但其他方法(例如 SSH 密钥)可能仍被允许。