当前位置: 首页 > news >正文

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

3a8b8ac00a9599a4786569064d9b439f.png

 Part1 前言 

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

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

b5f1bd8e1ab5ca50f41f1a97f368c389.png

 Part2 具体过程复盘 

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

32b1c2b7b3f4a95a5756410c2ae4b708.png

  • 外网打点过程

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

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

19a307a068795e4141397b743e5321ca.png

 1   供应链系统的上传漏洞

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

d935db77f6b50f1d4b0374c7c43f457e.png

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

 2   ColdFusion反序列化

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

6329fff96adebfba38935c9e1cffe32f.png

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

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

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

 4   网盘信息泄露

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

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

64d24e4f4e01e827f7535d37b49dce11.png

  • 内网横向过程

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

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

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

8200ac505c6ed860595aaba0a65485a8.png

  • 外网其它漏洞

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

a64bd991fe11926f973a728e3701a6f7.png

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

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

543d845fdc5237f09be027b833e624a8.png

 2  DOM型XSS漏洞

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

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

c3004e76fbf093acdca6535f909c8c0c.png

 3   任意文件读取漏洞

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

7e0ce05b680497dc80b067eb97dea05b.png

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

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

9b983a8750ca7048208e9efc353e1fc7.png

 5   短信炸弹绕过限制

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

bd028779ec21c070d10953eac88f960c.png

 6   删除sign参数绕过校验

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

bca8f16046ee55d88dc77e5b46e1a3d9.png

 7   使用Frida解决APP参数加密

c0a7f1c56439efa91dc850354ff35882.png

7cdf429187782cfd5d2f07853e61ac91.png

f79a732b7f33a1d7894f20858e392c80.png

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

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

2b292171528fddd15b84c8583fd91038.png

73c18846e4f48717dc0abfd74b6fe4ed.png

 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钓鱼及针对银行员工的邮件钓鱼均没有成功。

a4c726590986a6129248c37f066e0638.png

 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,您的邮件我已收到."

859588d63b293e46910bf4725beb7150.png

  • 物理渗透阶段

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

3677827bcd83ecbf0e66b18d224e5588.png

随后使用平板电脑放在附近,反弹出一个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解密函数。

e76b5c99f63120a9b2abedd153e0f1e9.png

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

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

相关文章:

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

Part1 前言 大家好&#xff0c;我是ABC_123。本期分享一篇ABC_123曾经做的针对一家银行的红队评估项目&#xff0c;持续时间两周&#xff0c;难度非常大&#xff0c;但是最终打到了银行核心业务区&#xff0c;今天就复盘一下全过程&#xff0c;希望红蓝双方都能得到一些启示&a…...

网络安全 Day21-数据库知识

数据库知识 1. 什么是数据库2. 为什么需要数据库&#xff08;分类不清晰&#xff09;3. 数据库的种类3.1 关系型数据库3.2 NOSQL 数据库3.3 new sql &#xff08;国产数据库&#xff09;分布式数据库3.4 云数据库 4. mysql 关系型数据库5. 安装mariadb6. 为mariadb设置密码7. M…...

python测试开发面试常考题:装饰器

目录 简介 应用 第一类对象 装饰器 描述器descriptor 资料获取方法 简介 Python 装饰器是一个可调用的(函数、方法或类)&#xff0c;它获得一个函数对象 func_in 作为输入&#xff0c;并返回另一函数对象 func_out。它用于扩展函数、方法或类的行为。 装饰器模式通常用…...

语音同声翻译软件让你不再为语言障碍困扰

从前有一个叫黄俊的小伙子&#xff0c;他有一个大梦想&#xff1a;环游世界&#xff01;但是&#xff0c;他只会说中文&#xff0c;而去到外国又怎么跟当地人交流呢&#xff1f;为了实现自己的梦想&#xff0c;黄俊开始了寻找能帮他解决问题的捷径。这时&#xff0c;方娜向他介…...

又有一个手艺人震惊了B站用户

