目标站点:http://www.xxxx.com 一个新闻发布网站,网站底部备案信息是假的,服务器只能放到国外,这样免备案,PHPCMS核心,鉴于隐私,这里就不写了,以下都用A网站代替。
渗透第一步:根据域名查到IP,扫一遍开放端口,查看开启的服务
分析:80 web端口 21 FTP端口 3306 MYSQL服务
3389RDP服务 8090端口未知(初步猜测可能是phpmyadmin的web端口)
访问8090端口
猜错了,不是phpmyadmin,是N点主机管理系统,百度之,看是否有能利用的漏洞
思路一:利用通杀漏洞getshell
详见:http://www.secpulse.com/archives/24568.html
这个突破点专门写了一个文章http://lzsec.lofter.com/post/1ea7ea64_f3385c5
不过这个突破点断掉了,虽然能拿到数据库,但是里边是密文,我咨询了一些大牛,解密方法暂时没研究出来,对加密学感兴趣的可以去研究研究,一些有用的信息已经在文章里写出来了。
思路二:通过爆破FTP,上传一句话getshell
通过扫端口我们已经知道A主机开放21端口,想到能否通过ftp爆破,得到上传权限,进行getshell。
可是ftp用户名从哪找呢?感谢N点的数据库
sitehost表里边存在ftpuser字段,get下来,这样就大大提高了准确度,ftppss字段加密了,研究了一下有规律但是不知道如何逆向解密,只能通过爆破,在这里推荐一款ftp爆破工具ftpscan
只爆到一个ftp账号:域名/域名123 %username%123 这个密码爆到的 有很大一部分站长都这样设置ftp密码,很激动,心想着能通过ftp传一句话了然后getshell了
然而这个并不是网站的所在目录,有上传权限但是一句话并不能通过http进行解析,这一思路再次破产。
思路三:通过爆破3389端口进行渗透
简单粗暴但是这个成功率很低,但是我们总要想办法提高成功率,3389端口爆破的核心是啥?密码字典啊,我通过查whois等一系列社工手段,搜集了一些信息,并把信息做成了字典,放到DUbrute里边跑了一下,还是没有得到结果。该思路破产。
思路四:通过phpcms漏洞提权
看了一下版本是9.6最新版本的,我记着4月份刚爆出一个漏洞,就想试着通过phpcms getshell
姿势详见http://www.freebuf.com/vuls/131648.html
可是~可是管理员吧注册通道给关了,可能他已经发现此漏洞了。这个姿势不行了。
可是一时半会想不出其他思路,只能在一旁搁置着。
思路五:扫描网站备份文件,下载备份文件,读取配置信息getshell
无意中试着扫描网站目录,用wwwscan扫了一中午,午睡醒发现出结果了,一看是web.rar 初步猜测是网站备份文件,这样可以读取配置信息进行提权了
不过这个速度是没谁了,一共237M,不到20k/s 我下载了一下午,还好中间没有中断,这个断了是不支持断点续传的,只能从头开始。
因为是phpcms内核,解压后我们进入caches目录找到database.php 文件
这样得到了mysql的密码,这个案例中N点管理账号密码也是这个,ftp密码也是这个,于是连接FTP上传一句话利用了iis6.0的解析漏洞111.php:.jpg
上菜刀
至此getshell成功,下面进入提权阶段!
因为采用的是php+mysql环境 首先想到的是利用mysql的udf提权
如果采用udf提权需要获得root的密码,我们查找
mysql/data/mysql/user.MYD文件里面存放了mysql用户的账号和密码
我们拿去cmd5解密
这一般是解不出来的,希望再度破灭,在我用菜刀浏览D盘的时候我看到了一个pass.txt
的文件(站长朋友注意,密码文件别乱放,我还遇到过在管理员桌面放了一个txt专门记录各个服务器密码的,切忌!)
因此,我们就能udf提权了,udf提权导出dll文件首先要查看版本
MYSQL 5.1以下版本导出路径:↓
C:/Windows/udf.dll
MYSQL 5.1以上版本
必须要把udf.dll文件导出到MYSQL安装目录下的lib/plugin文件夹下才能创建自定义函数
需要创建plugin目录,才能导入。
导出到的目录C:/Program Files/phpStudy/MySQL/lib/plugin
添加账户,提升管理员组很顺畅,mstsc登录之~
至此整个渗透过程结束