攻防演练复现记录
之前参加的攻防演练的比赛,复现一下顺便记录一下学习过程。
门户网站getshell
打开门户网站,网站下面版权标记某款cms以及版本号,网站后台也在最下方链接,点击进入后台,后台没有验证码,但多次登录失败会触发验证码机制。
门户网站IP端口有安全策略,nmap扫描结果无效,测试22端口开放,数据库是mysql,在对安全机制测试中,burp爆破线程3以内不会被BAN IP,扫了目录,用的tomcat,尝试tomcat后台弱口令未成功。robots有网站备份文件路径,访问不能下载。
网站前台开放注册,注册用户并寻找上传点,burp抓包登录回显remember me,尝试shiro反序列化。
继续看前台登录,在邮件发布发现编辑器并且可以上传。
测试上传jpg文件成功,上传功能正常,burp抓包修改后缀为jsp,上传成功,返回了文件路径。
修改上传内容测试哥斯拉jsp马上传,被waf拦截,burp未响应。
用免杀马再次上传成功,但访问马路径却提示403,百度后了解该cms有安全机制,该目录下jsp文件访问受限,无法正常解析使用。
百度查询该款cms爆出的漏洞,有rce和文件包含,但均未公布poc和exp,cms官网有测试站点并且提供源码下载,查询后了解后台可以上传zip文件并解压getshell,目前思路有两个,一个是审计找出文件包含,将前台上传的jsp文件包含getshell,另一个就是爆破后台账号getshell,由于能力有限,放弃代码审计。尝试爆破次数受限,未能成功进入后台。
门户站无果,尝试另一资产银行系统,该系统界面为登录界面,burp抓包尝试sql注入,后在管理员账号字段发现存在sql注入,报错信息有管理表名,且使用Hibernate框架。
Hibernate框架sql注入可以使用hqlmap工具直接跑,使用该工具检测出存在sql注入。
根据burp报错信息中的表名,注入列名时发现报错,由于工具小众,google后别人使用有同样问题,工具逻辑设计有问题,详细说明见https://www.bountysource.com/teams/hqlmap/issues?tracker_ids=728071。尝试手注,猜测用户名字段username,使用payloadtest' or ascii(substr((select username from xxxx where id=1),1,1))>1 or '1'='1
,发送后未回显,猜测waf拦截,使用burp插件chunked编码绕过,测试成功。
直接扔burp intruder跑一下username的ascii码,password同理。
拿到了账号密码登录进去,发现一处任意文件下载,读取配置文件后得到了数据库连接信息。
使用navicat尝试连接,可以直接外连,连接后得到了门户网站管理账号以及另一考试系统的管理账号。使用该账号密码登录门户后台。
在后台上传压缩后的zip文件解压后成功getshell,且为root权限。
内网探测
上传代理neo-regeorg将流量带出,使用kali里的proxychain启动metasploit尝试内网资产探测。
对开启服务的资产进行弱口令爆破,使用之前mysql数据库密码尝试对开放3306的主机批量爆破。
读取/etc/passwd和/etc/shadow,跑字典后尝试对ssh和smb爆破。
在资产中发现考试系统,使用数据库内容解密后成功登录考试系统。