disable pseudo-tty allocation
在最近的一次渗透测试中,我们发现我们使用的rbash限制shell可以通过简单地强制分配伪终端来进行转义。
1
| ssh -i id_rsa_key user@hostname -t"bash --noprofile" |
我已经做了大量的研究,并且无法通过ssh配置或其他过程找到有关如何防止这种情况的任何内容。 任何关于如何锁定它的建议将不胜感激。
-
可能感兴趣:stackoverflow.com/q/33713680/1126841
-
你确定它与-t有关吗? 如果您唯一的步骤是将用户的登录shell设置为rbash,那么预计简单的bash将为您提供完整的,不受限制的shell。
-
您的安全漏洞是用户执行bash的能力,而不是用户获取TTY的能力。 即使没有TTY,用户也可以调用bash并向其发送命令。
-
谢谢你的回复。 当用户在没有-t"bash --noprofile"标志的情况下连接时,它们会收到一个rbash shell,它只允许在/home/bin/目录中执行命令。 如果你尝试执行除此之外的任何事情,你将被拒绝,包括bash。
最后使用此处找到的方法找到了修复:
如何在登录后将SSH用户限制为一组预定义的命令?
您可以使用authorized_key文件中的指令限制PTY的分配。
no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAAB3NzaC1.......