OSCP Build Write-up

本文最后更新于 2026年3月12日 下午

一、靶场详情

靶场名称:

Build

靶场地址:

https://app.hackthebox.com/machines/Build

靶场环境连接说明:

演示为 HackTheBox 平台在线靶机,需通过 OpenVPN 客户端连接平台提供的 VPN 环境才能访问靶机。注意:平台新发布的靶机可以免费练习,而历史靶机则需要开通会员才能使用。还需要注意连接 HackTheBox 平台 VPN 需要挂载代理,具体方式可参考之前的历史文章或留言。

二、思路总结

突破边界(获取用户旗帜):

Rsync 目录枚举 –> Jenkins 应用源码 –> 破解 Jenkins 应用密码 –> Gitea 后台权限 –> 修改 jenkinsfile 文件 –> 容器 root 用户权限 –> 用户旗帜

权限提升(获取管理员旗帜):

通过容器作为跳板执行内网穿透 –> 靶机 Mysql 服务(仅可通过容器访问),PowerDNS-Admin 应用(容器) –> Mysql 空密码 –> PowerDNS-Admin 应用后台密码(hashcat 破解) –> 添加 intern DNS 解析至 kali –> Rsh 无密码登录靶机 –> 系统 root 用户权限 –> 管理员旗帜

三、靶场攻击演示

3.1 靶场信息收集

使用 nmap 对靶机进行端口扫描。

TCP 端口扫描:

1
2
3
4
5
6
7
8
9
10
sudo nmap -p- 10.129.120.115 --min-rate=2000

PORT STATE SERVICE
22/tcp open ssh
53/tcp open domain
512/tcp open exec
513/tcp open login
514/tcp open shell
873/tcp open rsync
3000/tcp open ppp

UDP 端口扫描:未发现可利用的端口。

继续使用 nmap 对已开放端口的服务进行信息收集。

TCP 服务信息搜集:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
sudo nmap -p22,53,512,513,514,873,3000 -sCV 10.129.120.115

PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.13 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 47:21:73:e2:6b:96:cd:f9:13:11:af:40:c8:4d:d6:7f (ECDSA)
|_ 256 2b:5e:ba:f3:72:d3:b3:09:df:25:41:29:09:f4:7b:f5 (ED25519)
53/tcp open domain (generic dns response: REFUSED)
| fingerprint-strings:
| DNS-SD-TCP:
| _services
| _dns-sd
| _udp
|_ local
| dns-nsid:
| NSID: pdns (70646e73)
|_ id.server: pdns
512/tcp open exec netkit-rsh rexecd
513/tcp open login?
514/tcp open shell Netkit rshd
873/tcp open rsync (protocol version 31)
3000/tcp open http Golang net/http server
|_http-title: Gitea: Git with a cup of tea
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

由此得出结论:

系统为 Linux 环境,开放有 HTTP、Rsh、SSH 和 Rsync 服务。

3.2 渗透测试突破边界

3.2.1 Rsync 泄漏 Jenkins 应用源码

靶机 TCP 512-514 端口为 Rsh 服务,由于缺少用户信息,暂时搁浅。

  • Rexec(512):知道具体用户名和密码可执行系统命令。
  • Rlogin(513):.rhosts/etc/hosts.equiv 文件配置错误,可能导致无密码访问。
  • Rshell(514):Rsh 使用 .rhosts 文件以及 /etc/hosts.equiv 文件进行身份验证,配置错误可导致无密码访问。

HTTP 3000 端口部署了 Gitea 1.21.11 应用,历史未透露 RCE 漏洞,测试不存在默认口令和弱密码。

点击 Explore,发现 buildadm 用户的 dev 项目,项目包含 Jenkinsfile 文件。

原始内容

Jenkinsfile 文件: 类似于脚本文件,可执行系统命令,该 Jenkinsfile 文件实际执行了 sh '/bin/true' 命令。

目前我们还没有权限修改 Jenkinsfile 文件,除此之外,靶机还开放了 rsync 服务。

