0x1 前言
浅谈
师傅们又又又到文章的分享时刻了,这次给师傅们分享的是前段时间打的一个省级HVV的攻防演练,然后呢,也是借着这次写文章的机会,给师傅们复盘下,然后自己也可以总结下,把团队打的部分漏洞也复盘下(漏洞不完整,部分敏感的getshell、rce的不透露了)。
总的来说团队的几个大牛子还是蛮厉害的,菜鸡的我都不好意思了(哈哈哈),然后呢今天给师傅们写这篇文章,分享下漏洞挖掘的案例(好东西心里面藏不住,就想着给师傅们分享了),然后顺便把我在这次攻防演练打的漏洞给师傅们分享下。
0x2 攻防演练的简介和注意事项
一、什么是攻防演练
攻防演练是一种模拟真实攻击和防御的活动,旨在评估和提高组织的安全防护能力。在攻防演练中,一个团队(红队)扮演攻击者的角色,试图发起各种攻击,而另一个团队(蓝队)则扮演防御者的角色,负责检测、阻止和应对攻击。
二、攻防演练的步骤
- 规划和准备:确定演练的目标、范围和规则,制定攻击方案和防御策略,并准备相应的工具和环境。
- 攻击模拟:红队使用各种攻击技术和工具,模拟真实攻击,如网络渗透、社会工程、恶意软件传播等,以测试组织的安全防护措施和响应能力。
- 防御检测:蓝队负责监测和检测红队的攻击行为,使用安全监控工具和技术,如入侵检测系统(IDS)、入侵防御系统(IPS)、日志分析等,及时发现和报告攻击。
- 攻防对抗:红队和蓝队之间进行攻防对抗,红队试图绕过蓝队的防御措施,而蓝队则尽力阻止和应对攻击,修复漏洞,提高安全防护能力。
- 分析和总结:演练结束后,对攻击和防御过程进行分析和总结,评估组织的安全弱点和改进空间,制定相应的安全改进计划。
通过攻防演练,用户可以发现和修复安全漏洞,提高安全防护能力,增强对真实攻击的应对能力,同时也可以培养和训练安全团队的技能和经验。攻防演练是一种有效的安全评估和提升手段,有助于保护组织的信息资产和业务安全。
三、攻防演练常见丢分项有哪些?得分项有哪些?
常见的丢分项
-
漏洞未修复:如果目标系统存在已知漏洞,但未及时修复,红队可以利用这些漏洞进行攻击,导致丢分。
-
弱密码和默认凭证:如果目标系统使用弱密码或者默认凭证,红队可以轻易地获取系统访问权限,导致丢分。
-
安全配置不当:如果目标系统的安全配置不当,例如开放了不必要的服务或者权限设置不正确,红队可以利用这些漏洞进行攻击,导致丢分。
-
未发现攻击行为:如果蓝队未能及时发现红队的攻击行为,或者未能有效地监测和检测到攻击,导致丢分。
-
未能及时响应和阻止攻击:如果蓝队未能及时响应红队的攻击行为,未能采取有效的防御措施,导致攻击成功或者造成严重影响,会丢分。
常见的得分项
-
漏洞修复和安全补丁:如果目标系统及时修复了已知漏洞,并安装了最新的安全补丁,可以得分。
-
强密码和凭证管理:如果目标系统使用强密码,并且凭证管理得当,可以得分。
-
安全配置和权限控制:如果目标系统的安全配置正确,并且权限控制合理,可以得分。
-
发现和报告攻击行为:如果蓝队能够及时发现红队的攻击行为,并及时报告,可以得分。
-
有效的防御和响应措施:如果蓝队能够采取有效的防御措施,及时响应和阻止攻击,可以得分。
得分项和丢分项的具体评判标准可能因不同的攻防演练规则和目标而有所不同。
0x3 漏洞复盘
一、文件上传
1、浅谈
因为这次地级市的攻防演练的资产范围非常广,你比如说像市、县、镇等这些有关的政府、学校、还有这个市里面一些大点的企业的资产都可以打,所有来讲难道不是很难。下面这个站点就是一个事业编政府单位的站点,开始也没什么说的,像这样的登录站点,一般上来就是弱口令测试,下面的这个站点也是先使用弱口令test:test进去,然后再扩大危害。
后面的深入利用就交个队友了,自己对于内网的渗透测试还是没有那么熟练,后面进行getshell拿权限,提权等内网遨游的一些敏感的截屏和数据之类的就不给师傅们演示了,其实吧像这种,主要就是思路,案例都差不多,因为这个站点也确实是没有做任何的防御。
2、具体打法如下
因为是test测试账号,所有进去师傅们可以看到功能点的权限并不多,师傅们可以看到下面的议题列表中的添加功能,然后这里存在文件上传的功能点
下面来试试这里文件上传,随便上传一个图片上去,然后利用bp抓包看看里面的数据包
这里我只是点击选择文件,没有点击下面的绿色提交按钮,但是看数据包可以发现已经上传成功了
我们访问下这个图片上传成功的路径,看看是不是真的上传成功了
访问返回包的路径,可以看到确实上传图片成功了
删掉后面的图片名称,然后看看能不能打一个目录遍历漏洞
但是这里没有成功,返回403权限拒绝访问,说明存在这个目录,但是没有权限,也算是一个思路了吧
通过几次数据包的抓取,分析发现这个站点的上传文件的方式没有任何的过滤方式,应该可以直接上传恶意文件,然后getshell一波。
使用wappalyzer
插件,可以看到这个站点是使用php搭建的,那么就可以上传php木马上去,然后打一波phpinfo()了
直接打一个phpinfo()证明危害即可
-----------------------------19248753661017244075365571982
Content-Disposition: form-data; name="file"; filename="xiaoma.php"
Content-Type: image/jpeg
GIF89a
<?php
phpinfo();
?>
-----------------------------19248753661017244075365571982--
然后再直接访问这个地址,可以看到直接打出来了一个phpinfo()的页面
后面要是上传木马,然后getshell也是可以的,但是这是测试,没必要上传木马,直接证明危害即可
二、微信小程序两个key泄露
1、session_key三要素泄露
下面呢是我在挖那个市里面的人社局的微信小程序,说到微信小程序呢,师傅们应该是不陌生的,特别是打微信小程序常见的几个泄露,比如说这次要分享的session_key三要素泄露案例漏洞就是其中一个。session_key三要素泄露指的是SessionKey、iv以及加密字段全部泄露出来,一般在微信小程序使用手机号一键登录的时候常见的泄露,但是很多都是泄露iv以及加密字段,但是session_key值泄露的少。
可以看到这个数据包直接把SessionKey、iv以及加密字段三个部分全部泄露了
得到session_key三要素泄露之后呢,就需要使用我们的一个Wx_SessionKey_crypt这个工具了(需要的师傅们可以私信我,或者加我微信获取)
然后把泄露的三要素放到工具里面,然后解密,就可以看到我们的手机号了
其实利用这个漏洞的危害也很简单,就是我们可以在这个微信小程序的站点找到里面管理员的手机号,然后去替换手机号,然后再反向加密,然后再替换回开始登录的数据包中,然后再一键放包,就可以成功登录我们管理员的后台了
2、微信API接口调用凭证+Access token泄露
这个access_token泄露我感觉蛮多师傅都不是很了解,师傅们可以先去网上找下Access token泄露的相关文档,比如微信官方就有相关的文档记录。
在公众号和小程序均可以使用AppID
和AppSecret
调用接口来获取access_token,所以一般在打微信小程序的时候,一般都是泄露AppID
和AppSecret
,然后通过微信官方的接口来获取access_token,然后进行再一个利用
获取Access Token接口的网址如下:
https请求方式: GET
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=[APPID]&secret=[APPSECRET]
给师傅们看下在一些站点的网页源代码泄露的appid和appsecret参数值,长什么样子
不过下面的这个参数进行了魔改,是key和secret泄露,也就是对应的appid和appsecret泄露
先利用appid
和AppSecret
获取这个大学的微信小程序的Access_Token
值
显示7200,说明我们的Access_Token值获取成功
后面再利用就是直接使用微信官方的一个站点进行深入利用了,后面就不继续写了
下面这个在线的测试接口的地址是微信公众和小程序的官方测试使用的网址,相比上面的需要记住GET传参的url,下面的在线的测试接口的地址更加方便,且功能点也全
https://mp.weixin.qq.com/debug
三、Springboot泄露
下面的是Springboot泄露的漏洞,然后呢这个最后面是打穿了,云接管,OSS存储桶接管、数据库什么的都拿完了,拿了很多的权限分和数据分数,这里简单给师傅们分享下
他这个是那个里面的好几个Springboot接口泄露,然后/actuator/env接口泄露泄露了我们常说的ak/sk和用户账号密码之类的,直接可以云接管
然后在上面的云接管以后,找到了mysql数据库的账号密码,后面也是直接拿下了这个mysql数据库
然后还有就是这个OSS存储桶泄露了
四、druid弱口令/未授权
1、弱口令
碰到若依,一般都会去尝试拼接下druid路径,然后要是有登录页面,那么我们就可以尝试下使用常见的druid弱口令进行登录,或者弱口令爆破了
常见用户:admin ruoyi druid
常见密码:123456 12345 ruoyi admin druid admin123 admin888
其中在这次攻防演练中找到了好几个站点都是druid的,且都是使用弱口令可以直接登录进去的,其中druid:123456占多数
泄露很多url接口,且都可以进行访问测试
2、未授权访问
如果网站无需登录,则可利用未授权访问漏洞,直接访问下面的springboot常见报错界面404直接拼接常见路径(可构造未授权拼接尝试):
html:
ip/druid/index.html ##Druid Index
ip/druid/sql.html ##Druid sql监控页面
ip/druid/weburi.html ##Druid Web URI监控页面
ip/druid/websession.html ##Druid Web Session监控页面
json:
ip/druid/weburi.json ##Druid Web URI json
ip/druid/websession.json ##Druid Web Session json
Druid 登录接口:
ip/druid/login.html ##Druid登录认证页面
五、存储型XSS漏洞
这次在打到最后一天,说什么还有好几个资产没有打动,目前还没有扣分的记录什么的,说打了漏洞双倍积分,然后也是在这上面水了两个存储型XSS漏洞,就当是给小白看看吧,大佬直接划下面看别的漏洞案例吧。
打的方式也很简单,像在评论处容易存在存储型XSS漏洞,下面给师傅们演示下漏洞案例
直接在评论处插入XSS的简单语句,我这里就不打出来了
<img src=1 onerror=alert(1)>
插入之后保存,然后刷新下页面然后再次访问这个关于我们这个功能
可以看到直接打了一个XSS漏洞,且是存储型的,每次访问都会弹一个XSS
六、nacos未授权
正常的nacos系统是需要登录才可以进去访问的,但是在这次攻防演练中也碰到了好几个直接IP或者域名后面扫描目录,扫到/nacos路径,直接拼接就可以直接访问
然后可以在里面看到一些mysql数据库的配置信息,包括我上面写的泄露ak/sk,然后云接管,这些漏洞我之前都打过
这里有一个通过弱口令nacos:nacos登录进去的一个系统,然后我在里面的配置文件中找到了shiro的key密钥,然后我直接打了一个shiro反序列化漏洞,且可以直接执行命令
七、swagger接口泄露
最后来给师傅们分享下swagger接口泄露的这个漏洞,我发现好多系统都存在这个泄露,虽然说有些系统泄露的swagger-ui接口需要进行钥匙验证登录,但是还是有不少是直接可以调用这个接口使用的,这里建议师傅们使用曾哥的spring-boot工具的字典去跑,然后我这里也总结了自己的一个dir.txt敏感swagger泄露的 字典(有需要的师傅私信我,到时候免费发给你)
像这样的swagger-ui接口很多,且这样的泄露大多还没有加密,直接就可以调用接口
还有更加离谱的就是直接泄露doc.html后台接口管理页面,里面改系统的所有接口你都可以查看,而且看着也很清晰,就像下面的这个一样
八、某站点未授权创建普通用户
这个也是通过弱口令进入管理员权限的登录后台,然后在创建用户的功能点进行未授权测试
下面我们直接拿bp抓包,抓这个admin管理员创建用户的数据包,那么我们要是测试未授权,就可以尝试把这个token删掉,然后看看还能不能创建用户了
可以看到把token删掉了,但是还是可以创建用户成功,这样未授权就成功了
0x4 总结
好了,师傅们文章到这里就给大家分享完了,上面有看的上的工具都可以私信我,我免费给大家分享,主打一个贴心,师傅们看完觉得作者写的可以的,也可以点赞收藏加关注噢。
上面介绍的案例呢只是这次攻防演练的九牛一毛,但是因为很多涉及的截屏和内容比较敏感,不太好拿出来,太显眼了,一看就知道是哪个系统,到时候人家给我举报了,就吉吉了。然后看完文章以后,也希望对师傅们有帮助,祝愿师傅们多挖洞,多出洞!