Author: sm0nk@深蓝攻防实验室
上周在一个技术沙龙我分享了一个攻防相关议题——进击的白巨人,在此归档。
无论是端侧产品还是流量侧产品、亦或是原生安全还是外挂式,主模式还是鉴黑和鉴白;
随着防守方强化的安全建设,安全产品越来越强,进攻的难度在增加;
但攻击方仍然有可乘之机,如何能躲避鉴黑或者鉴白呢?
v1.0 饱和攻击阶段,捏软柿子、大扫描
v2.0 对抗攻击阶段,泛化0day和社工 能力,静默 隐匿 无感
v3.0 信任攻击阶段,不攻击的攻击,泛化“白”能力(不战而屈人之兵)
下面我们从红队的各个模块:信息收集、Web渗透、社工钓鱼、木马&维持、内网横向、目标获取 ,有哪些“白”手法:
1. 攻击方帮助防守人员盘存资产
(1)资产动态监控
①例如新增的域名资产、IP资产、端口资产、新增功能等
(2)漏洞空窗期
①修复新的0day需要一段时间,无论长短,抢时间
②甚至补丁的bypass,导致没有补丁
2. 体悟白名单人员工作难点(正难则反)
(1)预算有限,能省则省
①攻击方寻找防守方的墨菲
(2)移动端、逻辑漏洞、业务需要、责任划分(功能对接处)...
①移动端,好多是由于“壳”强则强,破壳后不一定那么强
②逻辑漏洞,具备一定的合理性,鉴黑逻辑并不是那么线性
③有一些功能,安全部门没有扭过业务部门,被迫上线
④多部门协同的衔接处往往是防守方可信且易忽略的
⑤某功能,处于“三不管”地带
⑥...
(3)你体系的筑建千里之堤,我体系的寻找蚁穴(不一定是零和,也可以正和)
①安全建设需要体系化,但搞破坏可能一个单点即可;攻防双方互相搞自己体系化;
②如果攻击者站在自己是防守视角哪些容易忽视或者不得已的做法,以及防守方站在攻击方视角有哪些是监控盲区哪些害怕被攻击。本身攻防双方也是动态的,也可以正和。
1. 接口类攻击
(1)寻找白名单接口
①业务接口正常调用
②虽然可以攻击,但功能是可信的也是业务需要的,进攻合理性
(2)非标业务接口
①目前实战中大部分还是Web相关协议
②非Web类协议也是容易躲避鉴黑流的打法,且本身属于白逻辑
2. 漏洞组合拳
(1)前台后台漏洞组合拳
①现在的审计漏洞挖掘难度也在提升,明显前台的RCE 不那么容易获得。
②参考《漏洞组合拳》,路径长一些,就相对迂回一些,但打漏洞依然高风险容易暴漏,如果有的选择,比如https+反序列化、逻辑洞 相对白一些,例如SSRF本身就是获得了一个合法的边界权限,是由于自身功能导致,并不是攻击者从利用漏洞新造的权限,感知平台不一定那么精准的发现。【我们不生产漏洞,我们只是大自然的搬运工】
(2)正资产偏漏洞 vs 偏资产正漏洞
①正资产的正常漏洞少之又少,例如某集团官网shiro反序列化、淘宝官网RCE,这种概率极低。当然如果真有,以现在的防御水平,攻击者应该考虑这是不是蜜罐。
②在难突破的场景,可以考虑正资产偏门漏洞以及偏门资产的正漏洞组合来提升攻破概率。夯实渗透基本功
3.认证类攻击
(1)白化认证逻辑,无特征
①除了登录日志也没有攻击流量
②如果伴随着正常的业务管理行为,增大了排查难度
(2)拿到内/外网集权的登录认证比shell更有效
①减少打漏洞的痕迹,实现收益最大化,集权首屈一指
(3)攻破身份认证类体系
①e.g. 竹Y、派L、IAM系列,权限和信息都是重要途径,不一定必须shell
②ZeroTrust系列
1. 寻找白名单人员构建高信任
2. 白名单人员:能出网的人、具备高权限的人员
(1)有些目标主机不出网,但总有出网的主机
(2)结合内外网渗透漏洞获得更多的联系人信息,借助邮箱、IM类,定位高权限人,钓关键人,关键人会帮我们成为“代言”,甚至帮我们打掩护,e.g. 运维人员自带突破隔离的效果
3. 业务流钓鱼,利用可信流程
4. 降低无辜者受害,让有正需求的人响应,满足自己同时满足对方,双赢,定期维护
5. ~
1. C2
(1)降特征,内存执行,技术倾白化
2. 终端对抗
(1)白驱动 BYOVD
(2)功能致盲 让“白软件”传“黑”信。
①例如部分功能致盲后,终端软件会告诉总控,“我安全我安全~”
(3)白程序(云查为例)
①让杀毒认为木马“白”,利用杀软的算法和公式反脆弱
(4)利用系统自带组件实现提权/BypassUAC
(5)栈帧伪造(伪造合法的Api调用(白)链绕过栈回溯检测)【躲内存检测】
3. 流量绕过
(1)加密vs降熵; 隧道传出
(2)CDN 节点默认证书(白)
4. 白化 服务和进程
(1)一种是肉眼不可见
(2)另一种是服务和进程虽然可见,但可信
1. 白化行为
(1)降低扫描甚至不扫描
(2)控集权
(3)打成正常管理流量
(4)寻找感知类产品的盲区,例如ipv6的监控、逻辑漏洞的监控、加密流量的迷惑...
2. ATO攻击(凭证窃取、密码复用、信息复用+认证推理...)
3. 被动攻击(水坑、键盘记录、流量劫持、监控...)
4. 白业务(正常的业务管理功能,例如应用的审计功能、正常的调用)
5. 逻辑控制
1. 业务理解,数据输出位
(1)大部分业务系统,不只有一种形态的结果输出
(2)随着对抗升级,攻击方对行业的理解也在提升:金融、能源、运营商...
①理解业务,少走弯路;减少扫描带来的熵增
2. 巧用系统内部的可信功能(客服、帮助文档、提bug ...)
3. 优先认证攻击再打漏洞
4. 回归渗透本质
(1)阈值对抗、信息组合 ...
(2)时间够的前提,慢就是快
实战中的无感一种是有痕迹但防守方不知道,另外一种攻击方的确留下很少的痕迹,甚至没有痕迹。但无论哪种,随着发展,攻击手法肯定越来复杂、越来越高级。
本文通过借助对目前防守方鉴黑和鉴白模式的思考,引出了红队各个模块的“白”能力——进击的“白”巨人(当然文中的这个白是自定义的, 有的也不一定白,甚至也是有痕迹的,但的确是一个思考方式和进攻模式);定义了三个阶段的进攻模式:饱和攻击、对抗攻击、信任攻击,也不一定全面,给各位大佬当个参考。