rsync 服务: 通过 TCP 运行,通常在端口 873 上运行,并使用同步协议高效地跨系统更新文件。它支持匿名访问和身份验证访问。如果配置错误,Rsync 可能会允许攻击者列出目录、读取敏感文件,甚至上传恶意内容。

尝试匿名枚举靶机 rsync 目录,发现 Rsync 服务 backups 目录存在 Jenkins 压缩文件。

下载 Jenkins 压缩包并解压。

3.2.2 Jenkins 应用密码破解

检索解压后的 Jenkins 文件,发现多个加密的用户密码。

users 目录 config.xml 包含 admin 用户加密密码,使用 hashcat 可成功破解(时间较长,密码也不能复用)。

jobs 目录 config.xml 文件存储了 buildadm 用户加密密码,使用 GitHub 解密工具可得到明文密码,注意: 需要指定 master.key 和 hudson.util.Secret 文件,该文件可在 secrets 目录获取。

参考链接:

1
https://github.com/hoto/jenkins-credentials-decryptor

3.2.3 Gitea Jenkinsfile 文件 Get Shell

使用破解的 buildadm 用户密码可登录 Gitea 平台,将 jenkinsfile 文件执行命令修改为反弹 shell。

使用 nc 监听 80 端口,并在 busybox 目录开启 web 共享,等待 1-2 分钟可得到系统反弹 shell。

升级为交互式 shell。

3.2.4 用户旗帜获取

3.3 提权获取系统最高权限

3.3.1 容器资产发现

通过 hosts 文件得知系统 IP 为 172.18.0.3,且系统根目录存在 .dockerenv 文件,说明系统属于容器环境。

容器 root 目录发现 .rhosts 文件,意味着 admin 和 intern 域名可无需密码访问 rsh 服务,nmap 扫描过程发现靶机存在 rsh 服务,如果能修改靶机 DNS 解析记录,将 admin 或 intern 域名指向 kali IP,可能会绕过认证直接访问靶机 rsh 服务。

容器 /root/.ssh 存储有私钥文件,但无法利用,上传 ligolo-mp agent 设置内网穿透。

关于 ligolo-mp 使用方式可参考历史文章(点击跳转)。

通过 nmap 扫描 172.18.0.0/24 网段主机,发现了 172.18.0.1:3306172.18.0.6:80 服务。

1
nmap -sT 172.18.0.1/24 --min-rate=3000

3.3.2 Mysql 空密码泄漏 PowerDNS-Admin 应用密码

docker 容器中 IP 地址为 xx.xx.xx.1 一般属于宿主机,说明靶机还存在 mysql 服务(通过容器作为跳板机访问),该服务 root 用户可空密码登录。

在 powerdnsadmin 数据库 user 表发现用户密码。

使用 hashcat 破解密文密码。

利用破解的 admin 密码可登录容器 172.18.0.6:80 服务,注意: 用 ligolo-mp 内网穿透访问172.18.0.6:80 服务会出现重定向问题,需使用 chisel 进行 socks 代理。

容器内执行 chisel

kali chisel

在浏览器配置本地 socks 8080 代理,再次访问172.18.0.6:80 服务,不会出现重定向问题。

3.3.3 PowerDNS-Admin 创建 DNS 解析记录得到系统 Rsh root 权限

172.18.0.6:80 服务部署了 powerDNS-admin 服务,该服务可创建 DNS 解析记录,利用之前容器 root 目录发现的 .rhosts 文件,创建 kali intern 域名解析。

使用 rsh 无需密码登录,得到靶机 root 用户权限。

3.3.4 管理员旗帜获取

Thanks

如果我的文章对您有帮助或您希望与我更多交流,欢迎点击「关于我」,通过页面中的微信公众号、邮箱或 Discord 与我联系;若您发现文章中存在任何错误或不足之处,也非常欢迎通过以上方式指出,在此一并致以衷心的感谢。 😊🫡

最后,祝您生活愉快!🌞✨


OSCP Build Write-up
https://www.f0nesec.top/2025/10/22/oscp-build/
作者
F0ne
发布于
2025年10月22日
许可协议