一. 从文件上传到getshell。
发现目标点:前台-留言板
上传测试:
-
上传jpg。返回200 url:http://ceshi.com/2020-6-7/1592796160.jpg
-
上传txt。内容:123 Success
-
上传Jsp。 内容:123 Success
等等。目的测试目标可解析文件。
全是200.心里一激动。感觉又怪异。访问jsp ,出现123.心里想着shell到手。再次测试:
-
上传jsp冰蝎马, 返回200 。url:http://ceshi.com/2020--6-7/1592796558.jsp
心里激动,shell到手。 访问一下试试,页面 404。 ~~~~
猜想: -
内容检测。
-
返回数据包有问题。实际没有上传成功。
继续测试:
5. 针对内容检测fuzz,主要针对特殊字符。<%@%>等。(一般马都有)
- <%任何字符%>。 404
- <%123> 404
- <123%> 200
- 经过不断的fuzz,发现上传jsp开头不能使用%。
思路:找到不带%%的jsp马。.继续fuzz。
6.这里先找不带%%的jsp命令执行马。
- 使用不带%%的jsp马,一马平川,上传 返回200.访问200.webshell到手
- 命令执行,突然发现不能带空格的命令。
- 使用拼接等发现也没有办法执行。
7.继续fuzz。使用混淆试试,之间都是正常字符测试。
之前的测试数据包:
123qwe
<%%>
返回404.
使用混淆。
<此处是乱码>
<%正常jsp命令执行木马%>
返回200.
可以正常命令执行。
Ps:第一个没有带%%的木马,白嫖后太急了,没看代码,之后看代码才发现,带空格的命令需要用@连接。net@user 即可执行~~~emmm
二. 继上文,不完整的内网探测。架设目标当前内网地址10.10.10.1/24(DMZ区)
-
从上文拿到了webshell,命令执行。
简单执行几个命令。 -
ipconifg/arp/netstat -ano。 探测内网的基本网络环境 –存在多层内网
-
net time 探测一下是否存在域控环境。 --当然内网无域控
-
tasklist 查看进程。 存在vmtools.Exe --vm虚拟化的云/未发现杀软
-
powershell。 可运行。
-
针对目前的环境powershell可运行,考虑直接远控。CS上线。(方法很多,简单最好)
Cs:
attacks---web Drive-by---scripted web delivery
生成powershell 。
利用命令执行powershell.exe 。 滴滴 cs上线。
3.一些坑(x86的系统,有点蒙)
- 稳定性不强,cs一直卡住,5分钟才能执行一个命令。一顿以为是被发现了。~
- 怀疑是x86 的powershell问题,上传了一个exe文件,发现快多了。但是还是不是太稳定。
- 最后cs注入进程分派给msf一个session。发现msf 最稳定。
4.简单的内网测试—为啥简单,半路被发现了。关战了。。。
- cs -mimikatz -读取admin- hash—ntlm—md5解密---成功解密
- cs -socks代理到vps,Proxifier代理到本地。全流量到本地,有点坑,只加载了mstsc.exe 到本地。(前期因为cs不稳定,尝试各种稳定的远控,浪费了很多时间,导致后面被发现的原因之一)
- 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区。
目标:云/数据库网段。
目标区域:管理区或者业务区。说明最少跳一下,才有收获。
- 当前网段,为了发现更多敏感网络。探测发现存活机器数10多台,密码通用,登陆几台看看,网络连接等,未发现更多的东西。停止,换姿势。
- 数据库网段,arp探测。发现近10台机器。
- 目标是寻找云平台,常规思路:
网段探测80端口,找web 登陆接口。手里没有好的抓取title的脚步,直接上的Advanced IP Scanner。 扫描了数据库网段。抓取web title。运气好,密码还是通用。
简单的看一下,没有收获。
然后,cs掉了。然后,关站了~~我。。。
三:失败的注入点—未getshell(Mysql)
目标点:后台-爆破用户名-登陆后台-某处搜索框存在sql注入。
- sqlmap直接注入。发现存在报错注入和延时注入。
- 思考如何获取权限:
a) 常规
- 网站绝对路径、web目录可写、支持into outfile
b) udf执行系统命令
- 知道lib/plugin目录 支持into outfile
- 尝试getshell:
- 当前dba ---true
- 使用sql-shell 获取当前数据库路径。 E:\Program Files (x86)\Mysql\data
- 寻找网站绝对路径
- 网站报错,未发现,统一404优化报错页面
- 通过数据包,发现resin1.0.6进行resin路径猜测。
i. 找打resin后台,未爆破成功
ii. 寻找resin历史漏洞,都不存在。
iii. 进行resin路径猜测
-
E:\ resin.
-
C:\ resin
-
E:\ \Program Files (x86)\resin
-
把上述resin 路径加上版本号等等,也未果。放弃~
-
尝试udf执行系统命令(也是第一次用)
- 需要支持 into outfile
- 常规操作。
- Sqlmap 报错,说不支持堆叠查询。最后无果
详情可以参考Tide-team-nuoyan 博客
https://www.jianshu.com/p/c29cd986e792
- 寻找高权限用户。
- 直接sqlmap读取用户名密码,发现最开始的几个全部都是NULL,其余未发现admin用户。
- 换思路,使用sql-shell读取尝试
i. Select *from id,pwd limit 1;读取成功 - 登陆
i. 好几个数据库管理。
ii. 未发现利用点
- 关于这里的文件上传(怕表哥说后台上传点都没有)
- 存在任意文件上传。
- 使用flash文件上传,不解析
- 文件上传后url: http://www.ceshi.com/1.jsp?id=u23i451k2h4h5j
四:总结
文件上传失败总结:
- 第三方图床。没啥用
- Flash上传,访问url: http://1.1.1.1/1.jsp?id=12345678。 不解析
- 上传至数据库,
url:http://1.1.1.1/1.jsp?2j3i4h2h1h5h?token=12345?url=http://1.1.1./1.jsp? 2j3i4h2h1h5h?url=http://1.1.1.1/xxxxxxx
也不解析。
4. 白名单。10个上传9个白名单~,绕不过
5. 目标模版统一。一通百通,一不同百不同
6. 参数访问。不解析
7. 内容检测绕过。
整体流程总结:
攻防演练准备—被选中目标提交目标网站—正式开始。
目标网站是别人挑选的---应该都是很安全的网站---直接打目标打不动。
本次用到的渗透思路:
-
越来越多的演练,都是C段入手,目标实在打不动。
a) 这次获取的C段shell还是不少,有点坑是要不就是阿里云。要不就是直接被关站。
b) C段内网快速找到目标。
i. 内网本地nslookup ,查看目标网站是否为内网地址解析。--未发现
ii. 内网网段,快速探测web端口,获取titile值,进行对比。 -
子域名问题
a) 目标站点:www.ceshi.com (测试官网)
子域名: a.ceshi.com (测试子域名)
子域名ip:1.1.1.1:80 (测试子域名)
发现漏洞存在点 1.1.1.1:90 (不是测试子域名资产,另一套系统)
假设获取 1.1.1.1:90 数据库 原则上没用
假设获取 1.1.1.1:90 getshell。证明是目标资产,比如内网找到目标子域名数据裤才可。
b) 资产子域名,三级子域名不可。 -
旁站,没有可圈可点的地方,略过。
最后:
菜鸟的基本素质:演练三天,总结一周。
别人0day-getshell,我只会明文爆破用户。