-
-
[原创]安全设备的漏洞挖掘
-
发表于:
2021-5-28 15:18
21460
-
无论是做多完美的安全解决方案,顶层设计。部署多么高大上的安全产品,例如防火墙,入侵检测,隔离网闸等最终还是需要落地的。而在落地实现过程中,往往存在非常多的安全问题,特别关于安全设备自身存在的安全漏洞。最近几年hvv也爆出了非常多安全产品的漏洞,具体就不说了,网上也有很多资料,但是大多是谈漏洞原理,但是在这篇文章我想谈谈这些安全设备的挖掘方法。(注:本文不会指明具体的厂商,如有雷同,纯属巧合)
1.对安全设备的挖掘,当然最好有实际的设备,获取安全设备是非常关键也是非常困难的的一步,首选购买安全设备价格昂贵,少则几万,多则几十万,对于经济拮据的研究员来说无疑是难以迈过的门槛。特别购买时不止有钱就行,还面临着各种流程,各种合同,走各种项目,特别是安全公司一听你要挖他的漏洞,绝对不会出售他们产品。 这些不是问题,某鱼可以帮你解决这个问题,出售的设备都相对便宜,不止安全类设备,一些IoT设备,工控设备都可以在这上面购买,甚至几千块就可以买到隔离网闸。值得注意的是,这些设备大多都是淘汰下来的产品,要确定该产品是否还有研究价值,否则买来发现市面上都没人用了,那么挖出的漏洞价值也不大。
2.还有一些安全设备会提供虚拟化部署的能力,他们会提供kvm,VMware之类的虚拟机镜像,有些官网会提供下载,一旦提供虚拟化部署的文件,无论是否有加密机制对研究员已经相当于设备已经获取到了,固件就在虚拟硬盘中:https://bbs.pediy.com/thread-268475.htm
大多数安全产品官方网站可能提供固件下载,必须询问经销商,或者需要填入合同号,最大的问题是固件下载很多都是加密的,当然,有了设备这些都不是问题。可以直接拆焊PCB版上的flash,使用编程器读取上来,特别是有些是X86架构的设备,用的存储单元一般很有可能是硬盘,可以把硬盘拆下来,接一根硬盘线读取其中的内容。然后利用binwalk之类的解包工具,直接解开文件系统。
值得注意的是,有些安全厂商可能相对注重安全,即使在获取到硬盘里面的Linux文件系统或者内核,但很可能是加密的(当然,这是一小部分),这里我给大家介绍分析的方向:
谁都知道未授权的RCE是漏洞挖掘的“圣杯”,但是一开始不建议研究员挖掘未授权的RCE漏洞,大多数安全设备在认证环节都做得不错,基本移除了后门密码,找到未授权的漏洞相对困难,可以在授权情况下进行挖掘,这样登陆后可以找到更多攻击面,熟悉后可以尝试多个漏洞结合达到未授权的RCE效果。那是不是预授权的RCE就毫无用处了呢?其实不然,如果是一个低权限的用户可以触发RCE那就可以达到提权的效果,而RCE的漏洞也会造成设备的源码泄露(即使在用户不接触设备情况下),甚至非法分子会利用漏洞破解设备授权,对安全厂商的收益造成威胁。
在安全界大厂OEM小厂的安全设备再正常不过,也就说某些设备的漏洞会影响到多个厂商,最重要的是由于是安全小厂,开发人员相比大厂来说安全意识较为薄弱,在漏洞挖掘初期可以选择OEM的设备进行分析,这类设备漏洞产出最高。
Web端的攻击面最多,不同厂家使用的主流web编程语言不同(PHP,JAVA,python etc),但是挖掘方法基本类似,特别有些开发者在实现过程中,认为用户无法接触到源代码,硬编码各种密钥,例如JWT key,OSS key等各种secret key,带来各种安全问题,这种想法当然是错误的,好的安全设备,即使在用户完全能够获取web端源码,也无法GetShell。在安全产品不推荐任何硬编码的密钥,用户是有能力完全接触到这些数据的,好的设计的通过密钥管理机制,动态生成各种密钥,达到一机一码的目的。
挖掘web漏洞在有源码能审计的情况下更加如鱼得水,这里也值得注意的是,有些安全设备会魔改解释引擎,例如LUA,python等,这就需要对解释引擎进行分析,还原原始的字节码,还有一些使用商业的混淆工具,混淆web端代码,具体问题,具体分析,就不一一列举了。
包括一些VPN协议,这些协议一般是用C/C++实现的,其中可能会存在一些内存破坏漏洞,对于这类协议的服务端,一般最常见的方法就是分析加密和认证及各种数据交互协议,利用fuzz框架例如boofuzz里面对该服务端进行fuzz。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2022-11-17 13:12
被wmsuper编辑
,原因: