作者:伊戈尔·雅尔丁

 

O 弹震 利用组件中的漏洞 BASH 系统数 UNIX,允许远程执行命令。

BASH 是 Unix 环境中的命令解释器。命令是发送给解释器(shell)的一个动作或一组动作。由 SR Bourne 创建的 BASH(Bourne Again Shell)是这些程序中使用最广泛的,尽管还有其他程序,例如 csh、tesh、sh。在 Microsoft 环境中,本机解释器是 cmd.exe。

另一个重点是,shell 也是一个脚本解释器,可以被 Web 服务器上的应用程序调用,例如 Apache。

攻击

BASH 允许创建环境变量,供用户在需要时调用。还可以使用脚本自动调用环境变量。一个例子是创建一个接收带有名称的字符串的变量:

环境名称=Nicolas

回显“欢迎 $Name”

Shellshock(漏洞 CVE-2014-6271、CVE-2014-6277、CVE-2014-6278、CVE-2014-7169、CVE-2014-7186、CVE-2014-7187)允许环境变量中包含的该字符串包含无需调用变量即可执行的命令。

BASH 版本 1.14(自 1994 年起)至 4.3 均容易受到此缺陷的影响。尽管这个缺陷已经存在很久了,但它最近才被公开发现——因此无法保证这个缺陷没有被(或不会继续被)用于攻击。

与 SQLInjection 一样,此缺陷允许对手使用某些参数绕过解释器,从而导致 BASH 执行合法用户不希望执行的任意命令。在以下示例中,命令的唯一输出应该是“正常脚本命令”,但在受感染的 Bash 中,变量甚至在脚本的任何部分都没有被调用就被执行,并在屏幕上打印以下内容:

“警告”一词。

# 环境名称 = '() { :;}; echo 警告' bash -c “echo 正常脚本命令”

警告

普通脚本命令

NAME 变量从未被调用,但是其中的 echo 命令无论如何都会被执行。

可以通过多种方式利用此缺陷。只需声明变量即可执行其中的任何其他命令。在另一个例子中,可以使用系统上通常默认安装且不会被管理员删除的工具 Netcat 打开特定端口。

在以下示例中,脚本执行时会打开端口 7654,从而允许直接访问受感染主机上的 BASH。此攻击允许在用户不知情的情况下在系统后台自动访问 BASH。

# 环境名称 = '() { :;}; nc -lp 7654 -e /bin/bash&' bash -c “echo Normal”

正常

该函数的执行继续在最后打印单词“Normal”,但没有提及对 netcat 的调用。对于普通用户来说,如果只查看命令输出,一切正常,但是如果我们使用 netstat 检查系统开放的端口,我们会注意到端口 7654 已开放并等待连接。

# netstat –tupan | grep 7654

tcp 0 0 0.0.0.0:7654 0.0.0.0:*

收听 12846/nc

这使得 Shellshock 比 Heartbleed 的问题更大,因为后者读取服务器上的隐藏数据,而前者允许完全控制易受攻击的主机。 Shellshock 可以出现在两个不同且广泛使用的前端,例如 Web 服务器和嵌入式系统(例如无线路由器)。

一些公司已经确认他们的服务器受到该漏洞的攻击,例如雅虎,但据该公司自己称,并没有用户数据受到侵犯。

解决方案

虽然对于普通用户来说,这个缺陷并不是一个多么危险的问题,但对于公司来说,它却是一个极其严重的问题。业务服务通常由负责应用软件补丁和更新的系统管理员负责。这些专业人士并不总是有更新服务器的习惯,他们在事件发生很久之后才意识到自己遭到了黑客攻击。

几乎所有 Linux 发行版都已经修复了 Shellshock 漏洞,您只需要更新默认存储库并更新 Bash。

对于嵌入式设备,例如路由器、打印机、VoIP 电话,问题会稍微复杂一些。嵌入式设备的更新(和修复错误)取决于制造商提供的更新。这些更新并非适用于所有设备,旧型号在其使用寿命结束之前可能仍然容易受到这些类型的攻击。

总结

应采取以下措施来保护自己免受 Shellshock 的侵害:

– 立即使用以下命令检查您的 Bash 是否存在漏洞:

# env shock='() { :;}; echo VULNERABLE' bash -c “echo Kryptus.com”

如果命令输出是 VULNERABLE,则应该更新您的系统。

# env shock='() { (kryptus.com)=>\' bash -c “echo date”;猫回声; rm./echo

如果命令输出是当前日期,即使显示一些错误,您的系统也容易受到攻击。

– 根据发行版使用必要的命令更新系统:

基于 Debian 的系统

#apt-get 更新; apt-get install –only-upgrade bash

基于RedHat的系统

# yum 更新 bash -y

基于 Arch 的系统

#pacman -Syu

– 检查访问日志,查找任何对服务器的意外访问。

– 密切关注操作系统发行版和嵌入式设备的安全修复。

参考文献
https://shellshocker.net/
http://www.businessweek.com/news/2014-10-06/yahoo-says-no-data-stolen-in-shellshock-hack
https://cve.mitre.org/
https://www.debian.org/security/2014/
http://www.ubuntu.com/usn/
http://lwn.net/Alerts/CentOS/
https://securityblog.redhat.com/

您可能还喜欢:
Windows Server 为后量子时代开放 AD CS
一幅以蓝黑相间科技感为背景的电子横幅,作为关于AD CS和PQC(后量子密码学)文章第三部分的封面。横幅顶部中央醒目地印着“KRYPTUS 构建可信纽带”的标志。画面中央,一幅镶嵌在边框中的图像展示了一块电路板上闪亮的未来感十足的微芯片和蓝色的数据流,旁边还有一个显示时间“00:17:00:00”的数字计时器。右下角的图形元素标明了“第三部分”的字样。

系列:后量子过渡 · 第三部分 · 2026年5月27日 第三部分 阅读更多

路由器漏洞允许访问数据和文件
路由器漏洞允许访问数据和文件

作者:Kryptus 2018 年,Kryptus 开始分析可能存在的不安全因素 阅读更多