通过 SSH 命令执行来限制 bash 绕过

通过 SSH 命令执行来限制 bash 绕过

编辑:经过大量挖掘,这几乎肯定是在执行 rbash 之前调用的结果/etc/profile.d/...,因此不是受限 bash 本身的问题。

似乎有一个简单的 rbash 规避方法,即 SSH 用户只需请求执行 bash 即可。

该环境由受限制的 组成$PATH,其中只有一小部分命令可用。id命令不可用,这就是我根据以下内容编写的:

testuser@jumphost:~$ id
-rbash: id: command not found

.. 但是之后 ..

testuser@jumphost:~$ ssh localhost "bash"
testuser@localhost's password:  
id
uid=3033(testuser) gid=4033(jumpuser) groups=5033(foogroup) context=jumpuser_u:jumpuser_r:jumpuser_t:s0

..bash 被调用;受限 shell 已被规避。

我曾尝试通过Match Group/ForceCommand来实现 rbash 的调用sshd_config,尽管为我调用 rbash,能够简单执行 bash 的问题仍然存在。

由于后勤原因,我们默认不为外部用户使用公钥,因此无法"command="在文件中提供此功能。我们还想为用户提供不仅仅是 ssh 的功能……以及一些其他简单的程序。~/.authorized_keyskinitklist

是否有机制可以限制这种行为?

答案1

最后,解决方案是更好地控制成功身份验证和调用 rbash 之间的初始环境。

这是通过一个包装器 shell 实现的,它使用标志--restricted、、--rcfile ...等调用一个“干净”的 bash --noprofile……以及一个在退出之前记录执行尝试的默认情况。

对于这个危言耸听的标题深表歉意......

相关内容