Skip to content

Latest commit

 

History

History
308 lines (141 loc) · 13.4 KB

[希潭实验室]-2023-7-23-第70篇:某银行外网打点到核心业务区红队评估项目复盘.md

File metadata and controls

308 lines (141 loc) · 13.4 KB

第70篇:某银行外网打点到核心业务区红队评估项目复盘

原创 abc123info 希潭实验室

希潭实验室

微信号 abc123network

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


__发表于

收录于合集 #红队评估 32个

** Part1 前言 **

大家好,我是ABC_123 。前一阵子都在写APT技战术分析的文章,好久没写红队评估方面的文章了,本期分享一篇ABC_123曾经做过的针对一家银行的红队评估项目,持续时间两周,难度非常大,但是最终打到了银行核心业务区,今天就复盘一下全过程。

建议大家把公众号“希潭实验室”设为星标,否则可能就看不到啦! 因为公众号现在只对常读和星标的公众号才能展示大图推送。操作方法:点击右上角的【...】,然后点击【设为星标】即可。

** Part2 具体过程复盘 **

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

  • 外网打点过程

一般来讲,针对银行项目,如果不用0day是很难打穿的。本次红队评估项目, 在外网打点方面,付出的代价是用了3个0day :1、某学堂java反序列化代码执行漏洞;2、某微移动平台远程代码执行漏洞;3、银行某客服系统表达式注入漏洞。

** 1 外网某云学堂0day漏洞**

首先在外网发现了一个某云学堂的系统,通过github找到了该系统很旧的代码,审计出一个未授权的Java反序列化漏洞,通过这个漏洞获取了外网的第1个webshell。从中获取了一些有价值的信息,比如员工的中文姓名列表、工号列表等,这些信息对我们后期渗透很有帮助。可惜这个系统放在阿里云上,打内网意义不大,也没有发现阿里云AK/SK访问秘钥。

** 2 某微OA系统0day漏洞**

利用此系统的代码执行漏洞获取了第2个webshell,绕waf方面可以用unicode编码+超大数据包掺杂的方式绕过。本机Iptables配置如下,由于是银行的生产系统,不能也不允许修改iptables。在内网横向过程中,阻力非常大,网络隔离做得非常好,对于内网其它ip, 基本上是只能ping通,但是端口不通,因此只能重新进行外网打点

iptables -F INPUT

iptables -A INPUT -p ICMP -j ACCEPT

iptables -A INPUT -s 10.1.x.151 -j ACCEPT

iptables -A INPUT -s 10.1.x.154 -j ACCEPT

iptables -A INPUT -s 10.1.x.128/26 -j DROP

iptables -P INPUT ACCEPT

** 3 银行客服系统表达式注入0day漏洞**

通过在银行测试区获取到的java代码,审计发现一个表达式注入漏洞。顶着白天巨大的防守强度去搞,肯定是不行的, 最终选择了晚上8点钟开始进行webshell获取工作 。在绕过waf方面,通过unicode编码+超大包数据+分块传输,这几种方法混着用就可以绕过waf了。

获取这个webshell之后,直接可以获取服务器的root权限,这台服务器的网络隔离方面做得很有缺陷,而且是多网卡机器,可以通很多网段。在这个webshell上面,发现了将近10套业务系统的代码, 应该是后期业务下线,代码却没有及时删除 。提取这些系统源码中的配置文件,将数据库加密密码解密,最终获取了大量的Oracle数据库权限,主要分布在10.1.x.1/24网段,这是核心业务网段。在内网简单地探测,还发现有很多weblogic的服务器,继续获取到了EPay电子支付、HIS业务系统、银企对账签约、P2BPlat前置、RA服务器等系统的权限。及时跟客户沟通之后,客户觉得危害太大,不建议继续内网横向。

  • 外网其它漏洞

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

** 1 培训系统上传html文件漏洞**

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

** 2 业务逻辑漏洞**

原报告的截图就不贴出来了,因为逻辑漏洞的截图打码是很容易遗漏的。我大体看了一下,企业网银和个人网银总共有6个逻辑漏洞、越权遍历漏洞,包括交易记录平行越权访问、还款计划平行越权访问、查询账单平行越权访问、交易账单平行越权访问等。

所有的越权遍历漏洞,触发点基本上都集中在 acctNumbr=orderFlowNo=payAccount= 这几个参数上,对于业务系统进行抓包,遇到这两个参数就进行修改,例如对于acctNumbr=68220004122000000(该数字是我随意生成的),可以把中间的4位数字进行修改,可以造成越权查看交易记录、越权查看他人的贷款信息等等。

** 3 DOM型XSS漏洞**

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

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

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

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

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

发现的其它的Web应用漏洞如下:

1. 几处SQL注入漏洞,但都是Mysql数据库,而且非root权限,进一步利用非常困难,但是获取到的一些员工的工号、邮箱列表还是很有用的。

2. 短信炸弹漏洞。

3. 内网ip泄露漏洞,在后渗透中被用来定位内网ip段。

