HTB: Build
靶机信息
属性 | 值 |
---|---|
名称 | Build (HackTheBox) |
发布日期 | 2025年8月5日 |
退役日期 | 2025年8月5日 |
操作系统 | Linux |
难度 | 中等 [30分] |
创建者 | xct |
侦察
初始扫描
Nmap发现七个开放的TCP端口:SSH (22)、DNS (53)、rsync (873)、HTTP (3000)和三个Berkeley r-命令(512-514):
|
|
基于OpenSSH版本,主机可能运行Ubuntu 22.40 jammy。两个端口显示为过滤状态(3306通常为MySQL,8081可能是某种Web服务器)。DNS和HTTP端口的TTL为62,比预期少1跳。
Gitea - TCP 3000
该Web服务器是Gitea实例。在"Explore"下有一个公共仓库buildadm/dev
,包含单个文件Jenkinsfile
。可以注册账户,但不显示额外仓库或人员。
技术栈显示为Gitea版本1.21.11。
rsync - TCP 873
列出rsync可用目录:
|
|
存在单个名为backups
的目录,包含一个大型tar存档jenkins.tar.gz
(近360MB)。
Jenkins备份
解包
提取Jenkins备份存档文件:
|
|
域信息
搜索.vl
域字符串:
|
|
服务器使用build.vl
域,Gitea可能使用gitea.build.vl
。管理员邮箱为admin@build.vl
。
用户
users/users.xml
文件包含Jenkins用户,有一个admin用户,其配置存储在users/admin_8569439066427679502/config.xml
中,包含密码哈希。
配置
构建配置存储在jobs/build/config.xml
中。连接到Gitea服务器172.18.0.2:3000
,每分钟触发一次。包含buildadm
用户的凭据,密码已加密。
解密密码
使用jenkins-credentials-decryptor
离线解密:
|
|
解密得到用户名buildadm
和密码Git1234!
。
容器内root shell
认证Gitea
使用解密凭据登录Gitea作为buildadm
。设置中配置了Webhook(Jenkins容器IP)。
Shell
使用Gitea内置编辑器打开dev
仓库中的Jenkinsfile
,编辑命令为bash反向shell。提交更改后,一分钟内收到连接。
升级shell使用标准技巧:
|
|
root shell
枚举
容器
主机名为12个十六进制字符,符合Docker默认。文件系统根目录有.dockerenv
文件。IP为172.18.0.3
。
容器文件系统
容器内内容很少。/home
无用户主目录。/opt
有Java安装和jenkins-plugin-manager.jar
。
root主目录有:
.bash_history
->/dev/null
- 可读的
.rhosts
文件 .ssh
目录含SSH密钥对user.txt
.rhosts
配置Berkeley r-命令:
|
|
网络
上传静态编译的nmap扫描C类网络:
|
|
发现6个主机,包括Gitea、MySQL、PowerDNS等服务。
隧道
使用Chisel通过反向shell创建代理访问其他容器。配置FoxyProxy使用此隧道。
MySQL
无密码信息,但可以root连接:
|
|
非默认数据库为powerdnsadmin
,包含用户表和域信息。
PowerDNS-Admin
保存admin用户哈希到文件,使用hashcat破解:
|
|
破解得到密码winston
,登录PowerDNS-Admin。
通过rlogin的Shell
TCP 513 rlogin在主机上开放,.rhosts
文件包含两个域。编辑admin.build.vl
记录指向主机,然后使用rlogin作为root连接:
|
|
获取root.txt。