Skip to content

Latest commit

 

History

History
307 lines (143 loc) · 13 KB

[Z2O安全攻防]-2023-8-1-某银行外网打点到内网核心区红队评估复盘.md

File metadata and controls

307 lines (143 loc) · 13 KB

某银行外网打点到内网核心区红队评估复盘

Z2O安全攻防

Z2O安全攻防

微信号 Z2O_SEC

功能介绍 From zero to one


__发表于

收录于合集

以下文章来源于希潭实验室 ,作者abc123info

希潭实验室 .

ABC_123,2008年入行网络安全,某部委网络安保工作优秀个人,某市局特聘网络安全专家,某高校外聘讲师,希潭实验室创始人。Struts2检测工具及Weblogic T3/IIOP反序列化工具原创作者,擅长红队攻防,代码审计,内网渗透。

** Part1 前言 **

本期分享一篇ABC_123曾经做的针对一家银行的红队评估项目,持续时间两周,难度非常大,但是最终打到了银行核心业务区,今天就复盘一下全过程, 希望红蓝双方都能得到一些启示,这也是“ 未知攻、焉知防”的道理

** Part2 具体过程复盘 **

首先放出一张ABC_123绘制的关于此次红队评估项目的流程图,接下来依据此流程图,详细讲解整个红队评估过程。

  • 外网打点过程

一般来讲,针对银行项目,如果不用0day是很难打穿的。本次红队评估项目,在外网打点方面, 付出的代价是用了2个0day1、 通过日志信息泄露定位到一个供应链系统,代码审计出一个0day漏洞,是上传漏洞; 2、 某文档在线预览系统的命令注入漏洞。

在内网横向过程中用了2个漏洞: 1、 某业务的端口存在java反序列化漏洞; 2、 Websphere中间件的几个端口存在的Java反序列化漏洞。

** 1 供应链系统的上传漏洞**

首先通过扫目录,发现一个/logs路径,里面有一些Web应用程序的报错信息,从中发现了一个不常见的jar包类名。

接下来通过各种百度、谷歌、Github使用上述关键字搜索, 找到了该系统的开发厂商 ,后续通过一些列方法获取源代码。源码目录结构与网站相差无几,基本上证明是同一套源码,然后通过Java代码审计出来一处上传漏洞,可惜需要登录后台才能用。走投无路的时候,翻了翻源码中的初始化sql文件,发现系统在启动过程中,会执行这些sql文件,从而默认会添加一个测试账号,于是使用此测试账号,登录后台获取webshell,后续主要的内网横向是通过这个入口开展的。

** 2 ColdFusion反序列化**

旗下网站存在Coldfusion反序列化漏洞,该漏洞在我之前的文章有详细介绍《coldfusion反序列化过waf改exp拿靶标的艰难过程》,接下来利用此系统的代码执行漏洞获取了第2个Webshell权限。这里指出一点,对于coldfusion漏洞的利用,推荐使用网上的可以直接执行命令的方法, 尽量不要用出网JRMPClient的利用方式 ,这种方法多次发包后,很容易造成coldfusion网站停止响应,具体原因不明,这是经验之谈,踩过的坑。

由此系统开展内网横向,但阻力非常大,网络隔离做得非常好,对于内网其它的IP地址,基本上都是只能ping通,端口不通,因此只能重新进行外网打点。

** 3 某文档在线预览系统命令注入**

这个漏洞是一个普通的命令注入漏洞,直接GET传参,导入runtime执行,非常简单的一个命令注入漏洞。但是该系统是放在云上的,资产非常少,配置文件中也没有发现阿里云AK/SK等秘钥,最后就是可以查询一些员工的姓名、用户名列表。

** 4 网盘信息泄露**

通过网盘搜索方法,对各种敏感关键字进行检索, 发现了一个员工离职交接文档的压缩包 ,解压后1G多,里面存放了大量的网络拓扑图及通讯录信息,对后渗透了解网络架构起到了很大帮助。

注:网盘搜索需要分情况而论,那些经历过很多轮攻防比赛及红队评估比赛的目标,网盘检索已经很难发现有价值的信息了,在早期这种方式能获取很多有价值的信息。

  • 内网横向过程

