我在我的 apache 错误日志的 referer 字段中找到了这段代码,然后是几个 bash 命令从 Web 下载和运行有效负载。该攻击似乎通过将命令名称转换为空函数体的函数名称来起作用,(){ :; }
.
这显然是在尝试执行 bash 命令注入。哪些服务器、配置或模块可能容易受到这种攻击?
我在我的 apache 错误日志的 referer 字段中找到了这段代码,然后是几个 bash 命令从 Web 下载和运行有效负载。该攻击似乎通过将命令名称转换为空函数体的函数名称来起作用,(){ :; }
.
这显然是在尝试执行 bash 命令注入。哪些服务器、配置或模块可能容易受到这种攻击?
这是针对 Shellshock 错误(甚至有自己的标签):
GNU Bash 到 4.3 处理环境变量值中函数定义之后的尾随字符串,这允许远程攻击者通过精心设计的环境执行任意代码,如涉及 OpenSSH sshd 中的 ForceCommand 功能、Apache 中的 mod_cgi 和 mod_cgid 模块的向量所示HTTP 服务器,由未指定的 DHCP 客户端执行的脚本,以及设置环境发生在 Bash 执行的特权边界的其他情况。
受影响的是任何运行易受攻击的 Bash 版本和攻击者注入环境变量的方式的系统。最著名的案例是 Apache,它自动从请求中设置某些环境变量。你不需要 Bash CGI。有关详细列表,请参阅有关Shell Shock Exploitation Vectors的文章。
为了防御这种攻击,您必须更新您的 Bash。要测试您的 Bash 版本是否易受攻击,您可以从@EliahKagan 的最佳答案中执行以下行:
x='() { :;}; echo VULNERABLE' bash -c :
有关更多信息,请参阅您需要了解的有关 Shellshock Bash 错误或相应 CVE的所有信息。
它看起来像一个远程命令执行负载。远程命令执行漏洞用于以与 Web 服务器用户相同的权限运行系统命令。它导致服务器的全面妥协。查看有关此的 owasp 文章以获取更多信息。