“wget”的安全问题

“wget”的安全问题

我想知道使用“wget”及其选项时是否可能遇到任何漏洞。具体来说,我使用了基准测试脚本来测试我的 VPS 的性能。命令如下:

wget -qO- bench.sh | bash

我知道 -q0- 的作用,但找不到任何资源解释命令末尾的“bash”参数。

答案1

诸如以下的命令

wget -qO- bench.sh | bash

意思是“从 bench.sh 获取文件并使用bash”运行它。

这实际上与

wget -q -Otestfile bench.sh
bash testfile

但不需要临时文件。

所以你所做的就是下载并运行不受信任的代码。今天你可以下载该文件并检查它是否有“讨厌的”命令,但明天它仍然是干净的吗?还是第二天?

这是安全问题吗?有潜力。

您需要确定对运行 bench.sh 的人员的信任程度,以及有人尝试闯入服务器并进行未经授权的更改的可能性有多大。另请注意,连接是通过的http,因此可能会受到“中间人”攻击,从而在数据发送到您的计算机时更改数据。

就我个人而言,我不会以这种方式运行脚本;但我认识很多人这样做。

答案2

不是bash的参数wget。这里发生的事情是,您正在下载一些东西wget并将其传递给bash运行。

是的,这里有一个安全问题。问题是你正在运行从某个地方获取的 shell 脚本,而没有查看脚本本身。如果你从wget某种形式的值得信赖的来源,那么这可能没问题。如果没有,那么我建议将其下载到文件中第一的,检查它,然后将其作为 shell 脚本运行(如果您认为这样做是安全的)。

有些特洛伊木马以 shell 脚本形式分发,要求用户下载脚本并运行它。 Linux.MulDrop.14(比特币矿工)就是这样一个脚本,针对较旧的 Raspberry Pi。

答案3

基本上做-qO-的是

-q,  --quiet                     quiet (no output)

安静地运行(不产生任何日志/诊断输出)

-O,  --output-document=FILE      write documents to FILE

将输出(下载的文件)发送到默认-位置stdout

因此,无论您下载什么,都会通过管道传输来bash执行。

如果有人入侵服务器并用rm -rf ~(或类似的)替换脚本,您的所有文件都将丢失。这取决于您所处的环境来评估这是否是一个问题。

要分析脚本的作用,您可以使用以下命令下载它

wget -q -O bench.sh bench.sh

然后bench.sh在文本编辑器中打开进行查看。

相关内容