该银行内网资产中Websphere中间件和Oracle数据库特别多,所以内网横向过程主要通过以下两个方向展开:

** ** 1 ** ** Websphere中间件漏洞。Websphere中间件在8880、2809、9100、11006等端口均存在java反序列化漏洞,可以拿到权限。

** 2 ** Oracle数据库权限。通过翻Web应用的配置文件,将加密密码解密,然后连上Oracle数据库,通过Oracle提权漏洞获取服务器权限。

  • 外网其它漏洞

除了通过0day漏洞打点,在外网还发现了很多Web应用层面的漏洞,其中包括SQL注入漏洞、短信炸弹、APP客户端漏洞、密码重置、Nginx解析漏洞、遍历交易记录、爆破弱口令等等,通过这些漏洞获取到了一些敏感信息,对后期渗透有很大帮助。接下来我挑选几个比较有代表性的漏洞讲一讲。

** 1 培训系统上传漏洞,可上传html页面**

如下图所示,可以直接上传html文件,如果在html文件里插入XSS攻击代码,就相当于变相创造一个存储型XSS漏洞,或者可以上传一个钓鱼页面,用作水坑攻击。以下本机虚拟机中的截图,是效果图。

** 2 DOM型XSS漏洞**

DOM型XSS由于其特殊机制,可以绕过所有的waf拦截。

https://www.xxx.com/xxx/include/resources/reload.html#vbscript:msgbox(1)

** 3 任意文件读取漏洞**

这是外网的一个系统,存在任意文件读取,绕过waf的方法如下:

** 4 宽字节吃掉转义字符造成XSS**

这里无论怎么操作,xxs的payload都会落在双引号内被当作字符串而无法执行,这时候可以尝试用宽字节方法,吃掉临近的转义字符反斜杠,从而继续XSS。如下图的箭头所示,图片裂开显示,说明xss代码得到了解析执行。

** 5 短信炸弹绕过限制**

这个短信炸弹比较有意思,对手机号一分钟内发短信的次数做了限制,但是 可以在手机号后面不断叠加%20 (空格的url编码)方式绕过,通过Burpsuite的intruder模块添加N次%20造成短信轰炸。

** 6 删除sign参数绕过校验**

有时候会遇到如下这种情况,使用burpsuite抓包后,重放数据包会提示MAC校验失败,这种情况比较难办,在本次案例中,尝试删除sign字段,就不会提示“MAC校验失败”了。

** 7 使用Frida解决APP参数加密**

** 8 审计JS代码,解决Web传参加密**

在JS代码的登录事件处的下断点,发现数据包通过$.jCryption.encrypt(tempS, ***, )这个函数加密,其中加密key是固定值,直接使用$.jCryption.decrypt(,password);可以解密数据包。数据包解密之后,发现了多处逻辑漏洞、越权漏洞。

** 9 其它Web应用漏洞**

此外就是在外网中挖到的一些Web应用漏洞,都是比较常见的漏洞,不过多叙述大致总结如下:

1. Springboot框架的heapdump文件下载,从中可以翻到账号密码,还有Springboot的/env地址泄露内网ip地址,方便后续渗透定位内网ip。

2. 公众号上面有一处链接,连接到第三方网站,该网站居然有nginx解析漏洞。获取shell之后,发现用处不大,是个孤岛服务器,除了一个mysql数据库之外,没有多少有价值的信息。

3. 外网几处SQL注入漏洞,这个就不多说了,都是Mysql数据库,而且非root权限,进一步利用非常困难。最终获取到了对后续渗透有价值的员工姓名、手机号、工号。

4. Github源码泄露,在github上搜索到了部分源码和邮箱地址。

5. 外网业务系统的逻辑漏洞,原报告的截图就不贴出来了,因为逻辑漏洞的截图打码是很容易遗漏的。基本上都是一些交易记录越权查询、账单平衡越权查询、还款计划越权查询等等,方法无一例外,就是改各种参数的值,看是否有越权漏洞。

6. 再一个就是有一些废弃的上传功能,但是从网页的js中,上传功能的地址还存在,构造好上传包,就发现了一个上传漏洞,但是只能上传html文件。在之前的案例中,曾经获取过权限。

7.