4. 结合前面漏洞成果的信息收集,爆破枚举了协同OA的很多弱口令。 登录之后,可以直接点开Web邮箱,获取邮箱权限 ,在邮件中可以找到个人电子证书,并且登录VPN,但是获取到的几个VPN的权限非常有限,无法开展内网横向。

  • 社会工程学攻击

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

** 1 在线客服系统XSS尝试获取Cookie**

个人网上银行在线客服系统存在跨站脚本攻击XSS漏洞,可用于网络钓鱼、窃取Cookie等。接下来构造带有恶意代码的图片链接通过网银聊天工具发送给客户,验证确认客服已经点击查看图片。最终由于不出网,所以无法获取Cookie。

由于报告原图较为敏感,不能贴出来。为了给大家演示,以下是我参考原始报告,用两个qq互相模拟的社工客服的聊天过程,给大家一些参考。

** 2 邮箱仿冒发信人钓鱼**

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

swaks工具的大致命令如下:

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热点上。经过探测,发现总共有3个wifi热点,分别是 BANKOFXXXXXXBankXbank ,发现还是存在很大的安全问题的。

1. BANKOFXXX这个是提供给普通用户访客的热点,使用手机号+短线验证码连上之后,可以访问互联网区,也就是说可以上网。 但是无意中发现了存在逻辑漏洞 ,如果连上这个热点之后,再切换到只有内部人员才能用的热点XXXBank,随后不需要二次用户名密码认证,即可访问银行的测试区。

2. Xbank的密码已经被万能钥匙收录,该热点可以直接访问互联网区及内网测试区域。 随后将平板电脑连上wifi,接入银行测试区,然后反弹出一个socks5代理,交给后面同事们对内网测试区进行横向渗透 。非常遗憾的是,测试区放置的都是一些测试系统,网络隔离非常严格,测试区与生产区完全隔离,无法连到总行的办公网或者业务网。但是在测试区系统上存在一些银行业务系统的源代码,这是最大收获。

接下来对银行测试区开展了横向渗透,主要发现了以下这些漏洞,可以看出,测试区漏洞很多。 但是由于银行的网络隔离非常严格,所以测试区这些漏洞,对生产系统没有危害

** 1 多个MS17-010漏洞**

在测试区进行445端口的漏洞扫描,存在多个MS17-010漏洞,通过原版方程式工具包拿到2台服务器权限。

如下图所示,后门安装成功。

** 2 禅道系统弱口令**

测试区还有一个禅道系统,使用弱口令admin:123456即可登录。在后台可以查看项目管理信息,但是里面应该都是测试数据,此外还可以找到大量的测试人员、开发人员、项目经理等信息,类似于通讯录,这些用户名列表有可能是真的,对于了解银行的用户名规则很有帮助。

** 3 Jboss反序列化漏洞**

发现测试区域一处Web网站,存在Jboss 反序列化漏洞,成功获取webshell,提权获得10.1.x.100权限,经过分析,这些bak文件都是测试数据。

  • SSRF漏洞控制50多个业务关停

这是第2次红队评估项目中,通过代码审计发现的SSRF漏洞,详细过程在我之前的文章《红队第3篇:银行Java站SSRF"组合洞"打法造成的严重危害》中有介绍,这里不过多叙述。

该SSRF漏洞可以直接获取网页返回数据包,但是代码中限制了它只能发起GET请求,然而还是可以结合其它系统的未授权访问漏洞,可控制51个银行业务暂停和执行,危害非常大。

为了给客户更好地展示此SSRF漏洞的危害,我用java swing写了一个针对该漏洞的SSRF代理工具,如下图所示,输入内网业务地址,可以直接访问,并通过浏览器显示出来页面内容。

** Part3 总结 **

1. 银行红队评估项目一般难度都非常大,多数都得靠0day,靠代码审计,靠供应链的漏洞挖掘打进去。

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

3. 银行的测试区里面的一些测试系统的源代码,对于红队工作可以提供很大帮助。

4. Java的SSRF漏洞很多只能发GET请求,但是结合内网的未授权访问漏洞,还是能造成很大危害。

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

6. 本次案例为什么去打放在云上的系统,因为有些云上系统的代码中,会有阿里云、腾讯云的AK/SK等,如果碰到一个,一下子拿下很多服务器权限。

7. 至于为什么客户系统的webshell网络隔离没有做好,可以联通那么多内网网段,而且上面竟然还留有10几套系统的源代码。后来了解到,这10几个系统都下线了之后,这个服务器就疏于管理了。

8. 第3次红队评估项目,漏洞就非常少了,从而转向对公众号、小程序、手机APP、供应链的打点,后期我再继续写文章叙述,敬请期待。

公众号专注于网络安全技术分享,包括APT事件分析、红队攻防、蓝队分析、渗透测试、代码审计等,每周一篇,99%原创,敬请关注。 ****

Contact me: 0day123abc#gmail.com(replace # with @)

预览时标签不可点

微信扫一扫
关注该公众号

知道了

微信扫一扫
使用小程序


取消 允许


取消 允许

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