HackThebox Runner Walkthrough
内容提要
本文介绍了渗透测试和内网渗透的方法,使用Nmap扫描目标主机的端口和服务信息,并尝试进行目录扫描和虚拟主机爆破。作者发现了NSCA服务并尝试利用CVE进行攻击,成功利用CVE对TeamCity CI/CD平台进行容器逃逸和本地提权。最后,作者通过备份Portainer容器管理工具的数据库获取用户的哈希值,并成功登录到Portainer。文章提供了相关CVE漏洞利用方法和原理链接。
延伸解读
从NSCA到TeamCity:攻击链的转折点
文章开头扫描到8000端口的NSCA服务,但目录扫描仅发现health和version,没有直接利用点。随后通过虚拟主机爆破发现teamcity子域,返回401状态,提示存在认证。作者转向TeamCity的CVE-2024-27198,成功获取shell并进入容器。这一过程说明,当单个服务看似无懈可击时,横向枚举虚拟主机或子域往往能打开新入口。
容器逃逸与凭据收集的实战思路
在TeamCity容器内,作者利用CVE-2024-27198创建新用户,并搜索id_rsa私钥,最终在TeamCity数据目录中找到SSH私钥。随后用该私钥尝试登录主机,发现John和Matthew用户。这体现了容器环境下的常见风险:敏感文件可能被挂载或存储在容器内,一旦容器被突破,攻击者就能获取宿主机凭据,进而横向移动。
Portainer数据库备份与密码复用风险
获得John权限后,作者发现本地监听的Portainer服务,但无法直接访问。通过SSH端口转发将9000端口映射到本地,并利用TeamCity的备份功能导出数据库,从中提取到matthew的bcrypt哈希。使用hashcat破解出明文密码piper123,最终登录Portainer。这凸显了密码复用和备份文件未加密的风险,攻击者一旦获取备份,就可能破解出关键账户密码。
Q&A
渗透测试的基本方法有哪些?
渗透测试的基本方法包括使用Nmap扫描目标主机的端口和服务信息,以及进行目录扫描和虚拟主机爆破。
如何利用CVE进行攻击?
可以通过发现NSCA服务并尝试利用相关CVE进行攻击,例如对TeamCity CI/CD平台进行容器逃逸和本地提权。
如何获取Portainer的用户哈希值?
通过备份Portainer容器管理工具的数据库,可以获取用户的哈希值。
TeamCity CI/CD平台的特点是什么?
TeamCity是由JetBrains开发的持续集成和持续交付工具,支持多种技术栈,并提供可视化的项目管理界面。
如何进行虚拟主机爆破?
可以使用ffuf工具进行虚拟主机爆破,指定目标URL和字典文件进行尝试。
CVE-2024-27198的利用方法是什么?
CVE-2024-27198的利用方法可以通过特定的脚本进行攻击,成功创建新用户并获取访问权限。