Brains — TryHackMe实战演练
引言
TryHackMe的Brains房间要求我们利用TeamCity 2023.11.3服务器(CVE-2024-27198)获取shell,捕获用户标志,并使用Splunk进行取证分析,以发现后门用户、恶意软件包和上传的插件。
任务1 红队:攻击服务器!
侦察
我首先使用主动Nmap扫描来枚举服务和版本:
|
|
扫描的重要发现:
- 22/tcp — ssh — OpenSSH 8.2p1 (Ubuntu)
- 80/tcp — http — Apache/2.4.41 (Ubuntu) — 页面标题:维护中
- 50000/tcp — HTTP服务 — 返回TeamCity维护HTML和头部信息(显示为TeamCity)
Web枚举
我首先访问80端口的Web服务器,看到一个简单的维护页面。除了服务器头部信息和站点故意显示维护状态外,没有立即发现太多信息。
访问50000端口显示了一个TeamCity管理界面,带有可访问的登录/维护页面。
漏洞侦察
我确认TeamCity登录页面显示版本为2023.11.3,Rapid7对CVE-2024-27198(认证绕过→未授权RCE)的分析与我发现的情况匹配。
漏洞利用
我启动Metasploit并使用TeamCity RCE模块,配置反向处理器,然后运行攻击:
|
|
Metasploit识别目标存在漏洞,创建了认证令牌,上传了恶意插件,并发送了有效载荷。模块打开了meterpreter会话:
|
|
重要提示:攻击使用了LPORT=53,所以我必须先停止使用53端口的本地DNS/服务(例如systemd-resolved/named)以释放该端口。
捕获用户标志
获取meterpreter shell后,我列出文件并读取用户标志:
|
|
任务2 蓝队:调查分析
在攻击目标后,我切换到实验室的蓝队/取证侧,调查攻击者留下的痕迹。
我部署了Splunk机器并等待几分钟让实例启动。
Splunk URL:http://MACHINE_IP:8000 凭据:用户名:splunk — 密码:analyst123
登录后,我进入了Splunk Enterprise仪表板。
我导航到"搜索与报告"开始查看收集的日志。
从搜索应用程序中,我打开数据摘要并按源过滤。我选择了/var/log/auth.log来重点关注认证事件。
认证日志是查找useradd事件和其他账户活动的正确位置。
为了查找账户创建事件,我在认证日志上运行了一个简单搜索:
|
|
然后我将时间选择器从默认(最近24小时)扩展到所有时间,以免错过较旧的事件。
搜索返回了一个用户创建条目,显示攻击者创建了一个名为eviluser的后门账户。
问题:在服务器被攻击后创建的后门用户名称是什么? 答案:eviluser
安装的软件包
为了查找在后门账户创建时间附近安装的软件包,我在Splunk中搜索了dpkg日志。我运行了:
|
|
我将时间选择器扩展到所有时间,并过滤到我们正在调查的主机。
问题:服务器上安装的恶意软件包名称是什么? 答案:datacollector
插件上传
为了识别攻击者在攻击期间上传的插件,我在Splunk中搜索了TeamCity活动日志:
|
|
我将时间范围设置为所有时间并过滤了主机。日志显示了上传的插件YAgxHifR及其操作,与Metasploit输出匹配。
问题:成功攻击后安装在服务器上的插件名称是什么? 答案:AyzzbuXY.zip
结论
TryHackMe的Brains房间提供了一个从攻击利用到取证分析的完整旅程。我成功利用了一个易受攻击的TeamCity 2023.11.3实例(CVE-2024-27198)来获取meterpreter shell,捕获了用户标志,然后转向蓝队任务来调查攻击者的足迹。使用Splunk,我识别了后门用户、恶意软件包和上传的插件,在攻击后分析和日志调查方面获得了实践经验。
这个房间非常适合任何希望练习真实世界Web应用程序利用、RCE技术和取证日志分析的人。按照本演练操作,你应该有信心结合攻击和防御技能来安全地入侵和分析系统。