APP客户端漏洞。APP弱加壳:这个是靠Xposed对app进行hook,然后使用callMethod方法dump出hook到的类,然后进行反编译。这里不过多叙述,APP脱壳我研究得极少;IPA客户端的某秘钥泄露:使用IDA Pro对IPA客户端进行反编译,从中寻找硬编码,找到了一处敏感信息泄露。

  • 社会工程学攻击

如下图所示,以下是社会工程学攻击过程,总体来说,不太成功,因为该银行严格限制了出网规则,由于不出网,针对客服系统的XSS钓鱼及针对银行员工的邮件钓鱼均没有成功。

** 1 微*信聊天发送压缩包**

通过前期信息收集,再结合外网web应用系统找到的sql注入漏洞、云上数据库权限等,得到了一个手机号列表,通过这些手机号挨个加微信聊天,发送带有压缩包的后门,但是能上线的都是个人笔记本电脑,办公网电脑是绝对不允许通外网的,登录不了微信,所以微信社工这一思路很快被停止。

** 2 邮箱伪造发信人地址攻击**

通过对邮件系统的检测,发现邮件系统存在伪造任意源邮箱地址漏洞,结合Kali Linux的swaks工具可以以任意管理员身份发送钓鱼邮件,并且可以绕过防钓鱼邮件网关。此次红队评估过程,成功假冒银行信息部管理员(admin@xxbank.com.cn)身份发送了钓鱼邮件,但是最后居然一个都没有上线的,后来了解到,员工登录邮箱环境不通外网。

大致命令如下:swaks --to zhangsan@xxbank.com.cn -f test@xxbank.com.cn --server mail.xxbank.com.cn -p 2525 -au--ehlo xxbank.com.cn --h-From "XXX银行信息部admin@xxbank.com.cn" --header "Subject:XXX银行信息部" --body "hello,您的邮件我已收到."

  • 物理渗透阶段

在得到客户的授权许可情况下,和几个同事一起开车去总行周边转了好几圈,强行进入总行内部看起来可能性不大,于是把重心放在wifi热点上。经过探测发现了2个wifi热点, 其中有一个被万能钥匙收录 ,可以直接连上测试区网段;第2个wifi热点,需要提供密码, 此密码正好在内网文档中找到 ,所以两个wifi热点均被拿下,但是都只是能通测试区或者是能上外网的互联网区。

随后使用平板电脑放在附近,反弹出一个socks5代理,交给后面同事们对内网测试区进行横向渗透,但是非常遗憾的是,测试区放置的都是一些测试系统,网络隔离非常严格, 测试区与生产区完全隔离 ,无法连到总行的办公网或者业务网。有时候在测试区系统上存在一些**业务系统的war包等敏感信息。

内网横向漏洞都是比较常规的,比如说MS17-010漏洞获取windows系统权限,zabbix可以执行命令,API网关管理员弱口令、移动办公系统的姓名、手机号信息,商户管理系统的shiro反序列化等等,这里就不过多叙述了。

** Part4 总结 **

**1. **银行红队评估项目一般难度都非常大,多数都得靠0day,靠代码审计,现在红队人员基本上靠供应链的漏洞打进去的情况较多, 供应链安全防护也是重中之重

**2. **外网的那些无法拿权限的漏洞,在后渗透阶段,会提供很好的信息支持。sql注入、弱口令可以帮助红队人员了解业务系统用户名的命名方式,内网ip地址泄露在后渗透阶段可以用于快速定位ip段, 所以这些中低危漏洞也要及时修复

**3. **物理渗透的Wifi热点的安全问题,也很常见,有时候装一个万能钥匙之类的软件,就能起到很大效果。

**4. **有的云上的系统也可以尝试一下获取webshell,因为有些云上系统的代码中,会有阿里云、腾讯云的AK/SK等,如果碰到一个,一下子拿一片服务器权限。

5. 遇到参数加密的情况,如果是手机APP,可以试试Frida;如果是Web应用,可以试试找到javascript解密函数。 ****

预览时标签不可点

微信扫一扫
关注该公众号

知道了

微信扫一扫
使用小程序


取消 允许


取消 允许

: , 。 视频 小程序 赞 ,轻点两下取消赞 在看 ,轻点两下取消在看