> For the complete documentation index, see [llms.txt](https://blog.alertxss.cn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://blog.alertxss.cn/hack-the-box-zuo-ti-ji-lu/season-5/week-1-runner.md).

# Week 1 - Runner

Hackthebox 第五季的第一个容器的writeup。

## 初期信息收集

首先先用nmap之类的工具扫描一下端口。

<figure><img src="https://392291741-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmWhG2pnQCWtqmWvoBOhx%2Fuploads%2FntXrPwxqD06qtV6me1hK%2F%7BDE150B3D-8922-4018-9514-404D33B95382%7D.png?alt=media&amp;token=7f98c4e5-e729-43bb-b8fb-6127cdd5a784" alt=""><figcaption></figcaption></figure>

主要就是开放了80和22端口&#x20;

接着访问一下web服务,自动跳转runner.htb,所以到/etc/hosts文件下添加一下解析.

```
10.10.11.13 runner.htb
```

<figure><img src="https://392291741-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmWhG2pnQCWtqmWvoBOhx%2Fuploads%2FC8mFpHp4MRqgDJHyCroe%2F%7BA5F3A352-7ECC-4cee-BD94-CAD99F910A19%7D.png?alt=media&amp;token=48dd3fec-e0b3-49de-8a93-a9bbf383194e" alt=""><figcaption></figcaption></figure>

首页发现CI/CD之类的词汇,可以知道runner是一个CI/CD的工具,在后面的页面会发现 powered by TeamCity.

这里确实不是很常规,耗了挺长时间,htb是虚拟环境,没啥手段进行子域名的信息收集,通过爆破获得一个子域名 teamcity.runner.htb , 访问可以确定是存在TeamCity的服务.

<figure><img src="https://392291741-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmWhG2pnQCWtqmWvoBOhx%2Fuploads%2FYezstGRerOXxaN9txAk0%2F%7BD18002C4-C042-4d99-A6B0-992F550A8998%7D.png?alt=media&amp;token=5e620a06-8622-4ade-bbd0-24b20c132e45" alt=""><figcaption></figcaption></figure>

## 拿下第一个flag

这时候到exploit-db搜索一下teamcity,可以发现存在一个RCE的漏洞,且版本号都是2023.05.3.

<figure><img src="https://392291741-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmWhG2pnQCWtqmWvoBOhx%2Fuploads%2F1wtqUmqUviVizh6xJNmI%2F%7BA72D9DD5-79DB-4256-A97E-119AB38C22B1%7D.png?alt=media&amp;token=2d0407d8-2cce-4484-9189-8433f20bbb7b" alt=""><figcaption></figcaption></figure>

使用改脚本,会创建一个admin权限的teamcity用户.

<figure><img src="https://392291741-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmWhG2pnQCWtqmWvoBOhx%2Fuploads%2FpS0KCeNdLT6q5JBbVM3y%2F%7B61D5907D-193E-43f9-98FF-1EFCD0DD88FA%7D.png?alt=media&amp;token=83ac7985-21c5-4fdc-92a5-4e807c154374" alt=""><figcaption></figcaption></figure>

使用该账号密码登录teamcity.

<figure><img src="https://392291741-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmWhG2pnQCWtqmWvoBOhx%2Fuploads%2F0gJ1XD7yC0FF0tPOjXSk%2F%7B2739558A-6EA3-4861-B0C1-2937C923C8C0%7D.png?alt=media&amp;token=052bd72d-e778-46ba-8a07-0e4b3f167b52" alt=""><figcaption></figcaption></figure>

成功进入,然后探索一下.可以发现在Administration下面有个Backup选项,可以创建一个备份.(如果有备份,就是有人已经创建了,如果没备份,就点击一下Start Backup)

<figure><img src="https://392291741-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmWhG2pnQCWtqmWvoBOhx%2Fuploads%2FXfAZ0YW1lIg3u5jhfrM2%2F%7B1AA22E40-CE34-477d-ACDA-C904F2ABF681%7D.png?alt=media&amp;token=62cdef38-4125-483e-9813-d99e41b4c04c" alt=""><figcaption></figcaption></figure>

下载备份.

<pre><code><strong>/data/teamcity_server/datadir/backup/TeamCity_Backup_20240427_101141.zip 
</strong></code></pre>

在备份文件的/database\_dump/users文件中,可以获取用户的密码hash值.

<figure><img src="https://392291741-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmWhG2pnQCWtqmWvoBOhx%2Fuploads%2FQrLg0ARpgv0XAdH2pRXU%2F%7BF37C12C3-8396-4d94-BA49-B165960C3689%7D.png?alt=media&amp;token=4b8e28ef-18f9-4176-b1bf-8ad217732334" alt=""><figcaption></figcaption></figure>

Bcrypt加密方式,用hackcat跑一下,字典有用rockyou.txt,只有matthew用户可以跑出结果,密码是piper123 (忘了截图了,偷个懒不再跑了)

然后尝试一下ssh,结果登陆不上去,🐔.

<figure><img src="https://392291741-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmWhG2pnQCWtqmWvoBOhx%2Fuploads%2Fezkn38YJyqdJs5JmfbTy%2F%7B27A65CFD-8107-4415-A1FC-1F900C346DEF%7D.png?alt=media&amp;token=62d503e8-e45e-4c51-a74a-3042d784e2ab" alt=""><figcaption></figcaption></figure>

后来想到在teamcity网站里收集信息的时候,有发现一个SSH keys存储相关的页面,我们可以获取到公钥,按道理在这里生成的key,应该项目中也存在私钥,然后翻备份,果然有!!

<figure><img src="https://392291741-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmWhG2pnQCWtqmWvoBOhx%2Fuploads%2F4Cdrv0omCOFcHGOzYAUX%2F%7BFEBCF214-0A33-48c9-AE90-A2A5E52146E5%7D.png?alt=media&amp;token=decf2c13-43e9-442c-902c-ab0b8e832855" alt=""><figcaption></figcaption></figure>

然后把前面获取到的user的名称都试一下,可以知道这个是john的私钥(使用私钥的时候要给权限600,chmod 6000 id\_rsa)

<figure><img src="https://392291741-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmWhG2pnQCWtqmWvoBOhx%2Fuploads%2FubO0NAZynxBQuUx12hk2%2F%7BED57E277-6AD4-467a-9B37-A94363C673A3%7D.png?alt=media&amp;token=aefb769a-d6e5-4c2c-8889-7d88a5dd4b62" alt=""><figcaption></figcaption></figure>

然后用户目录下就能找到第一个flag了

<figure><img src="https://392291741-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmWhG2pnQCWtqmWvoBOhx%2Fuploads%2F23H6zwAi3I6TKkVvynz2%2F434325fe-6e72-4618-a3ef-0294509a77f7.png?alt=media&amp;token=29caacdf-7522-4955-b89f-d572f45d7710" alt=""><figcaption></figcaption></figure>

## 再次信息收集

上linux信息收集神器 linpeas .

<figure><img src="https://392291741-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmWhG2pnQCWtqmWvoBOhx%2Fuploads%2Fq5UqTBBuVqy5lwWnGs12%2F%7B3A9E8380-EBD4-451e-B5B3-E5C5F9412A48%7D.png?alt=media&amp;token=d3cf01ec-334e-4b0e-a461-7c4962595173" alt=""><figcaption></figcaption></figure>

给出了可能存在的提权漏洞,很可惜,尝试以后都不可用.

然后在分析出来的nginx配置文件中,可以发现还有一个portainer服务 portainer-administration.runner.htb&#x20;

<figure><img src="https://392291741-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmWhG2pnQCWtqmWvoBOhx%2Fuploads%2FHhyBMGqEY7AhKc7EO83h%2F%7B6B239287-BC3F-42ac-8664-B8B0BBE07C0D%7D.png?alt=media&amp;token=050b3bee-22f1-4349-af23-0759dfaa5089" alt=""><figcaption></figcaption></figure>

这里就有些思路了,如果portainer如果有操作docker的权限,就可以创建一个volumn,指向宿主机的根目录,然后挂载到一个容器上,就可以通过这个容器访问到root权限下的文件.

这里偷懒了,在走到这步时候,已经有人创建一个容器了,成功在/mnt/root下访问到根目录,在/mnt/root/root下发现root.txt文件,拿下第二个flag!

<figure><img src="https://392291741-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmWhG2pnQCWtqmWvoBOhx%2Fuploads%2FYpNsO1DXhO1ObCcuxYFX%2F6b3a4c6d1d7ee53e6d12b7c443ad804.png?alt=media&amp;token=8be46c74-1504-4123-af10-4af4b31054a6" alt=""><figcaption></figcaption></figure>
