Str*_*Bad 6 shell ssh account-restrictions
当通过 将用户限制为单个命令时ssh,应该为用户使用什么默认 shell?这是如何通过 SSH 利用 shellshock的后续内容?我有一台运行 ssh 服务器并且有一个虚拟用户的机器。我通过command在authorized_keys文件中指定一个选项来限制这个虚拟用户通过 ssh 运行单个命令。我一直在使用bash作为虚拟用户的默认 shell,但是自从 shellshock 错误以来,我一直在想也许有一个更安全的 shell。虚拟用户只允许运行一个rsync命令,所以我认为它可以在大多数 shell 上运行。具体来说,允许用户运行的命令是:
rsync --server --sender -lHogDtpre.iLs . //home/dummyuser/data/"
Run Code Online (Sandbox Code Playgroud)
我不是服务器的管理员,尽管我可以要求进行一些简单的更改,因此/etc/sshd/sshd_config无法在文件中设置诸如 chroot jail 之类的东西。理想情况下,我可以通过使用不受限制的密钥以虚拟用户身份登录来限制命令。
小智 1
你可以编写这个 shell:
cat >/tmp/rsyncshell.c <<EOF
#include <unistd.h>
char *argv[] = (char *[]) {
"/usr/bin/rsync", "--server", "--sender",
"-lHogDtpre.iLs", ".", "//home/dummyuser/data/" };
int main () { execv(argv[0], argv); }
EOF
Run Code Online (Sandbox Code Playgroud)
编译新的 shell:
gcc -o /bin/rsyncshell /tmp/rsyncshell.c
Run Code Online (Sandbox Code Playgroud)
然后将 dummyuser 解释器设置为/bin/rsyncshell
| 归档时间: |
|
| 查看次数: |
483 次 |
| 最近记录: |