飞瓜数据&#xff08;B站版&#xff09;【热门视频榜】周榜显示&#xff0c;霸占全站视频流量第一的是来自UP主爱捣鼓的邢志磊发布的作品《我花了半年时间给猫做了个房子》。 视频在一周时间内新增播放1232.2万&#xff0c;新增点赞139.4万。 根据视频详细数据显示&#xff0c…...

HDFS的设计目标和重要特性

HDFS的设计目标和重要特性 设计目标HDFS重要特性主从架构分块存储机制副本机制namespace元数据管理数据块存储 设计目标 硬件故障(Hardware Failure)是常态&#xff0c;HDFS可能有成百上千的服务器组成&#xff0c;每一个组件都有可能出现故障。因此古见检测和自动快速恢复的H…...

【JMeter】JMeter添加插件

目录 一、前言 二、插件管理器 三、推荐插件 1.Custom Thread Groups &#xff08;1&#xff09;Ultmate Thread Group &#xff08;2&#xff09;Stepping Thread Group 2.3 Basic Graph 资料获取方法 一、前言 ​ 在我们的工作中&#xff0c;我们可以利用一些插件来帮…...

测牛学堂:车载测试面试总结之语音助手相关

车载语音助手的工作原理&#xff1f; 语音助手的工作原理总结下来可以分为4个步骤&#xff1a; 1 通过麦克风采集驾驶员的语音指令 2将语音信号转换为数字信号 3过语音识别技术将语音指令转换为计算机可以理解的指令 4 通过语音合成技术将计算机的回应转换为语音输出 车载…...

Android开发之Fragment动态添加与管理

文章目录 主界面布局资源两个工具Fragment主程序 主界面布局资源 在activity_main.xml中&#xff0c;声明两个按钮备用&#xff0c;再加入一个帧布局&#xff0c;待会儿用来展示Fragment。 <?xml version"1.0" encoding"utf-8"?> <LinearLayo…...

Python爬虫+数据可视化:分析唯品会商品数据

目录 前言数据来源分析1. 明确需求2. 抓包分析&#xff1a;通过浏览器自带工具: 开发者工具 代码实现步骤: 发送请求 -> 获取数据 -> 解析数据 -> 保存数据发送请求解析数据保存数据 数据可视化先读取数据泳衣商品性别占比商品品牌分布占比各大品牌商品售价平均价格各…...

el-tree数据渲染超出省略

el-tree数据渲染超出省略 问题 <el-tree:data"deptOptions":props"defaultProps":expand-on-click-node"false":filter-node-method"filterNode"ref"tree"default-expand-allhighlight-currentnode-click"handleNo…...

若依vue -【 44】

44 服务监控讲解 1 需求 显示CPU、内存、服务器信息、Java虚拟机信息、磁盘状态的信息 2 前端 RuoYi-Vue\ruoyi-ui\src\views\monitor\server\index.vue <script> import { getServer } from "/api/monitor/server";export default {name: "Server&quo…...

React 基础篇(一)

&#x1f4bb; React 基础篇&#xff08;一&#xff09;&#x1f3e0;专栏&#xff1a;React &#x1f440;个人主页&#xff1a;繁星学编程&#x1f341; &#x1f9d1;个人简介&#xff1a;一个不断提高自我的平凡人&#x1f680; &#x1f50a;分享方向&#xff1a;目前主攻…...

Bean 的作用域和生命周期

目录 什么是 Bean 的作用域 ?Bean 的六种作用域Spring 的执行流程Bean 的生命周期 什么是 Bean 的作用域 ? Bean 的作⽤域是指 Bean 在 Spring 整个框架中的某种⾏为模式&#xff0c;⽐如 singleton 单例作⽤域&#xff0c;就表示 Bean 在整个 Spring 中只有⼀份&#xff0c…...

STP和MTP(第二十二课)

2、如何实现 1)在MSTP网络种,引入了域的概念,称为MST域 2)每一个MST域中包含一个或多个“生成树”称为“实例” 3)每个“实例生成树”都可以绑定vlan,实现vlan数据流的负载分担/负载均衡 4)默认情况下,所有的vlan都属于“实例树0:即:instance 0” 5)不同的“实例…...

