前言
记录一下某次的授权测试,过程中也遇到了当时感觉有点坑的东西,细看下来,感觉又是那样的索然无味。
一. 从文件上传到getshell
前台-留言板上传测试:
1. 上传jpg 返回200 url:http://ceshi.com/2020-6-7/1592796160.jpg 2. 上传txt 内容:123 Success 3. 上传Jsp 内容:123 Success 4. 等等
目的测试目标可解析文件。 全是200.心里一激动。感觉又怪异。访问jsp ,出现123.心里想着shell到手。
再次测试:
4. 上传jsp冰蝎马, 返回200 。url:http://ceshi.com/2020--6-7/1592796558.jsp 心里激动,shell到手。访问一下试试,页面 404。~~~~ 猜想: 1. 内容检测。 2. 返回数据包有问题。实际没有上传成功。
继续测试:
5. 针对内容检测fuzz,主要针对特殊字符。<%@%>等。(一般马都有) a) <%任何字符%>。404 b) <%123> 404 c) <123%> 200 d) 经过不断的fuzz,发现上传jsp开头不能使用%。
思路: 1.找到不带%%的jsp马。 2.继续fuzz。
6.这里先找不带%%的jsp命令执行马. a) 使用不带%%的jsp马,一马平川,上传 返回200.访问200.webshell到手 b) 命令执行,突然发现不能带空格的命令。 c) 使用拼接等发现也没有办法执行。
7.继续fuzz。使用混淆试试,之间都是正常字符测试。 之前的测试数据包: 123qwe <%%> 返回404. 使用混淆。 <此处是乱码> <%正常jsp命令执行木马%> 返回200. 可以正常命令执行。
Ps:第一个没有带%%的木马,白嫖后太急了,没看代码,之后看代码才发现,带空格的命令需要用@连接。net@user 即可执行~
二. 继上文,不完整的内网探测。架设目标当前内网地址10.10.10.1/24(DMZ区)
1. 从上文拿到了webshell,命令执行。简单执行几个命令
1. ipconifg/arp/netstat -ano。探测内网的基本网络环境 –存在多层内网
2. net time 探测一下是否存在域控环境。--当然内网无域控
3. tasklist 查看进程。存在vmtools.Exe --vm虚拟化的云/未发现杀软
4. powershell。可运行。
2. 针对目前的环境powershell可运行,考虑直接远控。CS上线。(方法很多,简单最好)
Cs:attacks---web Drive-by---scripted web delivery 生成powershell 。
利用命令执行powershell.exe 。滴滴 cs上线。
3.一些坑(x86的系统,有点蒙)
a).稳定性不强,cs一直卡住,5分钟才能执行一个命令。一顿以为是被发现了。~ b).怀疑是x86 的powershell问题,上传了一个exe文件,发现快多了。但是还是不是太稳定。 c).最后cs注入进程分派给msf一个session。发现msf 最稳定。
4.简单的内网测试—为啥简单,半路被发现了。关站了。
a).cs -mimikatz -读取admin- hash—ntlm—md5解密---成功解密 b).cs -socks代理到vps,Proxifier代理到本地。全流量到本地,有点坑,只加载了mstsc.exe 到本地。 (前期因为cs不稳定,尝试各种稳定的远控,浪费了很多时间,导致后面被发现的原因之一) c)mstsc登陆。看一下网络连接。发现数据库网段和其他网段 10.10.10.1:123 ---10.10.20.1:3306(重点) 10.10.10.1:233 --- 172.10.1.1:98 10.10.10.1:333 --- 10.254.1.1 查看本地的mstsc,没有发现连接记录。 查看浏览器,没有发现利用价值。 Tracert ,探测出网网段。
当前:DMZ区。
目标:云/数据库网段。
目标区域:管理区或者业务区。说明最少跳一下,才有收获。
d)当前网段,为了发现更多敏感网络。探测发现存活机器数10多台,密码通用,登陆几台,看看网络连接等,未发现更多的东西。停止,换姿势。
e)数据库网段,arp探测。发现近10台机器。
f)目标是寻找云平台,常规思路:
网段探测80端口,找web 登陆接口。手里没有好的抓取title的脚步,直接上的Scan, Advanced IP Scanner。
扫描了数据库网段。抓取web title。运气好,密码还是通用。
简单的看一下,没有收获。
三:另一处的注入点—未getshell(Mysql)
目标点:后台-爆破用户名-登陆后台-某处搜索框存在sql注入。
1. sqlmap直接注入。发现存在报错注入和延时注入。
2. 思考如何获取权限:
a) 常规
i. 网站绝对路径、web目录可写、支持into outfile
b) udf执行系统命令
i. 知道lib/plugin目录 支持into outfile
3. 尝试getshell:
a) 当前dba ---true b) 使用sql-shell 获取当前数据库路径。E:\\Program Files (x86)\\Mysql\\data
4. 寻找网站绝对路径
a) 网站报错,未发现,统一404优化报错页面
b) 通过数据包,发现resin1.0.6进行resin路径猜测。
i. 找打resin后台,未爆破成功 ii. 寻找resin历史漏洞,都不存在。 iii. 进行resin路径猜测 1. E:\\ resin\. 2. C:\\ resin 3. E:\\ \Program Files (x86)\\resin 4. 把上述resin 路径加上版本号等等,也未果。放弃~
5. 尝试udf执行系统命令(也是第一次用)
a) 需要支持 into outfile b) 常规操作。 c) Sqlmap 报错,说不支持堆叠查询。最后无果
6. 寻找高权限用户
a) 直接sqlmap读取用户名密码,发现最开始的几个全部都是NULL,其余未发现admin用户。 b) 换思路,使用sql-shell读取尝试 i. Select *from id,pwd limit 1;读取成功 c) 登陆 i. 好几个数据库管理。 ii. 未发现利用点
7. 关于这里的文件上传(怕表哥说后台上传点都没有)
a) 存在任意文件上传。 b) 使用flash文件上传,不解析 c) 文件上传后url:http://www.ceshi.com/1.jsp?id=u23i451k2h4h5j
本文作者:G0mini, 来自FreeBuf.COM