Aria2 任意文件上传

Aria2是一个命令行下轻量级、多协议、多来源的下载工具(支持 HTTP/HTTPS、FTP、BitTorrent、Metalink),内建XML-RPC和JSON-RPC接口。在有权限的情况下,我们可以使用RPC接口来操作aria2来下载文件,将文件下载至任意目录,造成一个任意文件写入漏洞。

信息收集

nmap -sS -T5 -n -p- 192.168.50.128
Starting Nmap 7.80 ( https://nmap.org ) at 2020-06-06 16:41 ?D1ú±ê×?ê±??
Nmap scan report for 192.168.50.128
Host is up (0.00038s latency).
Not shown: 65534 closed ports
PORT     STATE SERVICE
6800/tcp open  unknown
MAC Address: 00:0C:29:70:75:41 (VMware)

Nmap done: 1 IP address (1 host up) scanned in 1.83 seconds

6800是aria2的rpc服务的默认端口,环境启动后,访问http://your-ip:6800/,发现服务已启动并且返回404页面。
Aria2 任意文件上传_第1张图片

漏洞复现

因为rpc通信需要使用json或者xml,不太方便,所以我们可以借助第三方UI来和目标通信,如 http://binux.github.io/yaaw。

将其下载下来,搭建到phpStudy 中(测试环境不在公网,不能反向连接内网,所以需要下载到本地环境中)

Aria2 任意文件上传_第2张图片

点击setting,配置Aria2地址

Aria2 任意文件上传_第3张图片

设置下载任务,并填写shell地址,其中 File Name处填写文件名 ,dir处填写文件路径。通过这个漏洞,可以写入一个crond任务来反弹shell,其中在debian中,/etc/cron.d目录下的所有文件将被作为计划任务配置文件(类似crontab)读取,等待一分钟不到即成功反弹shell

Aria2 任意文件上传_第4张图片

Aria2 任意文件上传_第5张图片

在kali中监听端口,等待反弹的shell

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C2QLiaau-1591869159488)(img/24.png)]

总结

刚开始在windows里,写定时任务代码,发送到服务器的/etc/cron.d中无法执行,考虑是否编码错误,因为crontab文件的格式,以及换行符必须是\n,且文件结尾需要有一个换行符。换在kali中写好定时脚本,再上传至服务器,不到一分钟成功反弹shell。

注意编码问题,看似小,其实很重要。

你可能感兴趣的:(学习)