我的一个朋友告诉我,你永远不应该允许你的用户通过 ssh 进行攻击,/bin/sh
因为它存在许多安全问题,人们可以利用它进行攻击。这是真的吗?如果是,它有哪些安全风险?如果我的用户没有 sudo,他们可以使用 /bin/sh 进行哪些攻击?
答案1
安全问题一旦被报告,就会得到修复。对于其他任何 UNIX 或 Linux 程序/bin/sh
来说都是如此。/bin/[b]ash
在 Debian 中,默认情况下,/bin/sh
符号链接到/bin/dash
,您可以使用 来更改这一点galternatives
。
如果不知道朋友的意思,就不可能准确回答。下次见到他时,请向朋友要一个 CVE 编号,如果他不能给你,那他就是编造的。
查看/bin/sh
链接到什么的最简单方法是:ls -l /bin/sh
,同样,链接到什么并不重要,我不知道 shell 中当前是否存在安全问题,而且没有 CVE,就没有安全问题。
其实还有这个:https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-16522
然而,这并不是 中的漏洞/bin/sh
,无论它与什么相关,它是 MitraStar 公司的路由器存在的问题,它会执行特定的命令,root
不幸的是,它允许经过身份验证的用户(在路由器上拥有用户名/密码的用户)输入诸如 的命令/bin/sh
,该命令的执行方式root
允许任何拥有路由器的有效用户名/密码的人完全控制路由器。
编辑-来自评论:
下面是一个 shell 脚本,/tmp
它只输出$0
,我在我的主目录中创建了一个名为的符号链接,hhh
指向/tmp/test.sh
$ echo '#!/bin/sh
echo $0' > /tmp/test.sh
$ chmod +x /tmp/test.sh
$ ln -s /tmp/test.sh hhh
$ ls -l hhh
lrwxrwxrwx 1 jdoe Users 12 Dec 18 07:21 hhh -> /tmp/test.sh
$ ./hhh
./hhh
$ $(pwd)/hhh
/home/jdoe/hhh
答案2
你的朋友错了。在很多(大多数)系统上,/bin/sh 实际上是另一个 shell 的链接,例如在 CentOS 上是 /bin/bash,在 Ubuntu 上是 /bin/dash。你应该让你的朋友详细说明他们认为通过 /bin/sh 暴露的安全问题。