Java-WebSocket

请点击下面工程名称&#xff0c;跳转到代码的仓库页面&#xff0c;将工程 下载下来 Demo Code 里有详细的注释 TestWebSocket...

elementui的el-date-picker选择日期范围第二个不能早于第一个

选择日期范围第二个不能早于第一个 <el-form-item label"预计施工时间:" required><el-form:model"form":rules"constructionDateRules"ref"constructionRef"inline:hide-required-asterisk"false"><el-form…...

【NLP】无服务器问答系统

一、说明 在NLP的眼见的应用&#xff0c;就是在“ 当你在谷歌上提出一个问题并立即得到答案时会发生什么&#xff1f;例如&#xff0c;如果我们在谷歌搜索中询问谁是美国总统&#xff0c;我们会得到以下回答&#xff1a;Joe Biden&#xff1b;这是一个搜索问题&#xff0c;同时…...

Dubbo

Dubbo 简介Dubbo的快速入门Dubbo的基本架构安装DubboAdmin入门案例Dubbo的最佳实践 Dubbo的高级特性启动检查多版本超时与重试负载均衡SpringCloud整合Dubbo案例 简介 Dubbo是阿里巴巴公司开源的一个高性能、轻量级的Java RPC框架。 致力于提高性能和透明化的RPC远程服务调用方…...

Java设计模式之策略(Strategy)模式

策略&#xff08;Strategy&#xff09;设计模式定义了一系列算法&#xff0c;将它们封装起来&#xff0c;并且可以相互替换使用&#xff0c;从而使得算法可以独立于使用它的客户而变化。 什么是策略模式 策略&#xff08;Strategy&#xff09;设计模式是一种行为型设计模式&a…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

Razor编程中@Html的方法使用大全

文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...

【网络安全】开源系统getshell漏洞挖掘

审计过程&#xff1a; 在入口文件admin/index.php中&#xff1a; 用户可以通过m,c,a等参数控制加载的文件和方法&#xff0c;在app/system/entrance.php中存在重点代码&#xff1a; 当M_TYPE system并且M_MODULE include时&#xff0c;会设置常量PATH_OWN_FILE为PATH_APP.M_T…...

CVPR2025重磅突破:AnomalyAny框架实现单样本生成逼真异常数据,破解视觉检测瓶颈!

本文介绍了一种名为AnomalyAny的创新框架&#xff0c;该方法利用Stable Diffusion的强大生成能力&#xff0c;仅需单个正常样本和文本描述&#xff0c;即可生成逼真且多样化的异常样本&#xff0c;有效解决了视觉异常检测中异常样本稀缺的难题&#xff0c;为工业质检、医疗影像…...

深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏

一、引言 在深度学习中&#xff0c;我们训练出的神经网络往往非常庞大&#xff08;比如像 ResNet、YOLOv8、Vision Transformer&#xff09;&#xff0c;虽然精度很高&#xff0c;但“太重”了&#xff0c;运行起来很慢&#xff0c;占用内存大&#xff0c;不适合部署到手机、摄…...

认识CMake并使用CMake构建自己的第一个项目

1.CMake的作用和优势 跨平台支持&#xff1a;CMake支持多种操作系统和编译器&#xff0c;使用同一份构建配置可以在不同的环境中使用 简化配置&#xff1a;通过CMakeLists.txt文件&#xff0c;用户可以定义项目结构、依赖项、编译选项等&#xff0c;无需手动编写复杂的构建脚本…...

前端高频面试题2:浏览器/计算机网络

本专栏相关链接 前端高频面试题1&#xff1a;HTML/CSS 前端高频面试题2&#xff1a;浏览器/计算机网络 前端高频面试题3&#xff1a;JavaScript 1.什么是强缓存、协商缓存&#xff1f; 强缓存&#xff1a; 当浏览器请求资源时&#xff0c;首先检查本地缓存是否命中。如果命…...